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

Reply via email to