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;)