--- ../materials/COMPAT Tue Sep 26 12:19:19 2006 +++ COMPAT Tue Sep 26 12:14:19 2006 @@ -9,7 +9,11 @@ it calls using the typeset special command, e.g., "typeset var". In ksh93, local variables only exist for non-POSIX-style - (function func) functions. In POSIX-style functions (func()), + (function func) functions. In addition, the scope of such + local variables defined in non-POSIX functions does not include + functions called by the current function. + + In ksh93, in POSIX-style functions (func()), variables declared with "typeset var" remain global in scope, and are shared between the calling program and the function. @@ -68,9 +72,11 @@ See builtin.bugs file for details. 6) Some built-ins don't allow options to be passed in any order as they - did previously. One known case is "typeset -8i ", which - no longer works the same as "typeset -i8 " to set - an integer variable that is base 8. + did previously. For example, in Solaris ksh, "typeset -i8 foo" and + "typeset -8i foo" work identically to declare the variable foo to + be a base 8 integer. In ksh93, "typeset -i8 foo" declares foo to + be a base 8 integer; "typeset -8i foo" declares foo to be an integer + with the default base 10 7) The ENV variable in ksh93 is now evaluated for arithmetic expansions $(()) and command substitution `` @@ -82,7 +88,11 @@ 8) The ERRNO variable has been dropped in ksh93. 9) In ksh93, pattern matching following a redirection symbol works only - in interactive shell, not in scripts. + in interactive shell, not in scripts. For example, in a script + executed by Solaris ksh, "echo hi >> foo*" will write to a file + with a name matching the pattern foo* (starting with the string "foo"). + The same script executed by ksh93 will write to a file literally + named "foo*". 10) In ksh93, the original arguments ($1, $2, $3, etc.) to a script are restored after a dot script (.