Roland Mainz wrote: > Below I've attached the draft of upcoming "ksh93-amendments2" ARC case > (attachment "onepager_20071222.txt" contains the onepager and > "manpage_diff_20071222.txt" are the manual page diffs). Assuming nothing > goes wrong we'll try to submit the case in Jan 2008... > > Comments/rants/questions etc. welcome... > > ------------------------------------------------------------------------ > I'm sponsoring this fast-track request on behalf of XXX. > Please note that this is an *open* case. > > The release binding is the same as with the previous ksh93 project: a > patch/micro release of Solaris delivering through OS/Net > Stability levels are as described below. > > Additional materials (man pages and diffs) can be found in the > 'materials' subdirectory. > > This project is an amendment to the Korn Shell 93 Integration project > (PSARC/2006/550 and PSARC/2007/035) specifying the following additional > interfaces: > 1) Update of ksh93 from upstream release ast-ksh.2007-04-18 to > ast-ksh-2007-12-01 > 1.1) Update ksh93 > 1.2) Update the /usr/bin/bg, /usr/bin/cd, > /usr/bin/command, /usr/bin/fc, /usr/bin/fg, /usr/bin/getopts, > /usr/bin/hash, /usr/bin/jobs, /usr/bin/kill, > /usr/bin/read, /usr/bin/test, /usr/bin/type, > /usr/bin/ulimit, /usr/bin/umask, /usr/bin/unalias, > /usr/bin/wait from ksh88 to ksh93 > 1.3) New ksh93 math functions based on C99 > 1.4) Enable built-ins "sync", "mkfifo", "tty" and "logname" by default > 1.5) New directories in /usr/demo/ksh/ > 1.6) New messaging catalog files for ksh libraries > 1.7) Enable "multiline" input mode by default for interactive shells > 1.9) Enable default prompt (PS1) for interactive shells > 2) Enhancement of /usr/bin/printf > 3) Enhancement of /usr/bin/sleep > 4) The addition of /usr/bin/rev > 5) An enhanced version of the "sum" utility and an identical ksh93 > built-in command and related library libsum.so.1 > 6) Add AT&T "shcomp" (shell script compiler) and "shbinexec" > kernel module > 6.1) Addition of AT&T "shcomp" (shell script compiler) > 6.2) Addition of kernel module to recognize "shbin" executables > > Bug/RFE Number(s): > > 6619428 RFE: Update ksh93 in Solaris to ast-ksh.2007-10-15 (or higher) > 6561901 RFE: Add "shcomp" (shell script compiler) + kernel module > to exec binary sh code > 6595183 RFE: Update ksh93-integration demo code > 6451262 RFE: /usr/bin/sleep should support floating-point values > 6207901 ksh and test ignore sub-second timestamp portion > 6599668 RFE: Move consumers of alias.sh over to ksh93 > 6631969 /usr/bin/printf does not recognize positional arguments like %n$ > > Interface Stability Description > --------- --------- ----------- > /usr/bin/bg Commited bg command > /usr/bin/cd Commited cd command > /usr/bin/command Commited command command > /usr/bin/fc Commited fc command > /usr/bin/fg Commited fg command > /usr/bin/getopts Commited getopts command > /usr/bin/hash Commited hash command > /usr/bin/jobs Commited jobs command > /usr/bin/kill Commited kill command > /usr/bin/printf Commited printf command > /usr/bin/read Commited read command > /usr/bin/rev Commited rev command > /usr/bin/sleep Commited sleep command > /usr/bin/shcomp Commited AT&T ksh shell script compiler > /usr/bin/sum Commited sum command > /usr/bin/test Commited test command > /usr/bin/type Commited type command > /usr/bin/ulimit Commited ulimit command > /usr/bin/umask Commited umask command > /usr/bin/unalias Commited unalias command > /usr/bin/wait Commited wait command > /usr/demo/ksh/apps/ Uncommited demo directory > /usr/demo/ksh/doc/ Uncommited demo directory > /usr/demo/ksh/dtrace/ Uncommited demo directory > /usr/demo/ksh/functions/ Uncommited demo directory > /usr/demo/ksh/misc/ Uncommited demo directory > /usr/demo/ksh/shdbx/ Uncommited demo directory > /usr/lib/libsum.so.1 Project Private AT&T hash generation library > /usr/lib/amd64/libsum.so.1 Project Private AT&T hash generation library > /usr/lib/sparcv9/libsum.so.1 Project Private AT&T hash generation library > <shbinexec binary format> Commited Private binary shell script file format > <shcomp -D output> Volatile output for l10n catalog > generation > <new C99 math functions> Commited C99 math functions > > ### Part 1: Update of ksh93 from upstream release ast-ksh.2007-04-18 to > ast-ksh.2007-12-01 > > ## Part 1.1: Update of ksh93 > The 1.1 portion of this project is the update of ksh93 from > ast-ksh.2007-04-18 to ast-ksh-2007-12-15 which marks the update from > ksh93 version 's-' to version 's+'. > > ## Part 1.2: Update the /usr/bin/bg, /usr/bin/cd, > /usr/bin/command, /usr/bin/fc, /usr/bin/fg, /usr/bin/getopts > /usr/bin/hash, /usr/bin/jobs, /usr/bin/kill > /usr/bin/read, /usr/bin/test, /usr/bin/type > /usr/bin/ulimit, /usr/bin/umask, /usr/bin/unalias > /usr/bin/wait from ksh88 to ksh93 > The 1.2 portion of this project switches the built-in command > wrappers (the commands are plain shell script wrappers which invoke > the built-in command of the same name) > /usr/bin/bg, /usr/bin/cd is the update of /usr/bin/command, > /usr/bin/fc, /usr/bin/fg, /usr/bin/getopts, /usr/bin/hash, > /usr/bin/jobs, /usr/bin/kill, /usr/bin/read, /usr/bin/test, > /usr/bin/type, /usr/bin/ulimit, /usr/bin/umask, /usr/bin/unalias and > /usr/bin/wait from /usr/bin/ksh to /usr/bin/ksh93 > > Notes: > - /usr/bin/test now support high-resolution timestamps of up > to nanosecond granularity, for filesystems which support them. Any > scripts which rely on a behavior like that creating two files in > sequential order within less than a second will result in identical > timestamps for both files is considered as a bug in the script. > - /usr/bin/test now supports 64bit integers, floating point values > and floating point constants (like {+Inf, -Inf, +NaN, -NaN}) (in all > representations required by C99/XPG6/SUS) for numeric comparisations. > - The output of "/usr/bin/ulimit -a" has changed in incompatible ways, > e.g. previously a two-column output was used while now a three-column > is printed. > However the output of "/usr/bin/ulimit -a" is considered as "not an > interface", e.g. it is only thought for informative purposes and not > a scripting interface (this interpretation is supported by trhe detail > that the output doesn't use things like TAB for formatting, that > almost every shell defines it's own "ulimit -a" output format, > that even adding new options would break the output anyway and that > the ulimit(1) manual page only lists the "-f" option as supported by > /usr/bin/ulimit (i.e. the option "-a" was undocumented for > /usr/bin/ulimit (which contradicts "Example 1" in the manual page > which shows the output of "ulimit -a"))). > The output of other /usr/bin/ulimit options is not affected and remains > compatible. > - These special built-ins are available as standalone files because > the POSIX people did make a decision long ago that all > "special shell"-builtins defined in the standard must be "exec"-able - > sounds weired but there are some border-cases where this is useful (for > example you can bind such a built-in to a path like /usr/bin/cd which > would execute the "cd" command only if the PATH lookup hits /usr/bin/). > - /usr/bin/kill now handles the number of realtime signals at runtime > based on the "getconf" value of |_POSIX_RTSIG_MAX|&co. - the old > version of /usr/bin/kill used a hardcoded number of realtime signals > defined at compile time (the current number of realtime signals > supported in /usr/bin/kill will not change between the old and new > version - the change will occur when the number of realtime signals > supported by the kernel will be changed). > - The output of "/usr/bin/kill -l" now uses a newline as delimiter for > signal names while the old version used a space. This is not > considered an interface change since both the Solaris manual page > and the standards explicitly allow either newline or space as > delimiter. > > ## Part 1.3: New ksh93 math functions based on C99 > The 1.3 portion of this project is the addition of new functions which > can be used within arithmetic expressions like (( expressions )) > These functions work identically to those defined for the "C" language > in the C99 standard (the ksh93 originally supported only "abs", "acos", > "asin", "atan", "cos", "cosh", "exp", "int", "log", "sin", "sinh", > "sqrt", "tan" and "tanh" as described in ksh93(1) - we extend this list > to those functions required by the C99 standard) > (note that this functionality is already present in the ksh93 version we > ship, e.g. we only increase the stablity level from "easter egg" > (="undocumented") to "commited"): > > Function name | Prototype | see manual page > ---------------+--------------------------------------+----------------- > acos | float acos(float) | acos(3m) > acosh | float acosh(float) | acosh(3m) > asin | float asin(float) | asin(3m) > asinh | float asinh(float) | asinh(3m) > atan | float atan(float) | atan(3m) > atan2 | float atan2(float, float) | atan2(3m) > atanh | float atanh(float) | atanh(3m) > cbrt | float cbrt(float) | cbrt(3m) > copysign | float copysign(float, float) | copysign(3m) > cos | float cos(float) | cos(3m) > cosh | float cosh(float) | cosh(3m) > erf | float erf(float) | erf(3m) > erfc | float erfc(float) | erfc(3m) > exp | float exp(float) | exp(3m) > exp2 | float exp2(float) | exp2(3m) > expm1 | float expm1(float) | expm1(3m) > fabs | float fabs(float) | fabs(3m) > abs | float abs(float) | abs(3c) > fdim | float fdim(float, float) | fdim(3m) > finite | float finite(float) | finite(3c) > floor | float floor(float) | floor(3m) > int | float int(float) |<no manual page> > fma | float fma(float, float, float)| fma(3m) > fmax | float fmax(float, float) | fmax(3m) > fmin | float fmin(float, float) | fmin(3m) > fmod | float fmod(float, float) | fmod(3m) > fpclassify | integer fpclassify(float) | fpclassify(3m) > hypot | float hypot(float, float) | hypot(3m) > ilogb | integer ilogb(float) | ilogb(3m) > isfinite | integer isfinite(float) | isfinite(3m) > isgreater | integer isgreater(float, float)| isgreater(3m) > isgreaterequal | integer isgreaterequal(float, float)| isgreaterequal(3m) > isinf | integer isinf(float) | isinf(3m) > isless | integer isless(float, float) | isless(3m) > islessequal | integer islessequal(float, float) | islessequal(3m) > islessgreater | integer islessgreater(float, float) | islessgreater(3m) > isnan | integer isnan(float) | isnan(3m) > isnormal | integer isnormal(float) | isnormal(3m) > isunordered | integer isunordered(float, float)| isunordered(3m) > lgamma | float lgamma(float) | lgamma(3m) > log | float log(float) | log(3m) > log1p | float log1p(float) | log1p(3m) > log2 | float log2(float) | log2(3m) > logb | float logb(float) | logb(3m) > nearbyint | float nearbyint(float) | nearbyint(3m) > nextafter | float nextafter(float, float) | nextafter(3m) > nexttoward | float nexttoward(float, float)| nexttoward(3m) > pow | float pow(float, float) | pow(3m) > remainder | float remainder(float, float) | remainder(3m) > rint | float rint(float) | rint(3m) > round | float round(float) | round(3m) > scalb | float scalb(float, float) | scalb(3m) > scalbn | float scalbn(float, float) | scalbn(3m) > signbit | integer signbit(float) | signbit(3m) > sin | float sin(float) | sin(3m) > sinh | float sinh(float) | sinh(3m) > sqrt | float sqrt(float) | sqrt(3m) > tan | float tan(float) | tan(3m) > tanh | float tanh(float) | tanh(3m) > tgamma | float tgamma(float) | tgamma(3m) > trunc | float trunc(float) | trunc(3m) > (note: the datatypes "integer" and "float" refer to the "integer" and > "float" datatypes in ksh93 scripts, not those in the "C" language) > > ## Part 1.4: Enable built-ins "sync", "mkfifo", "tty" and "logname" by default > The 1.4 portion of this project specifies to enable a set of > already existing built-ins by default: The "sync" built-in which > works exactly like /sbin/sync and is bound to /usr/bin/sync, > /usr/sbin/sync and /sbin/sync, a "mkfifo" built-in which is bound > to /usr/bin/mkfifo, a "tty" built-in which is bound to > /usr/bin/tty and a "logname" built-in which is bound to > /usr/bin/logname > The invocation behavior is like other built-in commands named in > PSARC/2006/550, e.g. the built-in "sync" in ksh93 will only be invoked > if called with no pathname prefix, and if a /usr/bin/sync, > /usr/sbin/sync or /sbin/sync executable is found first on the user's path > and the "mkfifo", "tty" and "logname" built-ins work the same way. > > ## Part 1.5: New directories in /usr/demo/ksh/ > Part 1.5 adds new directories to the /usr/demo/ksh/ directory hierarchy, > namely: > - /usr/demo/ksh/dtrace/ > - /usr/demo/ksh/apps/ > - /usr/demo/ksh/functions/ > - /usr/demo/ksh/doc/ > - /usr/demo/ksh/shdbx/ > - /usr/demo/ksh/misc/ > > ## Part 1.6: New messaging catalog files for ksh libraries > Part 1.6 adds two new message catalogs: > usr/lib/locale/C/LC_MESSAGES/libpp > usr/lib/locale/C/LC_MESSAGES/libsum > > ## Part 1.7: Enable "multiline" input mode by default for interactive shells > The 1.7 portion of this project specifies to enable the "multiline" > input mode in "/etc/ksh.kshrc" (see PSARC/2006/587 for details about > "/etc/ksh.kshrc") to improve end-user usabilty. The "multiline" input > mode to edit lines longer than the terminal's width in multiple lines > (similar to the behaviour of bash version 3 and other libreadline-based > applications (the previous default was to edit longer lines in a > single, horizontally scrolling line). > The change will only be enabled together with the "gmacs" editor mode > (see PSARC/2006/587) for interactive shells which source > "/etc/ksh.kshrc" as part of the shell startup and when the terminal > is capable of supporting this mode. This setting can always be > overridden by per-user settings in ${HOME}/.kshrc > > ## Part 1.8: Enable default prompt (PS1) for interactive shells > The 1.8 portion of this project specifies to define a default prompt > (PS1) in "/etc/ksh.kshrc" for interactive ksh93 shell sessions to > improve end-user usabilty if the user did not specify a value for PS1 > using the environment. The prompt should be set to a > value which displays the username, hostname and current working directory > (limited to 20 characters, if the CWD is longer than 20 characters > the shell will display an ellipsis ("...") for the charcters omitted at the > left side) and a "$ "-seperator for normal users and "# " with the login > name "root" (this follows the default of SuSE Linux, Ubuntu and aims at > improving the usalibity for novice unix users), e.g. setting the value of > PS1 will result in the following prompt (for user "gisburn" on machine > "jupiterb48" with CWD="/home/gisburn/solaris/"): > -- snip -- > gisburn at jupiterb48:~/solaris$ > -- snip -- > Notes: > - /etc/ksh.kshrc will only set the prompt value if no value for PS1 > exists yet > - A user can override the value for PS1 in his/her own ${HOME}/.kshrc > file (for interactive shells /etc/ksh.kshrc will be sourced first, > followed by ${HOME}/.kshrc (see PSARC/2006/587)) > - The change cannot be implemented in ksh93 itself because this would > violate the standard. > > #### Part 2: Enhancement of /usr/bin/printf > The 2nd part of this project specifies an enhancement to > /usr/bin/printf and based on the AT&T AST "printf" command. > The AT&T version of the "printf" utility > provides better standards conformance including C99/XPG6-features, > extensions not present in the current Solaris "printf" and is completely > open-source. > > Notes: > - The integer limit for printf has been changed from 32bit to 64bit, e.g. > the previous version of /usr/bin/printf would return an error for values > larger than INT32_MAX or lower than INT32_MIN, for example > $ /usr/bin/printf "%d\n" 2147483648 ; echo "exit code=$?" > would result in the following error: > -- snip -- > printf: 2147483648: Result too large > 147483647 > exit code=1 > -- snip -- > The new version now correctly prints: > -- snip -- > 2147483648 > exit code=0 > -- snip -- > - The manual page now explicitly describes the "printf" behavior for > unrecognized format specifiers (following '%') as "undefined". > - The manual page now explicitly describes the "printf" behavior for > unrecognized escape sequences specifiers (the character following a > backslash ('\')) as "undefined". > - The manual page now lists sign handling explicitly (e.g. support > for negative NaN per IEEE 754&co.) > - The manual page originally said: > -- snip -- > For compatibility with previous versions of SunOS 5.x, the $ > format specifier is supported for formats containing only %s > specifiers. > -- snip -- > ... however the matching support for this seems to be broken since > several releases, we're therefore dropping this part and fully support > "%n$"&co. for all formats for standards conformance. > - An addition to the ksh93 test suite will gurantee that > /usr/bin/printf will work as defined in this ARC case. > > #### Part 3: Enhancement of /usr/bin/sleep > The 3rd part of this project specifies an enhancement to > /usr/bin/sleep and based on the AT&T AST "sleep" command. > The AT&T version of the "sleep" utility > provides support sub-second timeouts and C99/XPG6-based input > values (including special values such as "Inf"/"Infinite") > > #### Part 4: The addition of /usr/bin/rev > The 4th part of this project specifies a new utility called > "/usr/bin/rev" which is used to reverse the characters or lines > of one or more files. > > Like other built-in commands named in PSARC/2006/550, the "rev" > built-in in ksh93 will be bound to the /usr/bin/ pathname. The built-in > "rev" in ksh93 will only be invoked if called with no pathname > prefix, and if a /bin/rev or /usr/bin/rev executable is found > first on the user's path. > > The stability of the "rev" command and built-in command-line interface > and the system variables documented in rev(1) is "Committed"; the > pathname binding of the ksh93 built-in to /bin is Volatile. > > #### Part 5: Enhancement of /usr/bin/sum > The 5th part of this project specifies an enhancement to > /usr/bin/sum and a new ksh93 built-in with the same name based on > the AT&T AST "sum" command. The AT&T version of the "sum" utility > provides extensions not present in the current Solaris "sum" > utility, which are useful for small applications to generate hash > sums (for example using the MD5 hash for MIME "Content-MD5:"-headers). > > Like other built-in commands named in PSARC/2006/550, the "sum" > built-in in ksh93 will be bound to the /usr/bin/ pathname. The built-in > "sum" in ksh93 will only be invoked if called with no pathname > prefix, and if a /bin/sum or /usr/bin/sum executable is found > first on the user's path. > > The stability of the "sum" command and built-in command-line interface > and the system variables documented in sum(1) is "Committed"; the > pathname binding of the ksh93 built-in to /bin is Volatile. > > An addition to the ksh93 test suite will gurantee compatibilty between > previous versions of the /usr/bin/sum utillity and the new version. > > #### Part 6: Add AT&T "shcomp" (shell script compiler) and "shbinexec" > kernel module > ## Part 6.1: Addition of AT&T "shcomp" (shell script compiler) > The 6.1 part of this project is the addition of AT&T's "shcomp" > utility as /usr/bin/shcomp which has multiple goals: > 1. serve as basis for a future "ksh88 to ksh93"-migration toolkit > 2. act as basis for a future "shell lint" tool to provide a way to test > shell scripts like Sun Studio's "lint" > 3. extract localiseable strings from shell scripts (using option "-D") > 4. compile (ksh93) shell scripts into a compact, portable and > platform/ISA/endian-independent binary format which can be read by ksh93 > (for example this would allow vendors to ship binary code if they > cannot release the code as source or "shrink" shell scripts to the > absolute minimum for environments like embedded systems or the > Solaris miniroot) > > The stability of the /usr/bin/shcomp command-line interface and the > system variables documented in shcomp(1) is "Committed"; the compiled > shell code format is "Committed Private" ("shcomp" being the only > generator of the format and /usr/bin/ksh93 the only consumer; both > share the same code via libshell) and the output of the "-D" option > is "Volatile". > > ## Part 6.2: Addition of kernel module to recognize "shbin" executables > Part 6.2 requests the addition of a kernel module to recognize > compiled ksh93 shell scripts and execute the ksh93 interpreter if > this format is recognized. > > The conditions to recognize compiled ksh93 shell scripts are: > (a) The file must have the "x" (=executable) flag set > and > (b) The file content must match the signature (starting at byte 0) > \013\023\010\000 (which are the ASCII charatcers { 'k', 's', 'h', > '\0', ... } masked through a binary AND operation using the value > 37 as 2nd operand). > > Notes: > - The format includes a version specifer but the kernel > module will leave all version/consistency/etc.-checkin to ksh93 > itself > - /etc/magic will be updated that /usr/bin/file and > /usr/xpg4/bin/file will recognize compiled shell code. > > > > ------------------------------------------------------------------------ > # Manpage diff for cd > No differences encountered > # Manpage diff for jobs > No differences encountered > # Manpage diff for kill > --- kill.1.original.txt Tue Dec 4 16:53:05 2007 > +++ kill.1.new.txt Tue Dec 4 21:33:44 2007 > @@ -283,12 +283,14 @@ > > ksh93 > ____________________________________________________________ > - | ATTRIBUTE TYPE | ATTRIBUTE VALUE | > - |______________________________|______________________________| > - | Availability | SUNWcsu | > - |______________________________|______________________________| > - | Interface Stability | Uncommitted | > - |______________________________|______________________________| > + | ATTRIBUTE TYPE | ATTRIBUTE VALUE | > + |______________________________|____________________________| > + | Availability | SUNWcsu | > + |______________________________|____________________________| > + | CSI | enabled | > + |______________________________|____________________________| > + | Interface Stability | Uncommitted | > + |______________________________|____________________________| > > SEE ALSO > csh(1), jobs(1), ksh(1), ksh93(1), ps(1), sh(1), shell_builtins(1), > @@ -296,6 +298,10 @@ > butes(5), environ(5), standards(5) > > NOTES > + /usr/bin/kill > + The number of realtime signals supported is defined by the > + getconf value _POSIX_RTSIG_MAX. > + > sh > The Bourne shell, sh, has a built-in version of kill to pro- > vide the functionality of the kill command for processes > # Manpage diff for logname > --- logname.1.original.txt Fri Oct 19 08:24:45 2007 > +++ logname.1.new.txt Fri Oct 19 09:08:57 2007 > @@ -9,9 +9,14 @@ > logname - return user's login name > > SYNOPSIS > - logname > + /usr/bin/logname > > + ksh93 > + logname > + > DESCRIPTION > + /usr/bin/logname > + > The logname utility will write the user's login name to > standard output. The login name is the string that would be > returned by the getlogin(3C) function. Under the conditions > @@ -19,6 +24,15 @@ > message to standard error and exit with a non-zero exit > status. > > + ksh93 > + logname > + > + logname writes the users's login name to standard output. > + The login name is the string that is returned by the > + getlogin(2) function. If getlogin(2) does not return > + successfully, the corresponding to the real user id of the > + calling process is used instead. > + > ENVIRONMENT VARIABLES > See environ(5) for descriptions of the following environment > variables that affect the execution of logname: LANG, > # Manpage diff for mkfifo > --- mkfifo.1.original.txt Fri Oct 19 08:27:33 2007 > +++ mkfifo.1.new.txt Fri Oct 19 09:06:41 2007 > @@ -11,7 +11,12 @@ > SYNOPSIS > /usr/bin/mkfifo [-m mode] path... > > + ksh93 > + mkfifo [ options ] file ... > + > DESCRIPTION > + /usr/bin/mkfifo > + > The mkfifo utility creates the FIFO special files named by > its argument list. The arguments are taken sequentially, in > the order specified; and each FIFO special file is either > @@ -28,7 +33,13 @@ > a=rw, modified by the current value of the file mode crea- > tion mask umask(1). > > + ksh93 > + > + mkfifo creates one or more FIFO's. By default, the mode of > + created FIFO is a=rw minus the bits set in the umask(1). > + > OPTIONS > + /usr/bin/ksh93 > The following option is supported: > > -m mode Sets the file permission bits of the newly-created > @@ -38,6 +49,10 @@ > strings, the op characters + and - will be inter- > preted relative to an assumed initial mode of a=rw. > > + ksh93 > + -m, --mode=mode Set the mode of created FIFO to mode. mode > + is symbolic or octal mode as in chmod(1). Relative > + modes assume an initial mode of a=rw. > > > OPERANDS > # Manpage diff for printf > --- printf.1.original.txt Thu Nov 22 15:29:21 2007 > +++ printf.1.new.txt Mon Dec 3 17:46:47 2007 > @@ -17,16 +17,11 @@ > DESCRIPTION > > /usr/bin/printf > - The /usr/bin/printf command writes formatted operands to the standard > - output. The _a_r_g_u_m_e_n_t operands are formatted under control of > - the _f_o_r_m_a_t operand. > - > - ksh93 > printf writes each string operand to standard output using format to > control > the output format. > > - The format operands supports the full range of ANSI C formatting > specifiers > - plus the following additional specifiers: > + The format operands supports the full range of ANSI C/C99/XPG6 formatting > + specifiers plus the following additional specifiers: > %b Each character in the string operand is processed specially as > follows: > \a Alert character. > @@ -69,7 +64,7 @@ > will continue to be processed. > > In addition to the format specifier extensions, the following extensions > of > - ANSI-C are permitted in format specifiers: > + ANSI C/C99/XPG6 are permitted in format specifiers: > - The escape sequences \E and \e expand to the escape character > which > is octal 033 in ASCII. > - The escape sequence \cx expands to Control-x. > @@ -96,8 +91,8 @@ > were supplied, numeric conversions will be treated as if 0 were supplied, > and > time conversions will be treated as if now were supplied. > > - printf is equivalent to print -f which allows additional options to be > - specified. > + /usr/bin/printf is equivalent to ksh93's "printf" built-in and print -f > which > + allows additional options to be specified. > > OPERANDS > The following operands are supported for /usr/bin/printf: > @@ -258,17 +253,12 @@ > Notice that this printf utility, like the printf(3C) func- > tion on which it is based, makes no special provision for > dealing with multi-byte characters when using the %c conver- > - sion specification or when a precision is specified in a %b > - or %s conversion specification. Applications should be > - extremely cautious using either of these features when there > + sion specification. Applications should be extremely > + cautious using either of these features when there > are multi-byte characters in the character set. > > Field widths and precisions cannot be specified as *. > > - For compatibility with previous versions of SunOS 5._x, the $ > - format specifier is supported for formats containing _o_n_l_y %s > - specifiers. > - > The %b conversion specification is not part of the ISO C > standard; it has been added here as a portable way to pro- > cess backslash escapes expanded in string operands as pro- > @@ -430,6 +420,106 @@ > writes the value accumulated at the time the error was > detected to standard output. > > + > + Example 6: Alternative floating point representation 1: > + The printf utility supports an alternative floating point representation > + (see printf(3c) manual page's entry for the "%a"/"%A") which allows > + the output of floating-point values in a format which avoids the the > + usual base16 to base10 rounding errors. > + > + example% printf "%a\n" 2 3.1 NaN > + > + produces: > + > + 0x1.0000000000000000000000000000p+01 > + 0x1.8ccccccccccccccccccccccccccdp+01 > + nan > + > + > + Example 7: Alternative floating point representation 2: > + The following example shows two different representations of the > + same floating-point value: > + > + example% x=2 ; printf "%f == %a\n" x x > + > + produces: > + > + 2.000000 == 0x1.0000000000000000000000000000p+01 > + > + > + Example 8: Output of unicode values > + The following command will print the EURO unicode symbol (code-point > 0x20ac) > + example% LC_ALL=en_US.UTF-8 printf "\u[20ac]\n" > + > + produces: > + > + <euro> > + (where "<euro>" represents the EURO currency symbol character) > + > + > + Example 9: Convert unicode character to unicode code-point value: > + The following command will print the hexadecimal value of a given > + character. > + > + example% export LC_ALL=en_US.UTF-8 > + example% printf "%x\n" "'<euro>" > + (where "<euro>" represents the EURO currency symbol character > + (code-point 0x20ac)) > + > + produces: > + > + 20ac > + > + > + Example 10: Print the numeric value of an ASCII character: > + printf "%d\n" "'A" > + > + produces: > + > + 65 > + > + > + Example 11: To print the language-independent date and time > + format, the following statement could be used: > + > + printf "format" weekday month day hour min > + (e.g. $ printf format "Sunday" "July" 3 10 2 > + > + For American usage, format could be the string: > + > + "%s, %s %d, %d:%.2d\n" > + > + producing the message: > + > + Sunday, July 3, 10:02 > + > + whereas for EU usage, format could be the string: > + > + "%1$s, %3$d. %2$s, %4$d:%5$.2d\n" > + (note that the '$' charatcers must be propperly escaped, e.g. > + "%1\$s, %3\$d. %2\$s, %4\$d:%5\$.2d\n" in this case) > + > + producing the message: > + > + Sunnday, 3. July, 10:02 > + > + > +NOTES > + Using format specifiers (characters following '%') which are not listed > + in the printf(3c) or this manual page will result in undefined > behaviour. > + > + Using escape sequences (the character following a backslash ('\')) which > + are not listed in the printf(3c) or this manual page will result in > + undefined behaviour. > + > + Floating-point values follow C99, XPG6 and IEEE 754 standard behaviour > + and and can handle values the same way as the platform's |long double| > + datatype. > + > + Floating-point values handle the sign seperately which allows signs > + for values like NaN (i.e. -nan), Infinite (i.e. -inf) and zero > + (i.e. -0.0). > + > ENVIRONMENT VARIABLES > See environ(5) for descriptions of the following environment > variables that affect the execution of printf: LANG, LC_ALL, > # Manpage diff for read > No differences encountered > # Manpage diff for rev > --- /dev/null Wed Dec 12 19:07:34 2007 > +++ rev.1.new.txt Fri Nov 30 00:45:55 2007 > @@ -1,0 +1,42 @@ > +NAME > + rev - reverse the characters or lines of one or more files > + > +SYNOPSIS > + /usr/bin/rev [-l] [file ...] > + > + ksh93 > + rev [-l] [file ...] > + > +DESCRIPTION > + rev copies one or more files to standard output reversing the > + order of characters on every line of the file or reversing > + the order of lines of the file if -l is specified. > + > + If no file is given, or if the file is -, rev copies from > + standard input starting at the current offset. > + > +OPTIONS > + -l, --line Reverse the lines of the file. > + > +EXIT STATUS > + 0 All files copied successfully. > + >0 One or more files did not copy. > + > +ATTRIBUTES > + See attributes(5) for descriptions of the following attri- > + butes: > + > + /usr/bin/rev > + ____________________________________________________________ > + | ATTRIBUTE TYPE | ATTRIBUTE VALUE | > + |_____________________________|_____________________________| > + | Availability | SUNWcsu | > + |_____________________________|_____________________________| > + | CSI | Enabled | > + |_____________________________|_____________________________| > + | Interface Stability | Commited | > + |_____________________________|_____________________________| > + > + > +SEE ALSO > + cat(1), tail(1) > # Manpage diff for shcomp > --- /dev/null Wed Dec 12 19:07:34 2007 > +++ shcomp.1.new.txt Fri Nov 30 00:43:23 2007 > @@ -1,0 +1,66 @@ > +NAME > + shcomp - compile a ksh93 shell script > + > +SYNOPSIS > + shcomp [-nv] [infile [outfile]] > + > + shcomp -D [infile [outfile]] > + > +DESCRIPTION > + Unless -D is specified, shcomp takes a shell script, infile, > + and creates a binary format file, outfile, that ksh93 can read > + and execute with the same effect as the original script. > + > + Since aliases are processed as the script is read, alias > + definitions whose value requires variable expansion will not > + work correctly. > + > + If -D is specifed, all double quoted strings that are preceded > + by $ are printed, one literal per line, e.g. a literal $"foo" > + will be printed as "foo" in the output > + These are the messages that need to be translated to locale > + specific versions for internationalization. > + > + If outfile is omitted, both modes will write their results > + to standard output. If infile is also omitted, the > + shell script will be read from standard input. > + > +OPTIONS > + -D, --dictionary > + Generate a list of strings that need to be > + placed in a message catalog for > + internationalization. > + -n, --noexec Displays warning messages for obsolete or > + non-conforming constructs. > + -v, --verbose Displays input from infile onto standard error > + as it reads it. > + > +EXIT STATUS > + 0 Successful completion. > + >0 An error occurred. > + > +ATTRIBUTES > + See attributes(5) for descriptions of the following attri- > + butes: > + > + /usr/bin/shcomp > + ____________________________________________________________ > + | ATTRIBUTE TYPE | ATTRIBUTE VALUE | > + |_____________________________|_____________________________| > + | Availability | SUNWcsu | > + |_____________________________|_____________________________| > + | CSI | Enabled | > + |_____________________________|_____________________________| > + | Interface Stability | See below | > + |_____________________________|_____________________________| > + > + > + The stability of the /usr/bin/shcomp command-line interface > + and thesystem variables documented in shcomp(1) is "Committed"; > + the compiled shell code format is "Committed Private" ("shcomp" > + being the only generator of the format and /usr/bin/ksh93 the > + only consumer; both share the same code via libshell) and > + the output of the "-D" option is "Volatile". > + > +SEE ALSO > + ksh93(1) > # Manpage diff for sleep > --- sleep.1.original.txt Thu Nov 22 17:21:44 2007 > +++ sleep.1.new.txt Fri Nov 23 20:20:45 2007 > @@ -9,7 +9,7 @@ > sleep - suspend execution for an interval > > SYNOPSIS > - /usr/bin/sleep _t_i_m_e > + /usr/bin/sleep _seconds_ > > ksh93 > sleep _seconds_ > @@ -16,11 +16,6 @@ > > DESCRIPTION > > - /usr/bin/sleep > - The sleep utility will suspend execution for at least the > - integral number of seconds specified by the _t_i_m_e operand. > - > - ksh93 > sleep suspends execution for at least the time specified by seconds or > until > a SIGALRM signal is received. seconds can be specifed as a floating point > number but the actual granularity depends on the underlying system, > normally > @@ -28,10 +23,14 @@ > > > OPERANDS > - The following operands are supported for /usr/bin/sleep: > + The following operands are supported for /usr/bin/sleep and ksh93's > + "sleep" built-in command: > > - _t_i_m_e A non-negative decimal integer specifying the > + _t_i_m_e A non-negative floating-point number specifying the > number of seconds for which to suspend execution. > + The floating-point number may be specified in all formats > + required by C99/XPG6, including constants such as "Inf" or > + "infinite". > > > > @@ -50,6 +49,20 @@ > sleep 37 > done > > + Example 2: Suspending command execution forever (or until a SIGALRM > + signal is received): > + > + example% sleep Inf > + > + > + Example 3: Suspending command execution for 0.5 seconds using > + an alternative floating-point representation for the value "0.5": > + > + example% printf "%a\n" 0.5 > + 0x1.0000000000000000000000000000p-01 > + > + example% sleep 0x1.0000000000000000000000000000p-01 > + > ENVIRONMENT VARIABLES > See environ(5) for descriptions of the following environment > variables that affect the execution of sleep: LANG, LC_ALL, > @@ -121,9 +134,10 @@ > The sleep utility will take the standard action for all > other signals. > > + The behaviour for input values such as "NaN" (not-a-number) or negative > + values is undefined. > > > - > > > > # Manpage diff for sum > --- sum.1.original.txt Fri Oct 19 03:49:51 2007 > +++ sum.1.new.txt Fri Dec 14 18:55:36 2007 > @@ -9,22 +9,229 @@ > sum - print checksum and block count for a file > > SYNOPSIS > - sum [-r] [file...] > + /usr/bin/sum [-abBchHlLpPrRstTw] [-x method] [file...] > > + ksh93 > + sum [-abBchHlLpPrRstTw] [-x method] [file...] > + > DESCRIPTION > - The sum utility calculates and prints a 16-bit checksum for > - the named file and the number of 512-byte blocks in the > - file. It is typically used to look for bad spots, or to > - validate a file communicated over some transmission line. > + /usr/bin/sum > + ksh93 "sum" > + The sum command and ksh93 built-in command "sum" lists the > + checksum, and for most methods the block count, for each file > + argument. The standard input is read if there are no file > + arguments. > + getconf UNIVERSE determines the default > + sum method: att for the att universe, bsd otherwise. The > + default for the other commands is the command name itself. The > + att method is a true sum, all others are order dependent. > > -OPTIONS > - The following options are supported: > + Method names consist of a leading identifier and 0 or more > + options separated by -. > > - -r Use an alternate (machine-dependent) algorithm in > - computing the checksum. > + getconf PATH_RESOLVE determines how symbolic links are > + handled. This can be explicitly overridden by the --logical, > + --metaphysical, and --physical options below. PATH_RESOLVE can > + be one of: > + logical > + Follow all symbolic links. > + metaphysical > + Follow command argument symbolic links, otherwise > + don't follow. > + physical > + Don't follow symbolic links. > > +OPTIONS > + The following options are supported by /usr/bin/sum > + -a, --all List the checksum for all files. Use with > + --total to list both individual and total > + checksums and block counts. > + -b, --binary Read files in binary mode. This is the > + default. > + -B, --scale=scale > + Block count scale (bytes per block) override > + for methods that include size in the output. > + The default is method specific. > + -c, --check Each file is interpreted as the output from a > + previous sum. If --header or --permissions was > + specified in the previous sum then the > + checksum method is automatically determined, > + otherwise --method must be specified. The > + listed checksum is compared with the current > + value and a warning is issued for each file > + that does not match. If file was generated by > + --permissions then the file mode, user and > + group are also checked. Empty lines, lines > + starting with #<space>, or the line # are > + ignored. Lines containing no blanks are > + interpreted as [no]name[=value] options: > + method=name > + Checksum method to apply to subsequent > + lines. > + permissions > + Subsequent lines were generated with > + --permissions. > + -h, --header Print the checksum method as the first output > + line. Used with --check and --permissions. > + -l, --list Each file is interpreted as a list of files, > + one per line, that is checksummed. > + -p, --permissions > + If --check is not specified then list the file > + mode, user and group between the checksum and > + path. User and group matching the caller are > + output as -. If --check is specified then the > + mode, user and group for each path in file are > + updated if necessary to match those in file. A > + warning is printed on the standard error for > + each changed file. > + -R, --recursive Recursively checksum the contents of > + directories. > + -t, --total List only the total checksum and block count > + of all files. --all --total lists each > + checksum and the total. The total checksum and > + block count may be different from the checksum > + and block count of the catenation of all files > + due to partial blocks that may occur when the > + files are treated separately. > + -T, --text Read files in text mode (i.e., treat \r\n as > + \n). > + -w, --warn Warn about invalid --check lines. On by > + default; -w means --nowarn. > + -x, --method|algorithm=method > + Specifies the checksum method to apply. > + Parenthesized method options are readonly > + implementation details. > + att|sys5|s5|default > + The system 5 release 4 checksum. This > + is the default for sum when getconf > + UNIVERSE is att. This is the only true > + sum; all of the other methods are > + order dependent. > + ast4|32x4|tw > + The ast 128 bit PRNG hash generated by > + catenating 4 separate 32 bit PNRG > + hashes. The block count is not > + printed. > + bsd|ucb > + The BSD checksum. > + crc 32 bit CRC (cyclic redundancy check). > + polynomial=mask > + The 32 bit crc polynomial > + bitmask with implicit bit 32. > + The default value is > + 0xedb88320. > + done[=number] > + XOR the final crc value with > + number. 0xffffffff is used if > + number is omitted. The option > + value may be omitted. The > + default value is 0. > + init[=number] > + The initial crc value. > + 0xffffffff is used if number > + is omitted. The option value > + may be omitted. The default > + value is 0. > + rotate > + XOR each input character with > + the high order crc byte > + (instead of the low order). > + size[=number] > + Include the total number of > + bytes in the crc. number, if > + specified, is first XOR'd into > + the size. The option value may > + be omitted. The default value > + is 0. > + md5|MD5 > + The RSA Data Security, Inc. MD5 > + Message-Digest Method, 1991-2, used > + with permission. The block count is > + not printed. > + (version) > + md5 (RSA Data Security, Inc. > + MD5 Message-Digest, 1991-2) > + 1996-02-29 > + prng 32 bit PRNG (pseudo random number > + generator) hash. > + mpy=number > + The 32 bit PRNG multiplier. > + The default value is > + 0x01000193. > + add=number > + The 32 bit PRNG addend. The > + default value is 0. > + init[=number] > + The PRNG initial value. > + 0xffffffff is used if number > + is omitted. The option value > + may be omitted. The default > + value is 0x811c9dc5. > + sha1|SHA1|sha-1|SHA-1 > + FIPS 180-1 SHA-1 secure hash algorithm > + 1. > + (version) > + sha1 (FIPS 180-1) 1996-09-26 > + (author) > + Steve Reid <steve at edmweb.com> > + sha256|sha-256|SHA256|SHA-256 > + FIPS SHA-256 secure hash algorithm. > + (version) > + sha-256 (FIPS) 2000-01-01 > + (author) > + Aaron D. Gifford > + sha384|sha-384|SHA384|SHA-384 > + FIPS SHA-384 secure hash algorithm. > + (version) > + sha-384 (FIPS) 2000-01-01 > + (author) > + Aaron D. Gifford > + sha512|sha-512|SHA512|SHA-512 > + FIPS SHA-512 secure hash algorithm. > + (version) > + sha-512 (FIPS) 2000-01-01 > + (author) > + Aaron D. Gifford > + posix|cksum|std|standard > + The posix 1003.2-1992 32 bit crc > + checksum. This is the default cksum(1) > + method. Shorthand for > + crc-0x04c11db7-rotate-done-size. > + zip The zip(1) crc. Shorthand for > + crc-0xedb88320-init-done. > + fddi The FDDI crc. Shorthand for > + crc-0xedb88320-size=0xcc55cc55. > + fnv|fnv1 > + The Fowler-Noll-Vo 32 bit PRNG hash > + with non-zero initializer (FNV-1). > + Shorthand for > + prng-0x01000193-init=0x811c9dc5. > + ast|strsum > + The ast strsum(3) PRNG hash. Shorthand > + for prng-0x63c63cd9-add=0x9c39c33d. > + -L, --logical|follow > + Follow symbolic links when traversing > + directories. The default is determined by > + getconf PATH_RESOLVE. > + -H, --metaphysical > + Follow command argument symbolic links, > + otherwise don't follow symbolic links when > + traversing directories. The default is > + determined by getconf PATH_RESOLVE. > + -P, --physical Don't follow symbolic links when traversing > + directories. The default is determined by > + getconf PATH_RESOLVE. > + -r, --bsd Equivalent to --method=bsd --scale=512 for > + compatibility with other sum(1) > + implementations. > + -s, --sysv Equivalent ti --method=sys5 for for > + compatibility with other sum(1) > + implementations. > + -S, --silent|status > + No output for --check; 0 exit status means all > + sums matched, non-0 means at least one sum > + failed to match. Ignored for --permissions. > > - > OPERANDS > The following operands are supported: > > @@ -32,7 +239,6 @@ > standard input is used. > > > - > USAGE > See largefile(5) for the description of the behavior of sum > when encountering files greater than or equal to 2 Gbyte ( 2 > @@ -73,14 +279,16 @@ > > ____________________________________________________________ > | ATTRIBUTE TYPE | ATTRIBUTE VALUE | > + |_____________________________|_____________________________| > | Availability | SUNWesu | > + |_____________________________|_____________________________| > | CSI | enabled | > |_____________________________|_____________________________| > > > SEE ALSO > - cksum(1), sum(1B), wc(1), attributes(5), environ(5), large- > - file(5) > + cksum(1), ksh93(1), sum(1B), wc(1), attributes(5), environ(5), > + largefile(5) > > DIAGNOSTICS > "Read error" is indistinguishable from end of file on most > @@ -87,7 +295,9 @@ > devices; check the block count. > > NOTES > - Portable applications should use cksum(1). > + Portable applications should use cksum(1), the default algorithm > + for this command is defined in the POSIX standard and identical > + across platforms. > > sum and usr/ucb/sum (see sum(1B)) return different check- > sums. > # Manpage diff for test > --- test.1.original.txt Thu Nov 22 15:28:36 2007 > +++ test.1.new.txt Fri Nov 23 20:19:14 2007 > @@ -323,9 +323,11 @@ > > > > - _n_1 -eq _n_2 True if the integers _n_1 and _n_2 are > + _n_1 -eq _n_2 True if the numbers _n_1 and _n_2 are > algebraically equal. > - (ksh93 also supports floating point numbers.) > + A "number" may be integer, floating point or > floating-point > + constant (such as [+/-]Inf, [+/-]NaN) in any > format specified > + by C99/XPG6/SUS. > > > > @@ -341,34 +343,43 @@ > > > > - _n_1 -ne _n_2 True if the integers _n_1 and _n_2 are > + _n_1 -ne _n_2 True if the numbers _n_1 and _n_2 are > not algebraically equal. > - (ksh93 also supports floating point numbers.) > + A "number" may be integer, floating point or > floating-point > + constant (such as [+/-]Inf, [+/-]NaN) in any > format specified > + by C99/XPG6/SUS. > > > - _n_1 -gt _n_2 True if the integer _n_1 is algebrai- > - cally greater than the integer _n_2. > - (ksh93 also supports floating point numbers.) > + _n_1 -gt _n_2 True if the number _n_1 is algebrai- > + cally greater than the number _n_2. > + A "number" may be integer, floating point or > floating-point > + constant (such as [+/-]Inf, [+/-]NaN) in any > format specified > + by C99/XPG6/SUS. > > > > - _n_1 -ge _n_2 True if the integer _n_1 is algebrai- > + _n_1 -ge _n_2 True if the number _n_1 is algebrai- > cally greater than or equal to the > - integer _n_2. > - (ksh93 also supports floating point numbers.) > + number _n_2. > + A "number" may be integer, floating point or > floating-point > + constant (such as [+/-]Inf, [+/-]NaN) in any > format specified > + by C99/XPG6/SUS. > > > + _n_1 -lt _n_2 True if the number _n_1 is algebrai- > + cally less than the number _n_2. > + A "number" may be integer, floating point or > floating-point > + constant (such as [+/-]Inf, [+/-]NaN) in any > format specified > + by C99/XPG6/SUS. > > - _n_1 -lt _n_2 True if the integer _n_1 is algebrai- > - cally less than the integer _n_2. > - (ksh93 also supports floating point numbers.) > > > - > - _n_1 -le _n_2 True if the integer _n_1 is algebrai- > + _n_1 -le _n_2 True if the number _n_1 is algebrai- > cally less than or equal to the > - integer _n_2. > - (ksh93 also supports floating point numbers.) > + number _n_2. > + A "number" may be integer, floating point or > floating-point > + constant (such as [+/-]Inf, [+/-]NaN) in any > format specified > + by C99/XPG6/SUS. > > > > @@ -714,8 +725,8 @@ > endif > > > - ksh > - Example 5: Using the ksh built-in > + ksh/ksh93 > + Example 5: Using the ksh/ksh93 built-in > > ZERO=0 ONE=1 TWO=$((ONE+ONE)) ROOT=root > if ((ONE > ZERO)) # _a_r_i_t_h_m_e_t_i_c_a_l > _c_o_m_p_a_r_i_s_o_n > @@ -822,13 +833,22 @@ > sition aid for BSD applications and may not be supported in > future releases. > > - When comparing file timestamps, the ksh93 test built-in > - handles high-resolution timestamps of up to nanosecond > - granularity, for filesystems which support them. > + When comparing file timestamps, the /usr/bin/test and the > + ksh93 test built-in handle high-resolution timestamps of up > + to nanosecond granularity, for filesystems which support them. > > + XPG4/sh, ksh, ksh93: Is is recommended to use arithmetric > + expressions (e.g. $(( x > 3.1 )) # instead of > + $ /usr/bin/test "$x" -gt 3.1 # ) when comparing two floating-point > + variables or a constant and a floating-point variable to prevent > + rounding errors (caused by the base16 to base10 transformation) to > + affect the result. Additionally the built-in arithmetric support > + in XPG4/sh, ksh and ksh93 is significantly faster because it > + doesn't require the explicit transformation to strings for each > + comparisation. > + > > > - > > > > # Manpage diff for tty > --- tty.1.original.txt Fri Oct 19 08:25:13 2007 > +++ tty.1.new.txt Fri Nov 23 20:20:14 2007 > @@ -9,15 +9,28 @@ > tty - return user's terminal name > > SYNOPSIS > - tty [-l] [-s] > + /usr/bin/tty [-l] [-s] > > + ksh93 > + tty [ options ] > + > DESCRIPTION > + /usr/bin/tty > + > The tty utility writes to the standard output the name of > the terminal that is open as standard input. The name that > is used is equivalent to the string that would be returned > by the ttyname(3C) function. > > + ksh93 > + > + The ksh93 tty built-in writes the name of the terminal that > + is connected to standard input onto standard output. If the > + standard input is not a terminal, "not a tty" will be written > + to standard output. > + > OPTIONS > + /usr/bin/tty > The following options are supported: > > -l Prints the synchronous line number to which the > @@ -29,8 +42,16 @@ > -s Inhibits printing of the terminal path name, allow- > ing one to test just the exit status. > > + ksh93 > + -l, --line-number > + Write the synchronous line number of the terminal > + on a separate line following the terminal name line. > + If the standard input is not a synchronous terminal > + then "not on an active synchronous line" is written. > + -s, --silent|quiet > + Disable the terminal name line. > + Portable applications should use [[ -t 0 ]] instead. > > - > ENVIRONMENT VARIABLES > See environ(5) for descriptions of the following environment > variables that affect the execution of tty: LANG, LC_ALL,
Are there any commets/issues/etc. about this draft or can we move forward and submit it ? ---- Bye, Roland -- __ . . __ (o.\ \/ /.o) roland.mainz at nrubsig.org \__\/\/__/ MPEG specialist, C&&JAVA&&Sun&&Unix programmer /O /==\ O\ TEL +49 641 7950090 (;O/ \/ \O;)