On Mon, Jan 08 2018, Jeremie Courreges-Anglas <j...@wxcvbn.org> wrote:
> On Mon, Jan 08 2018, Klemens Nanni <k...@posteo.org> wrote:
>
> [...]
>
>> See attached diff for the first NOTES changes.
>
> [...]
>
>> Regarding "POSIX sh questions", we should probably unreference the 1992
>> standard.
>>
>> POSIX.1-2008, 2.6.2 Parameter Expansion:
>>
>>      In each case that a value of word is needed (based on the state
>>      of parameter, as described below), word shall be subjected to
>>      tilde expansion, [...]
>
> Looks good, except you give no rationale for moving the FPATH quirk
> from "known differences [...] that are not likely to change" to "known
> differences [...] that may change".
>
> IIUC ksh93 now documents this behavior:
>
>               FPATH  The search path for function definitions.  The
>                      directories in this path are searched for a file with the
>                      same name as the function or command when a function with
>                      the -u attribute is referenced and when a command is not
>                      found.  If an executable file with the name of that
>                      command is found, then it is read and executed in the
>                      current environment. [...]
>
> (Actually ksh93 doesn't require the file to be executable.)
>
> Right now I'm tempted to leave the FPATH bits as is or to amend them,
> not to move them to the "may change later" section.

Another small round of fixes.
- unreadable/setuid scripts... what?
- BUG-REPORTS has been moved to Attic
- s/effect/affect where relevant
- tweak the note about FPATH
- pdksh "understand[s] C integer constants (ie, 0x123, 0177)"

I've been tempted to remove the second paragraph in POSIX sh bugs, but
I don't know whether ksh handles all the details of parameter
expansions.


Index: NOTES
===================================================================
RCS file: /cvs/src/bin/ksh/NOTES,v
retrieving revision 1.15
diff -u -p -r1.15 NOTES
--- NOTES       8 Jan 2018 13:39:06 -0000       1.15
+++ NOTES       8 Jan 2018 14:00:45 -0000
@@ -6,12 +6,10 @@ General features of at&t ksh88 that are 
     - signals/traps not cleared during functions.
     - trap DEBUG, local ERR and EXIT traps in functions.
     - ERRNO parameter.
-    - use of an `agent' to execute unreadable/setuid/setgid shell scripts
-      (don't ask).
     - read/select aren't hooked in to the command line editor
     - the last command of a pipeline is not run in the parent shell
 
-Known bugs (see also BUG-REPORTS and PROJECTS files):
+Known bugs (see also PROJECTS files):
     Variable parsing, Expansion:
        - some specials behave differently when unset (eg, IFS behaves like
          " \t\n") others lose their special meaning.  IFS/PATH taken care of,
@@ -25,9 +23,9 @@ Known bugs (see also BUG-REPORTS and PRO
     Commands,Execution:
        - setting special parameters that have side effects when
          changed/restored (ie, HISTFILE, OPTIND, RANDOM) in front
-         of a command (eg, HISTFILE=/foo/bar echo hi) effects the parent
+         of a command (eg, HISTFILE=/foo/bar echo hi) affects the parent
          shell.  Note that setting other (not so special) parameters
-         does not effect the parent shell.
+         does not affect the parent shell.
        - `echo hi | exec cat -n' causes at&t to exit, `exec echo hi | cat -n'
          does not.  pdksh exits for neither.  Don't think POSIX requires
          an exit, but not sure.
@@ -239,8 +237,8 @@ Oddities in ksh (pd & at&t):
     - when tracing (set -x), and a command's stderr is redirected, the trace
       output is also redirected. so "set -x; echo foo 2> /tmp/O > /dev/null"
       will create /tmp/foo with the lines "+ > /dev/null" and "+ echo foo".
-    - undocumented at&t ksh feature: FPATH is searched after PATH if no
-      executable is found, even if typeset -uf wasn't used.
+    - undocumented at&t ksh88, documented in ksh93: FPATH is searched
+      after PATH if no executable is found, even if typeset -uf wasn't used.
 
 POSIX sh questions (references are to POSIX 1003.2-1992)
        - arithmetic expressions: how are empty expressions treated?
@@ -276,9 +274,6 @@ POSIX sh bugs (references are to POSIX 1
          functions don't do the save/restore automatically).  Restoring
          OPTIND is kind of dumb since getopts may have been in the middle
          of parsing a group of flags (eg, -abc).
-       - unclear whether arithmetic expressions (eg, $((..))) should
-         understand C integer constants (ie, 0x123, 0177).  at&t ksh doesn't
-         and neither does pdksh.
        - `...` definition (3.6.3) says nothing about backslash followed by
          a newline, which sh and at&t ksh strip out completely.  e.g.,
                $ show-args `echo 'X


-- 
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE

Reply via email to