Hello community,
here is the log from the commit of package ksh for openSUSE:12.3 checked in at 2013-02-17 17:04:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.3/ksh (Old)
and /work/SRC/openSUSE:12.3/.ksh.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ksh", Maintainer is "werner@suse.com"
Changes:
--------
--- /work/SRC/openSUSE:12.3/ksh/ksh.changes 2013-02-01 15:48:54.000000000 +0100
+++ /work/SRC/openSUSE:12.3/.ksh.new/ksh.changes 2013-02-17 17:04:27.000000000 +0100
@@ -1,0 +2,237 @@
+Fri Feb 15 14:40:41 UTC 2013 - werner@suse.de
+
+- Avoid segmentation fault on typeset on ENV variable (bnc#803613)
+
+-------------------------------------------------------------------
+Thu Feb 7 13:56:58 UTC 2013 - werner@suse.de
+
+- Do not use Shift-JIS work around with UTF-8
+
+-------------------------------------------------------------------
+Tue Feb 5 17:41:08 UTC 2013 - werner@suse.de
+
+- Update to 2012-08-01 of ksh93u+ for bugfix version
+ 12-08-01 A bug that ignored interrupts for some builtins (e.g. cmdtst::grep)
+ that read from stdin has been fixed.
+ 12-08-01 A bug that interpreted "cd .foo" as "cd foo" has been fixed.
+ 12-07-30 Added automatic restart for EINTR for ioctl, tcgetattr, and tcsetattr.
+ 12-07-23 A scoping error with namrefs to compound associative arrays has
+ been fixed.
+ 12-07-20 A bug where builtin -d /path/foo deleted foo has been fixed.
+ 12-07-18 A bug in which /dev/stdout did not work in command substitution on
+ some systems has been fixed.
+ 12-07-17 A bug in which the restricted option set in a subshell prevented
+ some variables from getting restored when the subshell completed
+ has been fixed.
+ 12-07-09 A bug in which the directory is not restored after a subshell changes
+ the name of the directory for subshells executed in the same process
+ has been fixed.
+ 12-07-09 A bug in which file descriptors created with {n}< file were not being
+ closed has been fixed.
+ 12-07-09 The 12-04-04 fix for cd .. was not correct causing cd /etc;cd .. to
+ remain in /etc. This has been fixed.
+ 12-07-02 A bug in which builtin name did now work for builtins found in a
+ library added by builtin -f lib has been fixed.
+ 12-07-02 A bug in the edit modes which <tab> after a directory did not refresh
+ the input line has been fixed.
+ 12-07-02 A bug in which an exit status > 256 corresponding to a signal was
+ not returned by a function to indicate a signal exit has been fixed.
+ 12-06-28 Fix ulimit -a to list (Kibytes) instead of (kbytes).
+ 12-06-27 Fix unitialized data reference for <CR> as first char in --vi mode.
+ 12-06-26 The formatting of printf "%q" for multibyte locales has changed to
+ output using \u[xxx] format for valid wide characters.
+ 12-06-25 The size limit for read -N and read -n has been raised to INT_MAX.
+ 12-06-22 A bug in which an exit trap set in a subshell might not be triggered
+ when the last command was a simple executable has been fixed.
+ 12-06-22 A bug which could cause the shell to hang when a coprocess exits
+ while a command inside a command substitution is reading from it has
+ been fixed.
+ 12-06-21 +ksh new accepts for commands of the form for i; <nl> do;...;done
+ 12-06-19 Tab completion after a / when there is only one match not completes
+ with that match rather than generating a menu of matches.
+ 12-06-19 A bug in which patterns containing {...} where not processed
+ correctly inside ${var/pattern/string} has been fixed.
+ 12-06-18 Code modified to eliminate fts_notify variable.
+ 12-06-15 Change the .paths plugin/builtin library variable name from
+ BUILTIN_LIB to PLUGIN_LIB to prevent new plugin_version() aware
+ -lcmd from causing older non-plugin_version() aware ksh to dump core.
+ 12-06-14 builtin without argument no longer lists .sh.tilde as a built-in.
+ 12-06-12 For assignments if the form x=(foo bar), foo is only check for an
+ alias if it is float, integer, compound, or nameref.
+ 12-06-12 +The shell supports 64 bit i-nodes even for 32 bit binaries.
+ 12-06-11 A bug wth >; redirection systems for which vfork() was the same a
+ fork() has been fixed.
+ 12-06-11 A bug in path lookup that ignored buffer boundaries has been fixed.
+ 12-06-08 typeset -a var and typeset -A var, first unset var when var is
+ a compound variable.
+ 12-06-08 A bug in which running shcomp on a program containg namespace
+ could core dump has been fixed.
+ 12-06-06 A bug in which unset of an associative array of compound variables
+ did not completely unset the variable has been fixed.
+ 12-06-06 A bug in which exporting left or right justfied fields could loose
+ the field width has been fixed.
+ 12-06-06 A bug on Solaris11 in which >; did not work for /dev/null was fixed.
+ 12-06-05 A race condition which occured when stopping a builtin command
+ invoked from a subshell has been fixed.
+ 12-06-05 A bug with appending elements to an empty indexed array has been
+ fixed.
+ 12-06-04 A bug in which continuing a stopped builtin could cause it to
+ terminate has been fixed.
+ 12-06-04 By default, builtins added at runtime will restore the current
+ directory if they are killed or stopped.
+ 12-06-04 A bug in handling \\ in read has been fixed.
+ 12-05-31 Use getrlimit64/setrlimit64 on systems that support it.
+ 12-05-31 Fix 64 bit big-endian arithmentic bug that mishandled nan and inf.
+ 12-05-31 Handle ECONNRESET like EPIPE.
+ 12-05-31 Change .paths parse to use only the last BUILTIN_LIB from the top
+ and treat BUILTIN_LIB value as a ':' separated list of lib names.
+ 12-05-29 Fix BUILTIN_LIB binding bug that ignored subsequent lookups.
+ 12-05-29 shtests: --nocompile omits the compile test and --compile does only
+ the compile test.
+ 12-05-25 A command subsitution containing a here-document that itself contains
+ a here-document no longer hangs.
+ 12-05-24 When the redirection operatory >; is directed to a symlink, it now
+ overwrites the file named by the link rather than the link.
+ 12-05-21 +Added printf formats %(type)q where type can be html, url, pattern,
+ ere, or csv.
+ 12-05-18 A bug with appending elements to an indexed array has been fixed.
+ 12-05-18 The exit status from getopts --man interactively was 0 instead of 2
+ and has been fixed.
+ 12-05-18 Another bug with SHOPT_EDPREDICT which could cause a core dump has
+ been fixed.
+ 12-05-17 A bug with fixed size arrays which could cause a core dump has been
+ fixed.
+ 12-05-17 A bug in which the here-document <<< $( 32767 on 32 bit binaries instead of generating a core dump.
+ 12-03-28 A bug in left and right justification in which the width of invalid
+ characters was not taken as zero has been fixed.
+ 12-03-26 A bug in which typeset -p ref, when ref is a reference to an index
+ array element did not display the subscript has been fixed.
+ 12-03-23 A bug in lowercase and uppercase fields when expanding ${name:=val}
+ when name is the empty string has been fixed.
+ 12-03-22 A namespace bug in which a type t defined in namespace foo could not
+ be referenced outside the namespace as .foo.t has been fixed.
+ 12-03-22 A bug in name reference scoping in which a name function called from
+ another function is pass a name reference to a compound variable
+ instance to be created and the compound variable is in the global
+ scope.
+ 12-03-22 A bug in which ${ref[@}} did not behave like ${arr[i][@]} when
+ ref is a name reference to arr[i] has been fixed.
++++ 40 more lines (skipped)
++++ between /work/SRC/openSUSE:12.3/ksh/ksh.changes
++++ and /work/SRC/openSUSE:12.3/.ksh.new/ksh.changes
Old:
----
INIT.2012-02-29.tar.bz2
ast-base.2012-02-29.tar.bz2
ksh93-read-dont-ignore-esc.dif
ksh93-vmleak.dif
New:
----
INIT.2012-08-01.tar.bz2
ast-base.2012-08-01.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ksh.spec ++++++
--- /var/tmp/diff_new_pack.2IEHPB/_old 2013-02-17 17:04:28.000000000 +0100
+++ /var/tmp/diff_new_pack.2IEHPB/_new 2013-02-17 17:04:28.000000000 +0100
@@ -17,7 +17,7 @@
Name: ksh
-%global date 2012-02-29
+%global date 2012-08-01
%global use_suid_exe 0
%if %suse_version > 1210
%global use_opt_bins 1
@@ -108,16 +108,17 @@
Patch22: ksh93-limit-name-len.dif
Patch23: ksh93-foreground-prgrp.dif
Patch24: ksh93-builtin.dif
-Patch25: ksh93-vmleak.dif
# PATCH-FIX-UPSTREAM ksh93-read-dont-ignore-esc.dif [bnc#765171]
-Patch26: ksh93-read-dont-ignore-esc.dif
+# is part of ksh93u+ 2012-06-28
# PATCH-EXTEND-UPSTREAM astksh_builtin_poll20120806_001.diff [bnc#779888]
Patch27: astksh_builtin_poll20120806_001.diff
-# PATCH-FIX-UPSTREAM ksh93-env.dif [bnc#785266]
+# PATCH-FIX-UPSTREAM ksh93-env.dif [bnc#785266, bnc#803613]
Patch28: ksh93-env.dif
# PATCH-FIX-UPSTREAM ksh93-zerofill.dif [bnc#785360]
Patch29: ksh93-zerofill.dif
-# PATCH-FIX-UPSTREAM ksh93-pathtemp.dif [bnc#786134]
+# PATCH-EXTEND-UPSTREAM ksh93-pathtemp.dif [bnc#786134]
+# the fix is part of ksh93u+ 2012-06-28
+# nevertheless the /dev/shm extension is useful
Patch30: ksh93-pathtemp.dif
# PATCH-FIX-UPSTREAM ksh93-dttree-crash.dif [bnc#795324]
Patch31: ksh93-dttree-crash.dif
@@ -201,8 +202,6 @@
%patch22
%patch23
%patch24
-%patch25
-%patch26
%patch27
%patch28
%patch29
@@ -316,14 +315,15 @@
# Do not use -DSHOPT_SPAWN=1 and/or -DSHOPT_AMP=1 this would cause
# errors due race conditions while executing the test suite.
#
- feature=${TMPDIR:-/tmp}/feature.h
+ feature=${PWD}/.feature.h
set -C
(cat > $feature)<<-'EOF'
#define SHOPT_FS_3D 0
#define SHOPT_SYSRC 1
#define SHOPT_REMOTE 1
#define SHOPT_CMDLIB_BLTIN 1
- #define SHOPT_CMDLIB_DIR 1
+ #define SHOPT_CMDLIB_HDR
+ #define SHOPT_CMDLIB_DIR "/%{_lib}/ast/bin"
#define SH_CMDLIB_DIR "/%{_lib}/ast/bin"
#define THISPROG "/%{_lib}/ast/bin/suid_exec"
#define _AST_std_malloc 0
@@ -366,6 +366,8 @@
RPM_OPT_FLAGS="${RPM_OPT_FLAGS//-O[s0-9]/-O}"
cflags -mno-powerpc64 RPM_OPT_FLAGS
HOSTTYPE=linux.powerpc
+ _PACKAGE_HOSTTYPE_=linux.powerpc
+ export _PACKAGE_HOSTTYPE_
;;
ppc64|powerpc64)
RPM_OPT_FLAGS="${RPM_OPT_FLAGS//-O[s0-9]/-O}"
@@ -425,8 +427,9 @@
# by this library simply to avoid that gcc will overwrites those with
# its own builtin functions.
#
- bin/package make ast-ast CCFLAGS="$RPM_OPT_FLAGS -fno-builtin" HOSTTYPE="$HOSTTYPE" AR="$AR" CC="$CC"
+ bin/package view
root=$(echo ${PWD}/arch/linux*)
+ bin/package make ast-ast CCFLAGS="$RPM_OPT_FLAGS -fno-builtin -I${root}/include" HOSTTYPE="$HOSTTYPE" AR="$AR" CC="$CC"
test -d $root || exit 1
log=${root}/lib/package/gen/make.out
test -s $log || exit 1
@@ -448,7 +451,7 @@
ln -sf ${lib}.so.${vers} ${root}/lib/${lib}.so
popd
done
- nobuiltin=${TMPDIR:-/tmp}/nobuiltin
+ nobuiltin=${PWD}/.nobuiltin
nm -D ${root}/lib/libast.so | \
grep -E 'T[[:blank:]](_ast_)?(str|mem|(get|put|set)env|(c|m|re|v)alloc)' | \
sed -r 's/[[:xdigit:]]+[[:blank:]]+T[[:blank:]]+(_ast_)?([^[:blank:]]*)/-fno-builtin-\2/' | \
@@ -465,7 +468,8 @@
*) cflags @$nobuiltin RPM_OPT_FLAGS
esac
- bin/package make CCFLAGS="$RPM_OPT_FLAGS" HOSTTYPE="$HOSTTYPE" AR="$AR" CC="$CC"
+ export > .env
+ bin/package make CCFLAGS="$RPM_OPT_FLAGS -I${root}/include" HOSTTYPE="$HOSTTYPE" AR="$AR" CC="$CC"
root=$(echo ${PWD}/arch/linux*)
test -d $root || exit 1
log=${root}/lib/package/gen/make.out
++++++ INIT.2012-02-29.tar.bz2 -> INIT.2012-08-01.tar.bz2 ++++++
++++ 2338 lines of diff (skipped)
++++++ ast-base.2012-02-29.tar.bz2 -> ast-base.2012-08-01.tar.bz2 ++++++
/work/SRC/openSUSE:12.3/ksh/ast-base.2012-02-29.tar.bz2 /work/SRC/openSUSE:12.3/.ksh.new/ast-base.2012-08-01.tar.bz2 differ: char 11, line 1
++++++ astksh_builtin_poll20120806_001.diff ++++++
--- /var/tmp/diff_new_pack.2IEHPB/_old 2013-02-17 17:04:28.000000000 +0100
+++ /var/tmp/diff_new_pack.2IEHPB/_new 2013-02-17 17:04:28.000000000 +0100
@@ -1,6 +1,49 @@
-diff -N -r -u original/src/cmd/ksh93/bltins/poll.c build_poll/src/cmd/ksh93/bltins/poll.c
---- src/cmd/ksh93/bltins/poll.c 1970-01-01 01:00:00.000000000 +0100
-+++ src/cmd/ksh93/bltins/poll.c 2012-08-07 05:13:40.057935800 +0200
+--- src/cmd/ksh93/Makefile
++++ src/cmd/ksh93/Makefile 2012-08-06 21:25:47.000000000 +0000
+@@ -161,6 +161,7 @@ DATAFILES = limits.c msg.c strdata.c tes
+
+ shell$(RELEASE) $(VERSION) id=shell :LIBRARY: shell.3 nval.3 alarm.c cd_pwd.c cflow.c deparse.c \
+ enum.c getopts.c hist.c misc.c print.c read.c sleep.c trap.c test.c \
++ poll.c \
+ typeset.c ulimit.c umask.c whence.c main.c nvdisc.c nvtype.c \
+ arith.c args.c array.c completion.c defs.c edit.c expand.c regress.c \
+ fault.c fcin.c history.c init.c io.c jobs.c lex.c macro.c name.c \
+--- src/cmd/ksh93/Mamfile
++++ src/cmd/ksh93/Mamfile 2012-08-06 21:25:47.000000000 +0000
+@@ -548,6 +548,22 @@ meta test.o %.c>%.o bltins/test.c test
+ prev bltins/test.c
+ exec - ${CC} ${mam_cc_FLAGS} ${CCFLAGS} -I. -Iinclude -I${PACKAGE_ast_INCLUDE} -D_API_ast=20100309 -D_PACKAGE_ast -D_BLD_shell -DSHOPT_DYNAMIC -DSHOPT_MULTIBYTE -DSHOPT_PFSH -DSHOPT_STATS -DSHOPT_NAMESPACE -DSHOPT_COSHELL -DSHOPT_HISTEXPAND -DERROR_CONTEXT_T=Error_context_t -DSHOPT_FIXEDARRAY -DSHOPT_ESH -DKSHELL -c bltins/test.c
+ done test.o generated
++
++make poll.o
++make bltins/poll.c
++prev ${PACKAGE_ast_INCLUDE}/tmx.h implicit
++prev FEATURE/poll implicit
++prev FEATURE/externs implicit
++prev include/builtins.h implicit
++prev include/io.h implicit
++prev ${PACKAGE_ast_INCLUDE}/error.h implicit
++prev include/defs.h implicit
++done bltins/poll.c
++meta poll.o %.c>%.o bltins/poll.c test
++prev bltins/poll.c
++exec - ${CC} ${mam_cc_FLAGS} ${CCFLAGS} -I. -Iinclude -I${PACKAGE_ast_INCLUDE} -D_API_ast=20100309 -D_PACKAGE_ast -D_BLD_shell -DSHOPT_DYNAMIC -DSHOPT_MULTIBYTE -DSHOPT_PFSH -DSHOPT_STATS -DSHOPT_NAMESPACE -DSHOPT_COSHELL -DSHOPT_DYNAMIC -DSHOPT_HISTEXPAND -DERROR_CONTEXT_T=Error_context_t -DSHOPT_FIXEDARRAY -DSHOPT_ESH -DKSHELL -c bltins/poll.c
++done poll.o generated
++
+ make typeset.o
+ make bltins/typeset.c
+ prev FEATURE/dynamic implicit
+@@ -1328,7 +1344,7 @@ meta hexpand.o %.c>%.o edit/hexpand.c he
+ prev edit/hexpand.c
+ exec - ${CC} ${mam_cc_FLAGS} ${CCFLAGS} -I. -Iinclude -I${PACKAGE_ast_INCLUDE} -DSHOPT_HISTEXPAND -DSHOPT_EDPREDICT -DSHOPT_MULTIBYTE -DKSHELL -DSHOPT_ESH -DSHOPT_VSH -D_PACKAGE_ast -DSHOPT_PFSH -DSHOPT_STATS -DSHOPT_NAMESPACE -DSHOPT_COSHELL -D_BLD_shell -D_API_ast=20100309 -DERROR_CONTEXT_T=Error_context_t -DSHOPT_FIXEDARRAY -c edit/hexpand.c
+ done hexpand.o generated
+-exec - ${AR} rc libshell.a alarm.o cd_pwd.o cflow.o deparse.o enum.o getopts.o hist.o misc.o print.o read.o sleep.o trap.o test.o typeset.o ulimit.o umask.o whence.o main.o nvdisc.o nvtype.o arith.o args.o array.o completion.o defs.o edit.o expand.o regress.o fault.o fcin.o
++exec - ${AR} rc libshell.a alarm.o cd_pwd.o cflow.o deparse.o enum.o getopts.o hist.o misc.o poll.o print.o read.o sleep.o trap.o test.o typeset.o ulimit.o umask.o whence.o main.o nvdisc.o nvtype.o arith.o args.o array.o completion.o defs.o edit.o expand.o regress.o fault.o fcin.o
+ exec - ${AR} rc libshell.a history.o init.o io.o jobs.o lex.o macro.o name.o nvtree.o parse.o path.o string.o streval.o subshell.o tdump.o timers.o trestore.o waitevent.o xec.o env.o limits.o msg.o strdata.o testops.o keywords.o options.o signals.o aliases.o builtins.o variables.o lexstates.o emacs.o vi.o hexpand.o
+ exec - (ranlib libshell.a) >/dev/null 2>&1 || true
+ done libshell.a generated
+--- src/cmd/ksh93/bltins/poll.c
++++ src/cmd/ksh93/bltins/poll.c 2012-08-07 03:13:40.000000000 +0000
@@ -0,0 +1,717 @@
+/***********************************************************************
+* *
@@ -719,10 +762,9 @@
+
+ return(retval);
+}
-diff -N -r -u original/src/cmd/ksh93/data/builtins.c build_poll/src/cmd/ksh93/data/builtins.c
---- src/cmd/ksh93/data/builtins.c 2012-06-19 10:02:12.000000000 +0200
-+++ src/cmd/ksh93/data/builtins.c 2012-08-06 23:25:47.431435123 +0200
-@@ -109,6 +109,7 @@
+--- src/cmd/ksh93/data/builtins.c
++++ src/cmd/ksh93/data/builtins.c 2012-08-06 21:25:47.000000000 +0000
+@@ -109,6 +109,7 @@ const struct shtable3 shtab_builtins[] =
#endif /* JOBS */
"false", NV_BLTIN|BLT_ENV, bltin(false),
"getopts", NV_BLTIN|BLT_ENV, bltin(getopts),
@@ -730,10 +772,9 @@
"print", NV_BLTIN|BLT_ENV, bltin(print),
"printf", NV_BLTIN|BLT_ENV, bltin(printf),
"pwd", NV_BLTIN, bltin(pwd),
-diff -N -r -u original/src/cmd/ksh93/include/builtins.h build_poll/src/cmd/ksh93/include/builtins.h
---- src/cmd/ksh93/include/builtins.h 2012-01-10 20:11:54.000000000 +0100
-+++ src/cmd/ksh93/include/builtins.h 2012-08-06 23:25:47.432435170 +0200
-@@ -100,6 +100,7 @@
+--- src/cmd/ksh93/include/builtins.h
++++ src/cmd/ksh93/include/builtins.h 2012-08-06 21:25:47.000000000 +0000
+@@ -100,6 +100,7 @@ extern int b_wait(int, char*[],Shbltin_t
extern int b_whence(int, char*[],Shbltin_t*);
extern int b_alarm(int, char*[],Shbltin_t*);
@@ -741,55 +782,8 @@
extern int b_print(int, char*[],Shbltin_t*);
extern int b_printf(int, char*[],Shbltin_t*);
extern int b_pwd(int, char*[],Shbltin_t*);
-diff -N -r -u original/src/cmd/ksh93/Makefile build_poll/src/cmd/ksh93/Makefile
---- src/cmd/ksh93/Makefile 2012-06-19 09:46:54.000000000 +0200
-+++ src/cmd/ksh93/Makefile 2012-08-06 23:25:47.432435170 +0200
-@@ -161,6 +161,7 @@
-
- shell$(RELEASE) $(VERSION) id=shell :LIBRARY: shell.3 nval.3 alarm.c cd_pwd.c cflow.c deparse.c \
- enum.c getopts.c hist.c misc.c print.c read.c sleep.c trap.c test.c \
-+ poll.c \
- typeset.c ulimit.c umask.c whence.c main.c nvdisc.c nvtype.c \
- arith.c args.c array.c completion.c defs.c edit.c expand.c regress.c \
- fault.c fcin.c history.c init.c io.c jobs.c lex.c macro.c name.c \
-diff -N -r -u original/src/cmd/ksh93/Mamfile build_poll/src/cmd/ksh93/Mamfile
---- src/cmd/ksh93/Mamfile 2012-07-27 18:05:35.000000000 +0200
-+++ src/cmd/ksh93/Mamfile 2012-08-06 23:25:47.432435170 +0200
-@@ -548,6 +548,22 @@
- prev bltins/test.c
- exec - ${CC} ${mam_cc_FLAGS} ${CCFLAGS} -I. -Iinclude -I${PACKAGE_ast_INCLUDE} -D_API_ast=20100309 -D_PACKAGE_ast -D_BLD_shell -DSHOPT_DYNAMIC -DSHOPT_MULTIBYTE -DSHOPT_PFSH -DSHOPT_STATS -DSHOPT_NAMESPACE -DSHOPT_COSHELL -DSHOPT_HISTEXPAND -DERROR_CONTEXT_T=Error_context_t -DSHOPT_FIXEDARRAY -DSHOPT_ESH -DKSHELL -c bltins/test.c
- done test.o generated
-+
-+make poll.o
-+make bltins/poll.c
-+prev ${PACKAGE_ast_INCLUDE}/tmx.h implicit
-+prev FEATURE/poll implicit
-+prev FEATURE/externs implicit
-+prev include/builtins.h implicit
-+prev include/io.h implicit
-+prev ${PACKAGE_ast_INCLUDE}/error.h implicit
-+prev include/defs.h implicit
-+done bltins/poll.c
-+meta poll.o %.c>%.o bltins/poll.c test
-+prev bltins/poll.c
-+exec - ${CC} ${mam_cc_FLAGS} ${CCFLAGS} -I. -Iinclude -I${PACKAGE_ast_INCLUDE} -D_API_ast=20100309 -D_PACKAGE_ast -D_BLD_shell -DSHOPT_DYNAMIC -DSHOPT_MULTIBYTE -DSHOPT_PFSH -DSHOPT_STATS -DSHOPT_NAMESPACE -DSHOPT_COSHELL -DSHOPT_DYNAMIC -DSHOPT_HISTEXPAND -DERROR_CONTEXT_T=Error_context_t -DSHOPT_FIXEDARRAY -DSHOPT_ESH -DKSHELL -c bltins/poll.c
-+done poll.o generated
-+
- make typeset.o
- make bltins/typeset.c
- prev FEATURE/dynamic implicit
-@@ -1328,7 +1344,7 @@
- prev edit/hexpand.c
- exec - ${CC} ${mam_cc_FLAGS} ${CCFLAGS} -I. -Iinclude -I${PACKAGE_ast_INCLUDE} -DSHOPT_HISTEXPAND -DSHOPT_EDPREDICT -DSHOPT_MULTIBYTE -DKSHELL -DSHOPT_ESH -DSHOPT_VSH -D_PACKAGE_ast -DSHOPT_PFSH -DSHOPT_STATS -DSHOPT_NAMESPACE -DSHOPT_COSHELL -DSHOPT_DYNAMIC -D_BLD_shell -DERROR_CONTEXT_T=Error_context_t -D_API_ast=20100309 -DSHOPT_FIXEDARRAY -c edit/hexpand.c
- done hexpand.o generated
--exec - ${AR} rc libshell.a alarm.o cd_pwd.o cflow.o deparse.o enum.o getopts.o hist.o misc.o print.o read.o sleep.o trap.o test.o typeset.o ulimit.o umask.o whence.o main.o nvdisc.o nvtype.o arith.o args.o array.o completion.o defs.o edit.o expand.o regress.o fault.o fcin.o
-+exec - ${AR} rc libshell.a alarm.o cd_pwd.o cflow.o deparse.o enum.o getopts.o hist.o misc.o poll.o print.o read.o sleep.o trap.o test.o typeset.o ulimit.o umask.o whence.o main.o nvdisc.o nvtype.o arith.o args.o array.o completion.o defs.o edit.o expand.o regress.o fault.o fcin.o
- exec - ${AR} rc libshell.a history.o init.o io.o jobs.o lex.o macro.o name.o nvtree.o parse.o path.o string.o streval.o subshell.o tdump.o timers.o trestore.o waitevent.o xec.o env.o limits.o msg.o strdata.o testops.o keywords.o options.o signals.o aliases.o builtins.o variables.o lexstates.o emacs.o vi.o hexpand.o
- exec - (ranlib libshell.a) >/dev/null 2>&1 || true
- done libshell.a generated
-diff -N -r -u original/src/cmd/ksh93/tests/builtin_poll.sh build_poll/src/cmd/ksh93/tests/builtin_poll.sh
---- src/cmd/ksh93/tests/builtin_poll.sh 1970-01-01 01:00:00.000000000 +0100
-+++ src/cmd/ksh93/tests/builtin_poll.sh 2012-08-07 03:22:34.753348550 +0200
+--- src/cmd/ksh93/tests/builtin_poll.sh
++++ src/cmd/ksh93/tests/builtin_poll.sh 2012-08-07 01:22:35.000000000 +0000
@@ -0,0 +1,100 @@
+########################################################################
+# #
++++++ ksh-qemu.patch ++++++
--- /var/tmp/diff_new_pack.2IEHPB/_old 2013-02-17 17:04:28.000000000 +0100
+++ /var/tmp/diff_new_pack.2IEHPB/_new 2013-02-17 17:04:28.000000000 +0100
@@ -1,6 +1,6 @@
--- src/lib/libast/features/lib
-+++ src/lib/libast/features/lib 2007-03-28 17:49:29.241351031 +0200
-@@ -90,27 +90,6 @@ tst lib_poll_fd_1 note{ fd is first arg
++++ src/lib/libast/features/lib 2007-03-28 15:49:29.000000000 +0000
+@@ -92,27 +92,6 @@ tst lib_poll_fd_1 note{ fd is first arg
}
}end
@@ -28,7 +28,7 @@
exp _lib_poll _lib_poll_fd_1||_lib_poll_fd_2
tst lib_poll_notimer note{ poll with no fds ignores timeout }end execute{
-@@ -224,74 +203,6 @@ tst real_vfork note{ vfork child shares
+@@ -241,74 +220,6 @@ tst real_vfork note{ vfork child shares
}
}end
++++++ ksh93-builtin.dif ++++++
--- /var/tmp/diff_new_pack.2IEHPB/_old 2013-02-17 17:04:28.000000000 +0100
+++ /var/tmp/diff_new_pack.2IEHPB/_new 2013-02-17 17:04:28.000000000 +0100
@@ -1,6 +1,6 @@
--- src/cmd/builtin/pty.c
-+++ src/cmd/builtin/pty.c 2012-02-13 13:35:02.577933517 +0000
-@@ -215,6 +215,12 @@ mkpty(int* master, int* slave)
++++ src/cmd/builtin/pty.c 2013-02-01 15:59:52.697952156 +0000
+@@ -216,6 +216,12 @@ mkpty(int* master, int* slave)
#if !_lib_openpty
char* sname;
#endif
@@ -13,7 +13,7 @@
/*
* some systems hang hard during the handshake
* if you know why then please let us know
-@@ -237,6 +243,12 @@ mkpty(int* master, int* slave)
+@@ -238,6 +244,12 @@ mkpty(int* master, int* slave)
error(-1, "unable to get standard error window size");
}
#endif
@@ -26,10 +26,10 @@
#if _lib_openpty
if (openpty(master, slave, NULL, ttyp, winp) < 0)
return -1;
-@@ -276,6 +288,9 @@ mkpty(int* master, int* slave)
- #endif
- fcntl(*master, F_SETFD, FD_CLOEXEC);
+@@ -279,6 +291,9 @@ mkpty(int* master, int* slave)
+ #if !O_cloexec
fcntl(*slave, F_SETFD, FD_CLOEXEC);
+ #endif
+#ifdef __linux__
+ sigprocmask(SIG_SETMASK, &oldset, NULL);
+#endif
++++++ ksh93-compat.dif ++++++
--- /var/tmp/diff_new_pack.2IEHPB/_old 2013-02-17 17:04:28.000000000 +0100
+++ /var/tmp/diff_new_pack.2IEHPB/_new 2013-02-17 17:04:28.000000000 +0100
@@ -1,6 +1,6 @@
--- src/lib/libast/astsa/ast.h
-+++ src/lib/libast/astsa/ast.h 2012-02-21 12:03:32.810434306 +0000
-@@ -94,6 +94,12 @@ typedef struct
++++ src/lib/libast/astsa/ast.h 2012-02-21 12:03:33.000000000 +0000
+@@ -93,6 +93,12 @@ typedef struct
#define pointerof(x) ((void*)((char*)0+(x)))
#define roundof(x,y) (((x)+(y)-1)&~((y)-1))
@@ -13,37 +13,8 @@
#ifndef offsetof
#define offsetof(type,member) ((unsigned long)&(((type*)0)->member))
#endif
---- src/lib/libdll/features/dll
-+++ src/lib/libdll/features/dll 2007-03-30 18:40:58.855596004 +0200
-@@ -15,7 +15,7 @@ tst dll_DYNAMIC link{
- }end
- tst run{
- lib=
-- for d in /shlib /usr/shlib /lib /usr/lib
-+ for d in /lib64 /usr/lib64 /lib /usr/lib
- do if test -d $d
- then for s in "*.*" "*[!a]*"
- do for b in libc
-@@ -52,7 +52,7 @@ tst run{
- "") lib=/lib/libc.so.1 ;;
- esac
- case $lib in
-- /usr/lib/*)
-+ /usr/lib64/*|/usr/lib/*)
- case `package` in
- sgi.mips3)
- abi=/lib32
-@@ -65,7 +65,7 @@ tst run{
- esac
- case $abi in
- ?*) if test -d $abi
-- then lib=`echo $lib | sed 's,/usr/lib/,,'`
-+ then lib=`echo $lib | sed 's,/usr/lib\(64\)\?/,,'`
- lib=$abi/$lib
- fi
- ;;
--- src/lib/libast/features/libpath.sh
-+++ src/lib/libast/features/libpath.sh 2007-03-30 18:45:55.030440187 +0200
++++ src/lib/libast/features/libpath.sh 2007-03-30 16:45:55.000000000 +0000
@@ -21,7 +21,7 @@
########################################################################
ok=0
@@ -54,8 +25,8 @@
-r /usr/shlib/libc.so /shlib/libc.so
do case $i in
--- src/lib/libast/features/map.c
-+++ src/lib/libast/features/map.c 2009-12-09 12:13:24.423429613 +0100
-@@ -66,10 +66,14 @@ main()
++++ src/lib/libast/features/map.c 2009-12-09 11:13:24.000000000 +0000
+@@ -67,10 +67,14 @@ main()
#define _map_malloc 1
printf("\n");
printf("#define _map_libc 1\n");
@@ -71,8 +42,8 @@
printf("#undef eaccess\n");
printf("#define eaccess _ast_eaccess\n");
--- src/lib/libast/features/sys
-+++ src/lib/libast/features/sys 2012-02-21 12:04:43.269934994 +0000
-@@ -126,7 +126,7 @@ tst typ_signed_size_t output{
++++ src/lib/libast/features/sys 2012-02-21 12:04:43.000000000 +0000
+@@ -134,7 +134,7 @@ tst typ_signed_size_t output{
}
}end
@@ -81,3 +52,32 @@
define EXIT_FAILURE 1
define EXIT_SUCCESS 0
define MB_CUR_MAX 1
+--- src/lib/libdll/features/dll
++++ src/lib/libdll/features/dll 2007-03-30 16:40:59.000000000 +0000
+@@ -15,7 +15,7 @@ tst dll_DYNAMIC link{
+ }end
+ tst run{
+ lib=
+- for d in /shlib /usr/shlib /lib /usr/lib
++ for d in /lib64 /usr/lib64 /lib /usr/lib
+ do if test -d $d
+ then for s in "*.*" "*[!a]*"
+ do for b in libc
+@@ -52,7 +52,7 @@ tst run{
+ "") lib=/lib/libc.so.1 ;;
+ esac
+ case $lib in
+- /usr/lib/*)
++ /usr/lib64/*|/usr/lib/*)
+ case `package` in
+ sgi.mips3)
+ abi=/lib32
+@@ -65,7 +65,7 @@ tst run{
+ esac
+ case $abi in
+ ?*) if test -d $abi
+- then lib=`echo $lib | sed 's,/usr/lib/,,'`
++ then lib=`echo $lib | sed 's,/usr/lib\(64\)\?/,,'`
+ lib=$abi/$lib
+ fi
+ ;;
++++++ ksh93-dttree-crash.dif ++++++
--- /var/tmp/diff_new_pack.2IEHPB/_old 2013-02-17 17:04:28.000000000 +0100
+++ /var/tmp/diff_new_pack.2IEHPB/_new 2013-02-17 17:04:28.000000000 +0100
@@ -1,5 +1,94 @@
+--- src/cmd/ksh93/sh/xec.c
++++ src/cmd/ksh93/sh/xec.c 2013-02-01 16:22:50.000000000 +0000
+@@ -2741,11 +2741,6 @@ int sh_exec(register const Shnode_t *t,
+ slp = (struct slnod*)np->nvenv;
+ sh_funstaks(slp->slchild,-1);
+ stakdelete(slp->slptr);
+- if(shp->funload)
+- {
+- free((void*)np->nvalue.rp);
+- np->nvalue.rp = 0;
+- }
+ if(rp->sdict)
+ {
+ Namval_t *mp, *nq;
+@@ -2759,6 +2754,12 @@ int sh_exec(register const Shnode_t *t,
+ dtclose(rp->sdict);
+ rp->sdict = 0;
+ }
++ if(shp->funload)
++ {
++ if(!shp->fpathdict)
++ free((void*)np->nvalue.rp);
++ np->nvalue.rp = 0;
++ }
+ }
+ if(!np->nvalue.rp)
+ {
+@@ -2769,7 +2770,7 @@ int sh_exec(register const Shnode_t *t,
+ {
+ static Dtdisc_t _Rpdisc =
+ {
+- offsetof(struct Ufunction,fname), -1, sizeof(struct Ufunction)
++ offsetof(struct Ufunction,fname), -1, sizeof(struct Ufunction)
+ };
+ struct functnod *fp;
+ struct comnod *ac = t->funct.functargs;
+@@ -2796,8 +2797,10 @@ int sh_exec(register const Shnode_t *t,
+ rp->np = np;
+ if(!shp->fpathdict)
+ shp->fpathdict = dtopen(&_Rpdisc,Dtobag);
+- if(shp->fpathdict)
++ if(shp->fpathdict) {
++ dtuserdata(shp->fpathdict,shp,1);
+ dtinsert(shp->fpathdict,rp);
++ }
+ }
+ }
+ else
+--- src/lib/libast/Mamfile
++++ src/lib/libast/Mamfile 2013-01-30 10:01:13.000000000 +0000
+@@ -3969,6 +3969,14 @@ meta dtopen.o %.c>%.o cdt/dtopen.c dtope
+ prev cdt/dtopen.c
+ exec - ${CC} ${mam_cc_FLAGS} ${CCFLAGS} -I. -Icdt -Icomp -Iinclude -Istd -I${INSTALLROOT}/include/ast -D_PACKAGE_ast -c cdt/dtopen.c
+ done dtopen.o generated
++make dtstat.o
++make cdt/dtstat.c
++prev cdt/dthdr.h implicit
++done cdt/dtstat.c
++meta dtstat.o %.c>%.o cdt/dtstat.c dtstat
++prev cdt/dtstat.c
++exec - ${CC} ${mam_cc_FLAGS} ${CCFLAGS} -I. -Icdt -Icomp -Iinclude -Istd -I${INSTALLROOT}/include/ast -D_PACKAGE_ast -c cdt/dtstat.c
++done dtstat.o generated
+ make dtstrhash.o
+ make cdt/dtstrhash.c
+ prev cdt/dthdr.h implicit
+@@ -3985,6 +3993,14 @@ meta dttree.o %.c>%.o cdt/dttree.c dttre
+ prev cdt/dttree.c
+ exec - ${CC} ${mam_cc_FLAGS} ${CCFLAGS} -I. -Icdt -Icomp -Iinclude -Istd -I${INSTALLROOT}/include/ast -D_PACKAGE_ast -c cdt/dttree.c
+ done dttree.o generated
++make dtuser.o
++make cdt/dtuser.c
++prev cdt/dthdr.h implicit
++done cdt/dtuser.c
++meta dtuser.o %.c>%.o cdt/dtuser.c dtuser
++prev cdt/dtuser.c
++exec - ${CC} ${mam_cc_FLAGS} ${CCFLAGS} -I. -Icdt -Icomp -Iinclude -Istd -I${INSTALLROOT}/include/ast -D_PACKAGE_ast -c cdt/dtuser.c
++done dtuser.o generated
+ make dtview.o
+ make cdt/dtview.c
+ prev cdt/dthdr.h implicit
+@@ -6101,7 +6117,7 @@ exec - ${AR} rc libast.a state.o transit
+ exec - ${AR} rc libast.a streval.o strexpr.o strmatch.o strcopy.o modei.o modex.o strmode.o strlcat.o strlcpy.o strlook.o strncopy.o strsearch.o strpsearch.o stresc.o stropt.o strtape.o strpcmp.o strnpcmp.o strvcmp.o strnvcmp.o tok.o tokline.o tokscan.o pathaccess.o pathcat.o pathcanon.o pathcheck.o pathpath.o pathexists.o pathfind.o pathkey.o pathprobe.o pathrepl.o pathnative.o pathposix.o pathtemp.o pathtmp.o pathstat.o pathgetlink.o pathsetlink.o pathbin.o pathshell.o pathcd.o pathprog.o fs3d.o ftwalk.o ftwflags.o fts.o astintercept.o conformance.o getenv.o setenviron.o optget.o optjoin.o optesc.o optctx.o strsort.o struniq.o magic.o mime.o mimetype.o signal.o sigflag.o systrace.o error.o errorf.o errormsg.o errorx.o localeconv.o setlocale.o translate.o catopen.o iconv.o lc.o lctab.o mc.o base64.o recfmt.o recstr.o reclen.o fmtrec.o fmtbase.o fmtbuf.o fmtclock.o fmtdev.o fmtelapsed.o fmterror.o fmtesc.o fmtfmt.o fmtfs.o fmtident.o fmtint.o fmtip4.o fmtip6.o fmtls.o fmtmatch.o fmtmode.o fmtnum.o fmtperm.o fmtre.o fmttime.o
+ exec - ${AR} rc libast.a fmtuid.o fmtgid.o fmtsignal.o fmtscale.o fmttmx.o fmttv.o fmtversion.o strelapsed.o strperm.o struid.o strgid.o strtoip4.o strtoip6.o stack.o stk.o swapget.o swapmem.o swapop.o swapput.o sigdata.o sigcrit.o sigunblock.o procopen.o procclose.o procrun.o procfree.o tmdate.o tmequiv.o tmfix.o tmfmt.o tmform.o tmgoff.o tminit.o tmleap.o tmlex.o tmlocale.o tmmake.o tmpoff.o tmscan.o tmsleep.o tmtime.o tmtype.o tmweek.o tmword.o tmzone.o tmxdate.o tmxduration.o tmxfmt.o tmxgettime.o tmxleap.o tmxmake.o tmxscan.o tmxsettime.o tmxsleep.o tmxtime.o tmxtouch.o tvcmp.o tvgettime.o tvsettime.o tvsleep.o tvtouch.o cmdarg.o vecargs.o vecfile.o vecfree.o vecload.o vecstring.o univdata.o touch.o mnt.o debug.o memccpy.o memchr.o memcmp.o memcpy.o memdup.o memmove.o memset.o mkdir.o mkfifo.o mknod.o rmdir.o remove.o rename.o link.o unlink.o strdup.o strchr.o strrchr.o strstr.o strtod.o strtold.o strtol.o strtoll.o strtoul.o strtoull.o strton.o strtonll.o strntod.o strntold.o strnton.o
+ exec - ${AR} rc libast.a strntonll.o strntol.o strntoll.o strntoul.o strntoull.o strcasecmp.o strncasecmp.o strerror.o mktemp.o tmpnam.o fsync.o execlp.o execve.o execvp.o execvpe.o spawnveg.o vfork.o killpg.o hsearch.o tsearch.o getlogin.o putenv.o setenv.o unsetenv.o lstat.o statvfs.o eaccess.o gross.o omitted.o readlink.o symlink.o getpgrp.o setpgid.o setsid.o waitpid.o creat64.o fcntl.o open.o atexit.o getdents.o getwd.o dup2.o errno.o getpreroot.o ispreroot.o realopen.o setpreroot.o getgroups.o mount.o system.o iblocks.o modedata.o tmdata.o memfatal.o sfkeyprintf.o sfdcdio.o sfdcdos.o sfdcfilter.o sfdcseekable.o sfdcslow.o sfdcsubstr.o sfdctee.o sfdcunion.o sfdcmore.o sfdcprefix.o wc.o wc2utf8.o basename.o closelog.o dirname.o fmtmsglib.o fnmatch.o ftw.o getdate.o getsubopt.o glob.o nftw.o openlog.o re_comp.o resolvepath.o realpath.o regcmp.o regexp.o setlogmask.o strftime.o strptime.o swab.o syslog.o tempnam.o wordexp.o mktime.o regalloc.o regclass.o regcoll.o regcomp.o regcache.o regdecomp.o regerror.o regexec.o regfatal.o reginit.o
+-exec - ${AR} rc libast.a regnexec.o regsubcomp.o regsubexec.o regsub.o regrecord.o regrexec.o regstat.o dtclose.o dtdisc.o dthash.o dtlist.o dtmethod.o dtopen.o dtstrhash.o dttree.o dtview.o dtwalk.o dtnew.o dtcomp.o sfclose.o sfclrlock.o sfdisc.o sfdlen.o sfexcept.o sfgetl.o sfgetu.o sfcvt.o sfecvt.o sffcvt.o sfextern.o sffilbuf.o sfflsbuf.o sfprints.o sfgetd.o sfgetr.o sfllen.o sfmode.o sfmove.o sfnew.o sfpkrd.o sfnotify.o sfnputc.o sfopen.o sfpeek.o sfpoll.o sfpool.o sfpopen.o sfprintf.o sfputd.o sfputl.o sfputr.o sfputu.o sfrd.o sfread.o sfreserve.o sfscanf.o sfseek.o sfset.o sfsetbuf.o sfsetfd.o sfsize.o sfsk.o sfstack.o sfstrtod.o sfsync.o sfswap.o sftable.o sftell.o sftmp.o sfungetc.o sfvprintf.o sfvscanf.o sfwr.o sfwrite.o sfpurge.o sfraise.o sfwalk.o sfgetm.o sfmutex.o sfputm.o sfresize.o _sfclrerr.o _sfeof.o _sferror.o _sffileno.o _sfopen.o _sfstacked.o _sfvalue.o _sfgetc.o _sfgetl.o _sfgetl2.o _sfgetu.o _sfgetu2.o _sfdlen.o _sfllen.o _sfslen.o _sfulen.o _sfputc.o _sfputd.o _sfputl.o _sfputm.o
++exec - ${AR} rc libast.a regnexec.o regsubcomp.o regsubexec.o regsub.o regrecord.o regrexec.o regstat.o dtclose.o dtdisc.o dthash.o dtlist.o dtmethod.o dtopen.o dtstat.o dtstrhash.o dttree.o dtuser.o dtview.o dtwalk.o dtnew.o dtcomp.o sfclose.o sfclrlock.o sfdisc.o sfdlen.o sfexcept.o sfgetl.o sfgetu.o sfcvt.o sfecvt.o sffcvt.o sfextern.o sffilbuf.o sfflsbuf.o sfprints.o sfgetd.o sfgetr.o sfllen.o sfmode.o sfmove.o sfnew.o sfpkrd.o sfnotify.o sfnputc.o sfopen.o sfpeek.o sfpoll.o sfpool.o sfpopen.o sfprintf.o sfputd.o sfputl.o sfputr.o sfputu.o sfrd.o sfread.o sfreserve.o sfscanf.o sfseek.o sfset.o sfsetbuf.o sfsetfd.o sfsize.o sfsk.o sfstack.o sfstrtod.o sfsync.o sfswap.o sftable.o sftell.o sftmp.o sfungetc.o sfvprintf.o sfvscanf.o sfwr.o sfwrite.o sfpurge.o sfraise.o sfwalk.o sfgetm.o sfmutex.o sfputm.o sfresize.o _sfclrerr.o _sfeof.o _sferror.o _sffileno.o _sfopen.o _sfstacked.o _sfvalue.o _sfgetc.o _sfgetl.o _sfgetl2.o _sfgetu.o _sfgetu2.o _sfdlen.o _sfllen.o _sfslen.o _sfulen.o _sfputc.o _sfputd.o _sfputl.o _sfputm.o
+ exec - ${AR} rc libast.a _sfputu.o clearerr.o fclose.o fdopen.o feof.o ferror.o fflush.o fgetc.o fgetpos.o fgets.o fileno.o fopen.o fprintf.o fpurge.o fputc.o fputs.o fread.o freopen.o fscanf.o fseek.o fseeko.o fsetpos.o ftell.o ftello.o fwrite.o flockfile.o ftrylockfile.o funlockfile.o getc.o getchar.o getw.o pclose.o popen.o printf.o putc.o putchar.o puts.o putw.o rewind.o scanf.o setbuf.o setbuffer.o setlinebuf.o setvbuf.o snprintf.o sprintf.o sscanf.o asprintf.o vasprintf.o tmpfile.o ungetc.o vfprintf.o vfscanf.o vprintf.o vscanf.o vsnprintf.o vsprintf.o vsscanf.o _doprnt.o _doscan.o _filbuf.o _flsbuf.o _stdfun.o _stdopen.o _stdprintf.o _stdscanf.o _stdsprnt.o _stdvbuf.o _stdvsnprnt.o _stdvsprnt.o _stdvsscn.o fgetwc.o fwprintf.o putwchar.o vfwscanf.o wprintf.o fgetws.o fwscanf.o swprintf.o vswprintf.o wscanf.o fputwc.o getwc.o swscanf.o vswscanf.o fputws.o getwchar.o ungetwc.o vwprintf.o fwide.o putwc.o vfwprintf.o vwscanf.o stdio_c99.o fcloseall.o fmemopen.o getdelim.o getline.o frexp.o frexpl.o astcopy.o
+ exec - ${AR} rc libast.a astconf.o astdynamic.o astlicense.o astquery.o astwinsize.o conftab.o aststatic.o getopt.o getoptl.o aso.o asolock.o asometh.o asorelax.o aso-sem.o aso-fcntl.o vmbest.o vmclear.o vmclose.o vmdcheap.o vmdebug.o vmdisc.o vmexit.o vmlast.o vmopen.o vmpool.o vmprivate.o vmprofile.o vmregion.o vmsegment.o vmset.o vmstat.o vmstrdup.o vmtrace.o vmwalk.o vmmopen.o malloc.o vmgetmem.o a64l.o acosh.o asinh.o atanh.o cbrt.o crypt.o erf.o err.o exp.o exp__E.o expm1.o gamma.o getpass.o lgamma.o log.o log1p.o log__L.o rand48.o random.o rcmd.o rint.o support.o sfstrtmp.o spawn.o
+ exec - (ranlib libast.a) >/dev/null 2>&1 || true
--- src/lib/libast/cdt/dtcomp.c
-+++ src/lib/libast/cdt/dtcomp.c 2012-12-20 10:29:45.005452948 +0000
++++ src/lib/libast/cdt/dtcomp.c 2012-12-20 10:29:45.000000000 +0000
@@ -52,9 +52,3 @@ extern ssize_t dtsize(Dt_t* d)
{
return (ssize_t)(*(_DT(d)->searchf))((d),(Void_t*)(0),DT_STAT);
@@ -10,27 +99,8 @@
-{
- return (ssize_t)(*(_DT(d)->searchf))((d),(Void_t*)(0),DT_STAT);
-}
---- src/lib/libast/cdt/dtdisc.c
-+++ src/lib/libast/cdt/dtdisc.c 2012-12-20 10:29:45.013452595 +0000
-@@ -57,7 +57,6 @@ Dtdisc_t* disc;
- int type;
- #endif
- {
-- Dtsearch_f searchf;
- Dtdisc_t *old;
- Dtlink_t *list;
-
-@@ -71,8 +70,6 @@ int type;
- if(!disc) /* only want to know current discipline */
- return old;
-
-- searchf = dt->meth->searchf;
--
- if(old->eventf && (*old->eventf)(dt,DT_DISC,(Void_t*)disc,old) < 0)
- return NIL(Dtdisc_t*);
-
--- src/lib/libast/cdt/dthash.c
-+++ src/lib/libast/cdt/dthash.c 2012-12-20 10:29:45.013452595 +0000
++++ src/lib/libast/cdt/dthash.c 2012-12-20 10:29:45.000000000 +0000
@@ -52,11 +52,13 @@ static int htable(Dt_t* dt)
if((n = hash->tblz) > 0 && (hash->type&H_FIXED) )
return 0; /* fixed size table */
@@ -120,7 +190,7 @@
do_insert: /* inserting a new object */
--- src/lib/libast/cdt/dtlist.c
-+++ src/lib/libast/cdt/dtlist.c 2012-12-20 10:29:45.013452595 +0000
++++ src/lib/libast/cdt/dtlist.c 2012-12-20 10:29:45.000000000 +0000
@@ -142,9 +142,9 @@ int type;
}
@@ -133,7 +203,7 @@
Dt_t* dt;
Dtstat_t* st;
#endif
-@@ -190,7 +190,7 @@ int type;
+@@ -186,7 +186,7 @@ int type;
else if(type&DT_CLEAR)
DTRETURN(obj, lclear(dt));
else if(type&DT_STAT )
@@ -142,7 +212,7 @@
h = list->here; /* save finger to last search object */
list->here = NIL(Dtlink_t*);
-@@ -206,8 +206,9 @@ int type;
+@@ -202,8 +202,9 @@ int type;
{ r = (Dtlink_t*)obj;
goto do_insert;
}
@@ -154,7 +224,7 @@
DTRETURN(obj, NIL(Void_t*));
dt->data->size += 1;
-@@ -294,7 +295,7 @@ int type;
+@@ -290,7 +291,7 @@ int type;
}
r = h ? h : r;
}
@@ -163,8 +233,8 @@
DTRETURN(obj, NIL(Void_t*));
if(type&(DT_DELETE|DT_DETACH|DT_REMOVE))
---- src/lib/libast/cdt/dtopen.c 2012-01-19 09:47:26.000000000 +0000
-+++ src/lib/libast/cdt/dtopen.c 2012-12-20 10:29:45.021452290 +0000
+--- src/lib/libast/cdt/dtopen.c
++++ src/lib/libast/cdt/dtopen.c 2012-12-20 10:29:45.000000000 +0000
@@ -153,25 +153,3 @@ void _dtfree(Dt_t* dt, Dtlink_t* l, int
if(disc->link < 0) /* free holder */
(void)(*dt->memoryf)(dt, (Void_t*)l, 0, disc);
@@ -191,8 +261,8 @@
- return data;
- }
-}
---- src/lib/libast/cdt/dtstat.c 1970-01-01 00:00:00.000000000 +0000
-+++ src/lib/libast/cdt/dtstat.c 2012-12-20 10:29:45.021452290 +0000
+--- src/lib/libast/cdt/dtstat.c
++++ src/lib/libast/cdt/dtstat.c 2012-12-20 10:29:45.000000000 +0000
@@ -0,0 +1,54 @@
+/***********************************************************************
+* *
@@ -249,7 +319,7 @@
+ return sz;
+}
--- src/lib/libast/cdt/dtstrhash.c
-+++ src/lib/libast/cdt/dtstrhash.c 2012-12-20 10:29:45.021452290 +0000
++++ src/lib/libast/cdt/dtstrhash.c 2012-12-20 10:29:45.000000000 +0000
@@ -22,40 +22,38 @@
#include "dthdr.h"
@@ -310,7 +380,7 @@
+ return h;
}
--- src/lib/libast/cdt/dttree.c
-+++ src/lib/libast/cdt/dttree.c 2012-12-20 10:29:45.029525330 +0000
++++ src/lib/libast/cdt/dttree.c 2012-12-20 10:29:45.000000000 +0000
@@ -545,7 +545,14 @@ int type;
}
else goto no_root;
@@ -378,17 +448,8 @@
{ dt_insert:
if(!(root = _dtmake(dt, obj, type)) )
{ obj = NIL(Void_t*);
-@@ -638,8 +649,6 @@ dt_return:
-
- static int treeevent(Dt_t* dt, int event, Void_t* arg)
- {
-- Dtlink_t *l, *list;
-- ssize_t size;
- Dttree_t *tree = (Dttree_t*)dt->data;
-
- if(event == DT_OPEN)
---- src/lib/libast/cdt/dtuser.c 1970-01-01 00:00:00.000000000 +0000
-+++ src/lib/libast/cdt/dtuser.c 2012-12-20 10:29:45.029525330 +0000
+--- src/lib/libast/cdt/dtuser.c
++++ src/lib/libast/cdt/dtuser.c 2012-12-20 10:29:45.000000000 +0000
@@ -0,0 +1,59 @@
+/***********************************************************************
+* *
@@ -449,8 +510,8 @@
+ return 0;
+ else return (*dt->disc->eventf)(dt, DT_ANNOUNCE|DT_USER|flags, data, dt->disc);
+}
---- src/lib/libast/include/cdt.h 2012-12-20 11:37:28.641452879 +0000
-+++ src/lib/libast/include/cdt.h 2012-12-20 10:29:45.129453247 +0000
+--- src/lib/libast/include/cdt.h
++++ src/lib/libast/include/cdt.h 2012-12-20 10:29:45.000000000 +0000
@@ -164,6 +164,7 @@ struct _dtstat_s
ssize_t msize; /* max #defined elts in below arrays */
ssize_t lsize[DT_MAXSIZE]; /* #objects by level */
@@ -503,99 +564,3 @@
#define dtsize(d) (ssize_t)(*(_DT(d)->searchf))((d),(Void_t*)(0),DT_STAT)
#define DT_PRIME 17109811 /* 2#00000001 00000101 00010011 00110011 */
---- src/lib/libast/Mamfile
-+++ src/lib/libast/Mamfile 2013-01-30 10:01:13.201453447 +0000
-@@ -3966,6 +3966,14 @@ meta dtopen.o %.c>%.o cdt/dtopen.c dtope
- prev cdt/dtopen.c
- exec - ${CC} ${mam_cc_FLAGS} ${CCFLAGS} -I. -Icdt -Icomp -Iinclude -Istd -I${INSTALLROOT}/include/ast -D_PACKAGE_ast -c cdt/dtopen.c
- done dtopen.o generated
-+make dtstat.o
-+make cdt/dtstat.c
-+prev cdt/dthdr.h implicit
-+done cdt/dtstat.c
-+meta dtstat.o %.c>%.o cdt/dtstat.c dtstat
-+prev cdt/dtstat.c
-+exec - ${CC} ${mam_cc_FLAGS} ${CCFLAGS} -I. -Icdt -Icomp -Iinclude -Istd -I${INSTALLROOT}/include/ast -D_PACKAGE_ast -c cdt/dtstat.c
-+done dtstat.o generated
- make dtstrhash.o
- make cdt/dtstrhash.c
- prev cdt/dthdr.h implicit
-@@ -3982,6 +3990,14 @@ meta dttree.o %.c>%.o cdt/dttree.c dttre
- prev cdt/dttree.c
- exec - ${CC} ${mam_cc_FLAGS} ${CCFLAGS} -I. -Icdt -Icomp -Iinclude -Istd -I${INSTALLROOT}/include/ast -D_PACKAGE_ast -c cdt/dttree.c
- done dttree.o generated
-+make dtuser.o
-+make cdt/dtuser.c
-+prev cdt/dthdr.h implicit
-+done cdt/dtuser.c
-+meta dtuser.o %.c>%.o cdt/dtuser.c dtuser
-+prev cdt/dtuser.c
-+exec - ${CC} ${mam_cc_FLAGS} ${CCFLAGS} -I. -Icdt -Icomp -Iinclude -Istd -I${INSTALLROOT}/include/ast -D_PACKAGE_ast -c cdt/dtuser.c
-+done dtuser.o generated
- make dtview.o
- make cdt/dtview.c
- prev cdt/dthdr.h implicit
-@@ -6091,7 +6107,7 @@ exec - ${AR} rc libast.a state.o transit
- exec - ${AR} rc libast.a streval.o strexpr.o strmatch.o strcopy.o modei.o modex.o strmode.o strlcat.o strlcpy.o strlook.o strncopy.o strsearch.o strpsearch.o stresc.o stropt.o strtape.o strpcmp.o strnpcmp.o strvcmp.o strnvcmp.o tok.o tokline.o tokscan.o pathaccess.o pathcat.o pathcanon.o pathcheck.o pathpath.o pathexists.o pathfind.o pathkey.o pathprobe.o pathrepl.o pathnative.o pathposix.o pathtemp.o pathtmp.o pathstat.o pathgetlink.o pathsetlink.o pathbin.o pathshell.o pathcd.o pathprog.o fs3d.o ftwalk.o ftwflags.o fts.o astintercept.o conformance.o getenv.o setenviron.o optget.o optjoin.o optesc.o optctx.o strsort.o struniq.o magic.o mime.o mimetype.o signal.o sigflag.o systrace.o error.o errorf.o errormsg.o errorx.o localeconv.o setlocale.o translate.o catopen.o iconv.o lc.o lctab.o mc.o base64.o recfmt.o recstr.o reclen.o fmtrec.o fmtbase.o fmtbuf.o fmtclock.o fmtdev.o fmtelapsed.o fmterror.o fmtesc.o fmtfmt.o fmtfs.o fmtident.o fmtint.o fmtip4.o fmtip6.o fmtls.o fmtmatch.o fmtmode.o fmtnum.o fmtperm.o fmtre.o fmttime.o
- exec - ${AR} rc libast.a fmtuid.o fmtgid.o fmtsignal.o fmtscale.o fmttmx.o fmttv.o fmtversion.o strelapsed.o strperm.o struid.o strgid.o strtoip4.o strtoip6.o stack.o stk.o swapget.o swapmem.o swapop.o swapput.o sigdata.o sigcrit.o sigunblock.o procopen.o procclose.o procrun.o procfree.o tmdate.o tmequiv.o tmfix.o tmfmt.o tmform.o tmgoff.o tminit.o tmleap.o tmlex.o tmlocale.o tmmake.o tmpoff.o tmscan.o tmsleep.o tmtime.o tmtype.o tmweek.o tmword.o tmzone.o tmxdate.o tmxduration.o tmxfmt.o tmxgettime.o tmxleap.o tmxmake.o tmxscan.o tmxsettime.o tmxsleep.o tmxtime.o tmxtouch.o tvcmp.o tvgettime.o tvsettime.o tvsleep.o tvtouch.o cmdarg.o vecargs.o vecfile.o vecfree.o vecload.o vecstring.o univdata.o touch.o mnt.o debug.o memccpy.o memchr.o memcmp.o memcpy.o memdup.o memmove.o memset.o mkdir.o mkfifo.o mknod.o rmdir.o remove.o rename.o link.o unlink.o strdup.o strchr.o strrchr.o strstr.o strtod.o strtold.o strtol.o strtoll.o strtoul.o strtoull.o strton.o strtonll.o strntod.o strntold.o strnton.o
- exec - ${AR} rc libast.a strntonll.o strntol.o strntoll.o strntoul.o strntoull.o strcasecmp.o strncasecmp.o strerror.o mktemp.o tmpnam.o fsync.o execlp.o execve.o execvp.o execvpe.o spawnveg.o vfork.o killpg.o hsearch.o tsearch.o getlogin.o putenv.o setenv.o unsetenv.o lstat.o statvfs.o eaccess.o gross.o omitted.o readlink.o symlink.o getpgrp.o setpgid.o setsid.o waitpid.o creat64.o fcntl.o open.o atexit.o getdents.o getwd.o dup2.o errno.o getpreroot.o ispreroot.o realopen.o setpreroot.o getgroups.o mount.o system.o iblocks.o modedata.o tmdata.o memfatal.o sfkeyprintf.o sfdcdio.o sfdcdos.o sfdcfilter.o sfdcseekable.o sfdcslow.o sfdcsubstr.o sfdctee.o sfdcunion.o sfdcmore.o sfdcprefix.o wc.o wc2utf8.o basename.o closelog.o dirname.o fmtmsglib.o fnmatch.o ftw.o getdate.o getsubopt.o glob.o nftw.o openlog.o re_comp.o resolvepath.o realpath.o regcmp.o regexp.o setlogmask.o strftime.o strptime.o swab.o syslog.o tempnam.o wordexp.o mktime.o regalloc.o regclass.o regcoll.o regcomp.o regcache.o regdecomp.o regerror.o regexec.o regfatal.o reginit.o
--exec - ${AR} rc libast.a regnexec.o regsubcomp.o regsubexec.o regsub.o regrecord.o regrexec.o regstat.o dtclose.o dtdisc.o dthash.o dtlist.o dtmethod.o dtopen.o dtstrhash.o dttree.o dtview.o dtwalk.o dtnew.o dtcomp.o sfclose.o sfclrlock.o sfdisc.o sfdlen.o sfexcept.o sfgetl.o sfgetu.o sfcvt.o sfecvt.o sffcvt.o sfextern.o sffilbuf.o sfflsbuf.o sfprints.o sfgetd.o sfgetr.o sfllen.o sfmode.o sfmove.o sfnew.o sfpkrd.o sfnotify.o sfnputc.o sfopen.o sfpeek.o sfpoll.o sfpool.o sfpopen.o sfprintf.o sfputd.o sfputl.o sfputr.o sfputu.o sfrd.o sfread.o sfreserve.o sfscanf.o sfseek.o sfset.o sfsetbuf.o sfsetfd.o sfsize.o sfsk.o sfstack.o sfstrtod.o sfsync.o sfswap.o sftable.o sftell.o sftmp.o sfungetc.o sfvprintf.o sfvscanf.o sfwr.o sfwrite.o sfpurge.o sfraise.o sfwalk.o sfgetm.o sfmutex.o sfputm.o sfresize.o _sfclrerr.o _sfeof.o _sferror.o _sffileno.o _sfopen.o _sfstacked.o _sfvalue.o _sfgetc.o _sfgetl.o _sfgetl2.o _sfgetu.o _sfgetu2.o _sfdlen.o _sfllen.o _sfslen.o _sfulen.o _sfputc.o _sfputd.o _sfputl.o _sfputm.o
-+exec - ${AR} rc libast.a regnexec.o regsubcomp.o regsubexec.o regsub.o regrecord.o regrexec.o regstat.o dtclose.o dtdisc.o dthash.o dtlist.o dtmethod.o dtopen.o dtstat.o dtstrhash.o dttree.o dtuser.o dtview.o dtwalk.o dtnew.o dtcomp.o sfclose.o sfclrlock.o sfdisc.o sfdlen.o sfexcept.o sfgetl.o sfgetu.o sfcvt.o sfecvt.o sffcvt.o sfextern.o sffilbuf.o sfflsbuf.o sfprints.o sfgetd.o sfgetr.o sfllen.o sfmode.o sfmove.o sfnew.o sfpkrd.o sfnotify.o sfnputc.o sfopen.o sfpeek.o sfpoll.o sfpool.o sfpopen.o sfprintf.o sfputd.o sfputl.o sfputr.o sfputu.o sfrd.o sfread.o sfreserve.o sfscanf.o sfseek.o sfset.o sfsetbuf.o sfsetfd.o sfsize.o sfsk.o sfstack.o sfstrtod.o sfsync.o sfswap.o sftable.o sftell.o sftmp.o sfungetc.o sfvprintf.o sfvscanf.o sfwr.o sfwrite.o sfpurge.o sfraise.o sfwalk.o sfgetm.o sfmutex.o sfputm.o sfresize.o _sfclrerr.o _sfeof.o _sferror.o _sffileno.o _sfopen.o _sfstacked.o _sfvalue.o _sfgetc.o _sfgetl.o _sfgetl2.o _sfgetu.o _sfgetu2.o _sfdlen.o _sfllen.o _sfslen.o _sfulen.o _sfputc.o _sfputd.o _sfputl.o _sfputm.o
- exec - ${AR} rc libast.a _sfputu.o clearerr.o fclose.o fdopen.o feof.o ferror.o fflush.o fgetc.o fgetpos.o fgets.o fileno.o fopen.o fprintf.o fpurge.o fputc.o fputs.o fread.o freopen.o fscanf.o fseek.o fseeko.o fsetpos.o ftell.o ftello.o fwrite.o flockfile.o ftrylockfile.o funlockfile.o getc.o getchar.o getw.o pclose.o popen.o printf.o putc.o putchar.o puts.o putw.o rewind.o scanf.o setbuf.o setbuffer.o setlinebuf.o setvbuf.o snprintf.o sprintf.o sscanf.o asprintf.o vasprintf.o tmpfile.o ungetc.o vfprintf.o vfscanf.o vprintf.o vscanf.o vsnprintf.o vsprintf.o vsscanf.o _doprnt.o _doscan.o _filbuf.o _flsbuf.o _stdfun.o _stdopen.o _stdprintf.o _stdscanf.o _stdsprnt.o _stdvbuf.o _stdvsnprnt.o _stdvsprnt.o _stdvsscn.o fgetwc.o fwprintf.o putwchar.o vfwscanf.o wprintf.o fgetws.o fwscanf.o swprintf.o vswprintf.o wscanf.o fputwc.o getwc.o swscanf.o vswscanf.o fputws.o getwchar.o ungetwc.o vwprintf.o fwide.o putwc.o vfwprintf.o vwscanf.o stdio_c99.o fcloseall.o fmemopen.o getdelim.o getline.o frexp.o frexpl.o astcopy.o
- exec - ${AR} rc libast.a astconf.o astdynamic.o astlicense.o astquery.o astwinsize.o conftab.o aststatic.o getopt.o getoptl.o aso.o asolock.o asometh.o asorelax.o aso-sem.o aso-fcntl.o vmbest.o vmclear.o vmclose.o vmdcheap.o vmdebug.o vmdisc.o vmexit.o vmlast.o vmopen.o vmpool.o vmprivate.o vmprofile.o vmregion.o vmsegment.o vmset.o vmstat.o vmstrdup.o vmtrace.o vmwalk.o vmmopen.o malloc.o vmgetmem.o a64l.o acosh.o asinh.o atanh.o cbrt.o crypt.o erf.o err.o exp.o exp__E.o expm1.o gamma.o getpass.o lgamma.o log.o log1p.o log__L.o rand48.o random.o rcmd.o rint.o support.o sfstrtmp.o spawn.o
- exec - (ranlib libast.a) >/dev/null 2>&1 || true
---- src/cmd/ksh93/sh/xec.c
-+++ src/cmd/ksh93/sh/xec.c 2013-01-30 08:52:32.000000000 +0000
-@@ -2661,24 +2661,25 @@ int sh_exec(register const Shnode_t *t,
- slp = (struct slnod*)np->nvenv;
- sh_funstaks(slp->slchild,-1);
- stakdelete(slp->slptr);
-- if(shp->funload)
-- {
-- free((void*)np->nvalue.rp);
-- np->nvalue.rp = 0;
-- }
- if(rp->sdict)
- {
- Namval_t *mp, *nq;
- shp->last_root = rp->sdict;
- for(mp=(Namval_t*)dtfirst(rp->sdict);mp;mp=nq)
- {
-- nq = dtnext(rp->sdict,mp);
- _nv_unset(mp,NV_RDONLY);
-+ nq = dtnext(rp->sdict,mp);
- nv_delete(mp,rp->sdict,0);
- }
- dtclose(rp->sdict);
- rp->sdict = 0;
- }
-+ if(shp->funload)
-+ {
-+ if(!shp->fpathdict)
-+ free((void*)np->nvalue.rp);
-+ np->nvalue.rp = 0;
-+ }
- }
- if(!np->nvalue.rp)
- {
-@@ -2689,7 +2690,7 @@ int sh_exec(register const Shnode_t *t,
- {
- static Dtdisc_t _Rpdisc =
- {
-- offsetof(struct Ufunction,fname), -1, sizeof(struct Ufunction)
-+ offsetof(struct Ufunction,fname), -1, sizeof(struct Ufunction)
- };
- struct functnod *fp;
- struct comnod *ac = t->funct.functargs;
-@@ -2716,8 +2717,10 @@ int sh_exec(register const Shnode_t *t,
- rp->np = np;
- if(!shp->fpathdict)
- shp->fpathdict = dtopen(&_Rpdisc,Dtobag);
-- if(shp->fpathdict)
-+ if(shp->fpathdict) {
-+ dtuserdata(shp->fpathdict,shp,1);
- dtinsert(shp->fpathdict,rp);
-+ }
- }
- }
- else
++++++ ksh93-env.dif ++++++
--- /var/tmp/diff_new_pack.2IEHPB/_old 2013-02-17 17:04:28.000000000 +0100
+++ /var/tmp/diff_new_pack.2IEHPB/_new 2013-02-17 17:04:28.000000000 +0100
@@ -1,6 +1,17 @@
+--- src/cmd/ksh93/sh/init.c
++++ src/cmd/ksh93/sh/init.c 2013-02-15 13:29:57.129444048 +0000
+@@ -336,6 +336,8 @@ static void put_restricted(register Namv
+ int path_scoped = 0, fpath_scoped=0;
+ Pathcomp_t *pp;
+ char *name = nv_name(np);
++ if (!shp)
++ shp = sh_getinterp();
+ if(!(flags&NV_RDONLY) && sh_isoption(SH_RESTRICTED))
+ errormsg(SH_DICT,ERROR_exit(1),e_restricted,nv_name(np));
+ if(np==PATHNOD || (path_scoped=(strcmp(name,PATHNOD->nvname)==0)))
--- src/cmd/ksh93/sh/name.c
-+++ src/cmd/ksh93/sh/name.c 2012-10-16 12:12:42.846844975 +0000
-@@ -2123,7 +2123,7 @@ static void attstore(register Namval_t *
++++ src/cmd/ksh93/sh/name.c 2012-10-16 12:12:43.000000000 +0000
+@@ -2162,7 +2162,7 @@ static void attstore(register Namval_t *
if((flag&(NV_UTOL|NV_LTOU|NV_INTEGER)) == (NV_UTOL|NV_LTOU))
{
data = (void*)nv_mapchar(np,0);
++++++ ksh93-foreground-prgrp.dif ++++++
--- /var/tmp/diff_new_pack.2IEHPB/_old 2013-02-17 17:04:28.000000000 +0100
+++ /var/tmp/diff_new_pack.2IEHPB/_new 2013-02-17 17:04:28.000000000 +0100
@@ -1,6 +1,6 @@
--- src/cmd/ksh93/sh/jobs.c
-+++ src/cmd/ksh93/sh/jobs.c 2012-02-08 11:52:14.000000000 +0100
-@@ -841,7 +841,9 @@ static void job_reset(register struct pr
++++ src/cmd/ksh93/sh/jobs.c 2012-02-08 10:52:14.000000000 +0000
+@@ -845,7 +845,9 @@ static void job_reset(register struct pr
{
/* save the terminal state for current job */
#ifdef SIGTSTP
++++++ ksh93-gcc.dif ++++++
--- /var/tmp/diff_new_pack.2IEHPB/_old 2013-02-17 17:04:28.000000000 +0100
+++ /var/tmp/diff_new_pack.2IEHPB/_new 2013-02-17 17:04:28.000000000 +0100
@@ -1,5 +1,29 @@
+--- src/lib/libast/misc/optget.c
++++ src/lib/libast/misc/optget.c 2013-01-28 14:52:53.000000000 +0000
+@@ -4367,9 +4367,9 @@ optget(register char** argv, const char*
+ */
+
+ opt_info.assignment = 0;
+- num = 1;
+- w = v = 0;
+- x = 0;
++ nov = no = num = 1;
++ e = w = v = 0;
++ n = x = 0;
+ for (;;)
+ {
+ if (!opt_info.offset)
+@@ -5214,7 +5214,7 @@ optget(register char** argv, const char*
+
+ if (opt_info.num != LONG_MIN)
+ opt_info.num = (long)(opt_info.number = num);
+- if ((n = *++s == '#') || *s == ':' || w && !nov && v && (optnumber(v, &e, NiL), n = !*e))
++ if ((n = (*++s == '#')) || *s == ':' || w && !nov && v && (optnumber(v, &e, NiL), n = !*e))
+ {
+ if (w)
+ {
--- src/lib/libpp/ppsearch.c
-+++ src/lib/libpp/ppsearch.c 2012-03-14 11:40:10.953934666 +0000
++++ src/lib/libpp/ppsearch.c 2012-03-14 11:40:11.000000000 +0000
@@ -107,6 +107,14 @@ ppmultiple(register struct ppfile* fp, r
* search for file using directories in dp
*/
@@ -39,69 +63,3 @@
/*
* search for an include file
* if (flags&SEARCH_INCLUDE) then
---- src/lib/libcmd/Mamfile
-+++ src/lib/libcmd/Mamfile 2013-01-28 10:46:23.141952570 +0000
-@@ -429,6 +429,7 @@ make uniq.c
- prev cmd.h implicit
- done uniq.c
- make vmstate.c
-+prev ${PACKAGE_ast_INCLUDE}/sfdisc.h implicit
- prev ${PACKAGE_ast_INCLUDE}/vmalloc.h implicit
- prev cmd.h implicit
- done vmstate.c
---- src/lib/libast/misc/optget.c
-+++ src/lib/libast/misc/optget.c 2013-01-28 14:52:53.069452260 +0000
-@@ -2406,7 +2406,6 @@ opthelp(const char* oopts, const char* w
- int bflags = 0;
- int dflags = 0;
- int hflags = 0;
-- int sflags = 0;
- int matched = 0;
- int paragraph = 0;
- Push_t* psp = 0;
-@@ -4368,9 +4367,9 @@ optget(register char** argv, const char*
- */
-
- opt_info.assignment = 0;
-- num = 1;
-- w = v = 0;
-- x = 0;
-+ nov = no = num = 1;
-+ e = w = v = 0;
-+ n = x = 0;
- for (;;)
- {
- if (!opt_info.offset)
-@@ -4609,6 +4608,7 @@ optget(register char** argv, const char*
- opt_info.num = (long)(opt_info.number = optnumber(opt_info.arg, &e, &err));
- if (err || e == opt_info.arg)
- {
-+ opt_info.num = (long)(opt_info.number = 0);
- if (!err && (k & OPT_cache_optional))
- {
- opt_info.arg = 0;
-@@ -4636,6 +4636,7 @@ optget(register char** argv, const char*
- opt_info.arg = 0;
- opt_info.index--;
- opt_info.offset = 0;
-+ opt_info.num = (long)(opt_info.number = 0);
- return c;
- }
- if (k & OPT_cache_string)
-@@ -5213,7 +5214,7 @@ optget(register char** argv, const char*
-
- if (opt_info.num != LONG_MIN)
- opt_info.num = (long)(opt_info.number = num);
-- if ((n = *++s == '#') || *s == ':' || w && !nov && v && (optnumber(v, &e, NiL), n = !*e))
-+ if ((n = (*++s == '#')) || *s == ':' || w && !nov && v && (optnumber(v, &e, NiL), n = !*e))
- {
- if (w)
- {
-@@ -5306,6 +5307,7 @@ optget(register char** argv, const char*
- opt_info.index++;
- if (*(s + 1) == '?' && (*opt_info.arg == '-' || (pass->flags & OPT_plus) && *opt_info.arg == '+') && *(opt_info.arg + 1))
- {
-+ opt_info.num = (long)(opt_info.number = 0);
- opt_info.index--;
- opt_info.arg = 0;
- }
++++++ ksh93-heredoc.dif ++++++
--- /var/tmp/diff_new_pack.2IEHPB/_old 2013-02-17 17:04:28.000000000 +0100
+++ /var/tmp/diff_new_pack.2IEHPB/_new 2013-02-17 17:04:28.000000000 +0100
@@ -1,6 +1,6 @@
--- src/cmd/ksh93/sh/lex.c
-+++ src/cmd/ksh93/sh/lex.c 2012-01-16 16:09:37.624771155 +0100
-@@ -1874,6 +1874,8 @@ static int here_copy(Lex_t *lp,register
++++ src/cmd/ksh93/sh/lex.c 2012-01-16 15:09:38.000000000 +0000
+@@ -1893,6 +1893,8 @@ static int here_copy(Lex_t *lp,register
sfputc(sp,'\\');
}
}
++++++ ksh93-ia64.dif ++++++
--- /var/tmp/diff_new_pack.2IEHPB/_old 2013-02-17 17:04:28.000000000 +0100
+++ /var/tmp/diff_new_pack.2IEHPB/_new 2013-02-17 17:04:28.000000000 +0100
@@ -1,24 +1,5 @@
---- src/lib/libast/sfio/sfcvt.c
-+++ src/lib/libast/sfio/sfcvt.c 2008-12-17 11:56:17.000000000 +0000
-@@ -56,6 +56,16 @@ static char *Zero = "0";
- #define _lib_signbit 1
- #endif
-
-+#if defined(__ia64__) && defined(signbit)
-+# if defined __GNUC__ && __GNUC__ >= 4
-+# define __signbitl(f) __builtin_signbitl(f)
-+# else
-+# if _lib_copysignl
-+# define __signbitl(f) (int)(copysignl(1.0,(f))<0.0)
-+# endif
-+# endif
-+#endif
-+
- #if ! _lib_signbit
- #if ! _ast_fltmax_double
- static int neg0ld(Sfdouble_t f)
--- src/cmd/ksh93/features/math.sh
-+++ src/cmd/ksh93/features/math.sh 2012-01-20 14:23:37.587145847 +0000
++++ src/cmd/ksh93/features/math.sh 2012-01-20 14:23:38.000000000 +0000
@@ -130,6 +130,18 @@ echo "#include "
case $_hdr_ieeefp in
1) echo "#include " ;;
@@ -38,3 +19,22 @@
echo
: generate the intercept functions and table entries
+--- src/lib/libast/sfio/sfcvt.c
++++ src/lib/libast/sfio/sfcvt.c 2013-02-01 17:13:48.305452072 +0000
+@@ -54,6 +54,16 @@ static char *Zero = "0";
+ #endif
+ #endif
+
++#if defined(__ia64__) && defined(signbit)
++# if defined __GNUC__ && __GNUC__ >= 4
++# define __signbitl(f) __builtin_signbitl(f)
++# else
++# if _lib_copysignl
++# define __signbitl(f) (int)(copysignl(1.0,(f))<0.0)
++# endif
++# endif
++#endif
++
+ #if !_lib_signbit
+ #if !_ast_fltmax_double
+ static int neg0ld(Sfdouble_t f)
++++++ ksh93-jobs.dif ++++++
--- /var/tmp/diff_new_pack.2IEHPB/_old 2013-02-17 17:04:28.000000000 +0100
+++ /var/tmp/diff_new_pack.2IEHPB/_new 2013-02-17 17:04:28.000000000 +0100
@@ -1,5 +1,5 @@
--- src/cmd/ksh93/sh/jobs.c
-+++ src/cmd/ksh93/sh/jobs.c 2012-12-20 13:33:27.885452491 +0000
++++ src/cmd/ksh93/sh/jobs.c 2012-12-20 13:33:28.000000000 +0000
@@ -638,12 +638,14 @@ void job_init(Shell_t *shp, int lflag)
/* This should have already been done by rlogin */
register int fd;
@@ -16,27 +16,7 @@
if((fd = open(ttynam,O_RDWR)) <0)
return;
if(fd!=JOBTTY)
-@@ -660,7 +662,7 @@ void job_init(Shell_t *shp, int lflag)
- /* wait until we are in the foreground */
- while((job.mytgid=tcgetpgrp(JOBTTY)) != job.mypgid)
- {
-- if(job.mytgid == -1)
-+ if(job.mytgid <= 0)
- return;
- /* Stop this shell until continued */
- signal(SIGTTIN,SIG_DFL);
-@@ -833,7 +835,9 @@ static void job_set(register struct proc
- if((pw->p_flag&P_STOPPED) || tcgetpgrp(job.fd) == shp->gd->pid)
- tcsetpgrp(job.fd,pw->p_fgrp);
- /* if job is stopped, resume it in the background */
-- job_unstop(pw);
-+ if(!shp->forked)
-+ job_unstop(pw);
-+ shp->forked = 0;
- #endif /* SIGTSTP */
- }
-
-@@ -1104,7 +1110,7 @@ static struct process *job_bystring(regi
+@@ -1110,7 +1112,7 @@ static struct process *job_bystring(regi
int job_kill(register struct process *pw,register int sig)
{
@@ -45,7 +25,7 @@
register pid_t pid;
register int r;
const char *msg;
-@@ -1117,6 +1123,7 @@ int job_kill(register struct process *pw
+@@ -1123,6 +1125,7 @@ int job_kill(register struct process *pw
errno = ECHILD;
if(pw==0)
goto error;
@@ -53,11 +33,3 @@
pid = pw->p_pid;
#if SHOPT_COSHELL
if(pw->p_cojob)
-@@ -2043,6 +2050,7 @@ void job_fork(pid_t parent)
- job.in_critical = 0;
- break;
- default:
-+ job_chksave(parent);
- jobfork=0;
- job_unlock();
- break;
++++++ ksh93-limit-name-len.dif ++++++
--- /var/tmp/diff_new_pack.2IEHPB/_old 2013-02-17 17:04:28.000000000 +0100
+++ /var/tmp/diff_new_pack.2IEHPB/_new 2013-02-17 17:04:28.000000000 +0100
@@ -10,18 +10,18 @@
int index;
const char* conf;
--- src/cmd/ksh93/sh/init.c
-+++ src/cmd/ksh93/sh/init.c 2012-02-21 11:26:13.622577250 +0100
-@@ -169,7 +169,7 @@ struct match
++++ src/cmd/ksh93/sh/init.c 2013-02-01 15:53:58.733952540 +0000
+@@ -170,7 +170,7 @@ struct match
char *val;
char *rval[2];
- int *match;
+ regoff_t *match;
- char node[NV_MINSZ+sizeof(char*)];
+ char node[NV_MINSZ+sizeof(char*)+sizeof(Dtlink_t)];
- int first;
+ regoff_t first;
int vsize;
int nmatch;
-@@ -772,7 +772,7 @@ static int hasgetdisc(register Namfun_t
- void sh_setmatch(Shell_t *shp,const char *v, int vsize, int nmatch, int match[],int index)
+@@ -766,7 +766,7 @@ static int hasgetdisc(register Namfun_t
+ void sh_setmatch(Shell_t *shp,const char *v, int vsize, int nmatch, regoff_t match[],int index)
{
struct match *mp = &ip->SH_MATCH_init;
- Namval_t *np = nv_namptr(mp->node,0);
++++++ ksh93-limits.dif ++++++
--- /var/tmp/diff_new_pack.2IEHPB/_old 2013-02-17 17:04:28.000000000 +0100
+++ /var/tmp/diff_new_pack.2IEHPB/_new 2013-02-17 17:04:28.000000000 +0100
@@ -1,5 +1,5 @@
--- src/lib/libast/comp/conf.sh
-+++ src/lib/libast/comp/conf.sh 2010-08-17 17:45:16.129814168 +0200
++++ src/lib/libast/comp/conf.sh 2010-08-17 15:45:16.000000000 +0000
@@ -143,7 +143,7 @@ main()
return 1;
#else
@@ -9,7 +9,7 @@
return 0;
#endif
-@@ -785,7 +785,11 @@ defined() # list-file
+@@ -801,7 +801,11 @@ defined() # list-file
cat <
@@ -21,7 +21,7 @@
#include $systeminfo$headers
${tail}
#undef conf
-@@ -813,7 +817,11 @@ unsigned int conf[] = {
+@@ -829,7 +833,11 @@ unsigned int conf[] = {
cat <
@@ -33,7 +33,7 @@
#include $systeminfo$headers
${tail}
#undef conf
-@@ -854,7 +862,11 @@ done
+@@ -870,7 +878,11 @@ done
cat <
@@ -45,7 +45,7 @@
#include $systeminfo$headers
${tail}
#undef conf
-@@ -1032,7 +1044,7 @@ do eval name=\"'$'CONF_name_$key\"
+@@ -1048,7 +1060,7 @@ do eval name=\"'$'CONF_name_$key\"
case $flags in
*[Ll]*) d=
case ${conf_name} in
@@ -54,7 +54,7 @@
x=
;;
*) eval x='$'CONF_const_${conf_name}
-@@ -1092,7 +1104,11 @@ do eval name=\"'$'CONF_name_$key\"
+@@ -1108,7 +1120,11 @@ do eval name=\"'$'CONF_name_$key\"
${head}
#include
#include
@@ -66,7 +66,7 @@
#include $systeminfo$headers
${tail}
int
-@@ -1107,7 +1123,11 @@ main()
+@@ -1123,7 +1139,11 @@ main()
${head}
#include
#include
@@ -78,7 +78,7 @@
#include $systeminfo$headers
${tail}
${script}
-@@ -1254,7 +1274,11 @@ printf("#endif\n");
+@@ -1270,7 +1290,11 @@ printf("#endif\n");
*) cat > $tmp.c <
@@ -90,7 +90,7 @@
#include $systeminfo$headers
${tail}
${script}
-@@ -1333,7 +1357,7 @@ ${script}
+@@ -1349,7 +1373,7 @@ ${script}
*[lLuU])
case $LL_suffix in
??) case $conf_limit in
@@ -99,7 +99,7 @@
conf_limit=${conf_limit}L
;;
esac
-@@ -1368,7 +1392,7 @@ ${script}
+@@ -1384,7 +1408,7 @@ ${script}
*[lLuU])
case $LL_suffix in
??) case $conf_minmax in
@@ -108,7 +108,7 @@
conf_minmax=${conf_minmax}L
;;
esac
-@@ -1545,7 +1569,11 @@ esac
+@@ -1561,7 +1585,11 @@ esac
cat <
++++++ ksh93-pathtemp.dif ++++++
--- /var/tmp/diff_new_pack.2IEHPB/_old 2013-02-17 17:04:28.000000000 +0100
+++ /var/tmp/diff_new_pack.2IEHPB/_new 2013-02-17 17:04:28.000000000 +0100
@@ -1,99 +1,3 @@
---- src/cmd/ksh93/bltins/trap.c
-+++ src/cmd/ksh93/bltins/trap.c 2012-10-23 15:45:37.000000000 +0000
-@@ -102,6 +102,7 @@ int b_trap(int argc,char *argv[],Shbltin
- /* internal traps */
- if(sig&SH_TRAP)
- {
-+ char **trap = (shp->st.otrap?shp->st.otrap:shp->st.trap);
- sig &= ~SH_TRAP;
- if(sig>SH_DEBUGTRAP)
- {
-@@ -110,10 +111,11 @@ int b_trap(int argc,char *argv[],Shbltin
- }
- if(pflag)
- {
-- if(arg=shp->st.trap[sig])
-+ if(arg=trap[sig])
- sfputr(sfstdout,sh_fmtq(arg),'\n');
- continue;
- }
-+ shp->st.otrap = 0;
- if(shp->st.trap[sig])
- free(shp->st.trap[sig]);
- shp->st.trap[sig] = 0;
-@@ -402,7 +404,7 @@ static void sig_list(register Shell_t *s
- }
- for(sig=SH_DEBUGTRAP; sig>=0; sig--)
- {
-- if(!(trap=shp->st.trap[sig]))
-+ if(!(trap=shp->st.otrap?shp->st.otrap[sig]:shp->st.trap[sig]))
- continue;
- sfprintf(sfstdout,trapfmt,sh_fmtq(trap),traps[sig]);
- }
---- src/cmd/ksh93/include/defs.h
-+++ src/cmd/ksh93/include/defs.h 2012-10-23 15:42:45.000000000 +0000
-@@ -90,6 +90,7 @@ struct sh_scoped
- int ioset;
- unsigned short trapmax;
- char *trap[SH_DEBUGTRAP+1];
-+ char **otrap;
- char **trapcom;
- char **otrapcom;
- void *timetrap;
---- src/cmd/ksh93/include/shnodes.h
-+++ src/cmd/ksh93/include/shnodes.h 2012-10-23 14:23:06.000000000 +0000
-@@ -211,7 +211,7 @@ union Shnode_u
-
- extern void sh_freeup(Shell_t*);
- extern void sh_funstaks(struct slnod*,int);
--extern Sfio_t *sh_subshell(Shell_t*,Shnode_t*, int, int);
-+extern Sfio_t *sh_subshell(Shell_t*,Shnode_t*, volatile int, int);
- #if defined(__EXPORT__) && defined(_BLD_DLL) && defined(_BLD_shell)
- __EXPORT__
- #endif
---- src/cmd/ksh93/sh/subshell.c
-+++ src/cmd/ksh93/sh/subshell.c 2012-10-25 10:09:34.574345265 +0000
-@@ -455,7 +455,7 @@ void sh_subjobcheck(pid_t pid)
- * output of command <t>. Otherwise, NULL will be returned.
- */
-
--Sfio_t *sh_subshell(Shell_t *shp,Shnode_t *t, int flags, int comsub)
-+Sfio_t *sh_subshell(Shell_t *shp,Shnode_t *t, volatile int flags, int comsub)
- {
- struct subshell sub_data;
- register struct subshell *sp = &sub_data;
-@@ -528,6 +528,7 @@ Sfio_t *sh_subshell(Shell_t *shp,Shnode_
- sh_stats(STAT_SUBSHELL);
- /* save trap table */
- shp->st.otrapcom = 0;
-+ shp->st.otrap = savst.trap;
- if((nsig=shp->st.trapmax*sizeof(char*))>0 || shp->st.trapcom[0])
- {
- nsig += sizeof(char*);
-@@ -602,6 +603,7 @@ Sfio_t *sh_subshell(Shell_t *shp,Shnode_
- }
- if(!shp->savesig)
- shp->savesig = -1;
-+ nv_restore(sp);
- if(comsub)
- {
- /* re-enable job control */
-@@ -666,7 +668,6 @@ Sfio_t *sh_subshell(Shell_t *shp,Shnode_
- {
- int n;
- shp->options = sp->options;
-- nv_restore(sp);
- if(sp->salias)
- {
- shp->alias_tree = dtview(sp->salias,0);
-@@ -685,6 +686,7 @@ Sfio_t *sh_subshell(Shell_t *shp,Shnode_
- memset(&shp->st.trapcom[savst.trapmax],0,n*sizeof(char*));
- shp->st = savst;
- shp->curenv = savecurenv;
-+ shp->st.otrap = 0;
- if(nsig)
- {
- memcpy((char*)&shp->st.trapcom[0],savsig,nsig);
--- src/lib/libast/path/pathtemp.c
+++ src/lib/libast/path/pathtemp.c 2012-10-25 10:35:14.510345073 +0000
@@ -73,15 +73,49 @@
++++++ ksh93-profile.dif ++++++
--- /var/tmp/diff_new_pack.2IEHPB/_old 2013-02-17 17:04:28.000000000 +0100
+++ /var/tmp/diff_new_pack.2IEHPB/_new 2013-02-17 17:04:28.000000000 +0100
@@ -1,6 +1,6 @@
--- src/cmd/ksh93/sh/main.c
-+++ src/cmd/ksh93/sh/main.c 2010-08-17 17:35:18.099125448 +0200
-@@ -219,14 +219,38 @@ int sh_main(int ac, char *av[], Shinit_f
++++ src/cmd/ksh93/sh/main.c 2010-08-17 15:35:18.000000000 +0000
+@@ -200,14 +200,38 @@ int sh_main(int ac, char *av[], Shinit_f
{
/* system profile */
sh_source(shp, iop, e_sysprofile);
@@ -41,7 +41,7 @@
if(!sh_isoption(SH_NOEXEC))
{
if(!sh_isoption(SH_NOUSRPROFILE) && !sh_isoption(SH_PRIVILEGED) && sh_isoption(SH_RC))
-@@ -234,9 +258,6 @@ int sh_main(int ac, char *av[], Shinit_f
+@@ -215,9 +239,6 @@ int sh_main(int ac, char *av[], Shinit_f
#if SHOPT_BASH
if(sh_isoption(SH_BASH) && !sh_isoption(SH_POSIX))
{
@@ -51,7 +51,7 @@
sh_source(shp, iop, shp->gd->rcfile ? shp->gd->rcfile : sh_mactry(shp,(char*)e_bash_rc));
}
else
-@@ -244,10 +265,6 @@ int sh_main(int ac, char *av[], Shinit_f
+@@ -225,10 +246,6 @@ int sh_main(int ac, char *av[], Shinit_f
{
if(name = sh_mactry(shp,nv_getval(ENVNOD)))
name = *name ? strdup(name) : (char*)0;
++++++ ksh93-reg.dif ++++++
--- /var/tmp/diff_new_pack.2IEHPB/_old 2013-02-17 17:04:28.000000000 +0100
+++ /var/tmp/diff_new_pack.2IEHPB/_new 2013-02-17 17:04:28.000000000 +0100
@@ -1,15 +1,6 @@
--- src/cmd/ksh93/edit/edit.c
-+++ src/cmd/ksh93/edit/edit.c 2012-01-16 16:13:59.743144345 +0100
-@@ -1670,7 +1670,7 @@ int ed_histgen(Edit_t *ep,const char *pa
- History_t *hp;
- off_t offset;
- int ac=0,l,m,n,index1,index2;
-- char *cp, **argv, **av, **ar;
-+ char *cp, **argv=0, **av, **ar;
- if(!(hp=ep->sh->gd->hist_ptr))
- return(0);
- if(*pattern=='#')
-@@ -1748,8 +1748,13 @@ int ed_histgen(Edit_t *ep,const char *pa
++++ src/cmd/ksh93/edit/edit.c 2013-02-01 17:18:31.405454238 +0000
+@@ -1769,8 +1769,13 @@ int ed_histgen(Edit_t *ep,const char *pa
mplast->next = mp;
mplast->next = 0;
}
++++++ ksh93-s390.dif ++++++
--- /var/tmp/diff_new_pack.2IEHPB/_old 2013-02-17 17:04:28.000000000 +0100
+++ /var/tmp/diff_new_pack.2IEHPB/_new 2013-02-17 17:04:28.000000000 +0100
@@ -1,11 +1,11 @@
--- src/cmd/ksh93/bltins/read.c
-+++ src/cmd/ksh93/bltins/read.c 2008-12-17 14:01:01.000000000 +0000
-@@ -280,6 +280,19 @@ int sh_readline(register Shell_t *shp,ch
- delim = ((unsigned)flags)>>D_FLAG;
- if((shp->fdstatus[fd]&IOTTY) && !keytrap)
- tty_raw(fd,1);
++++ src/cmd/ksh93/bltins/read.c 2013-02-01 15:29:39.393452098 +0000
+@@ -288,6 +288,19 @@ int sh_readline(register Shell_t *shp,ch
+ ep->e_nttyparm.c_lflag |= ISIG;
+ tty_set(fd,TCSADRAIN,&ep->e_nttyparm);
+ }
+#if defined(__linux__)
-+ if ((flags&N_FLAG) && (shp->fdstatus[fd]&(IOTTY|IONOSEEK))==0)
++ else if ((shp->fdstatus[fd]&(IOTTY|IONOSEEK))==0)
+ {
+ struct stat st;
+ if ((fstat(fd, &st) == 0) && S_ISFIFO(st.st_mode))
++++++ ksh93-shift_ijs.dif ++++++
--- /var/tmp/diff_new_pack.2IEHPB/_old 2013-02-17 17:04:28.000000000 +0100
+++ /var/tmp/diff_new_pack.2IEHPB/_new 2013-02-17 17:04:28.000000000 +0100
@@ -51,7 +51,7 @@
# define gencpy(a,b) ed_gencpy(a,b)
# define genncpy(a,b,n) ed_genncpy(a,b,n)
# define genlen(str) ed_genlen(str)
-@@ -1559,11 +1563,19 @@ static void setcursor(register Emacs_t *
+@@ -1563,11 +1567,19 @@ static void setcursor(register Emacs_t *
#if SHOPT_MULTIBYTE
static int print(register int c)
{
@@ -107,7 +107,7 @@
static int _ismetach(int);
--- src/cmd/ksh93/sh/io.c
+++ src/cmd/ksh93/sh/io.c 2010-06-28 14:09:09.000000000 +0000
-@@ -1514,6 +1514,7 @@ static int io_heredoc(Shell_t *shp,regis
+@@ -1536,6 +1536,7 @@ static int io_heredoc(Shell_t *shp,regis
if(traceon)
sfprintf(sfstderr,"< %s\n",name);
sfputr(outfile,name,'\n');
@@ -116,8 +116,81 @@
else
{
--- src/cmd/ksh93/sh/macro.c
-+++ src/cmd/ksh93/sh/macro.c 2011-05-27 13:08:05.000000000 +0200
-@@ -2341,13 +2341,13 @@ static void mac_copy(register Mac_t *mp,
++++ src/cmd/ksh93/sh/macro.c 2013-02-07 13:26:07.897952986 +0000
+@@ -54,6 +54,7 @@
+ #if SHOPT_MULTIBYTE
+ # undef isascii
+ # define isacii(c) ((c)<=UCHAR_MAX)
++# include
+ #else
+ # define mbchar(p) (*(unsigned char*)p++)
+ #endif /* SHOPT_MULTIBYTE */
+@@ -2026,6 +2027,10 @@ static void comsubst(Mac_t *mp,register
+ struct _mac_ savemac;
+ int savtop = stktell(stkp);
+ char lastc=0, *savptr = stkfreeze(stkp,0);
++#if SHOPT_MULTIBYTE
++ const Lc_t *lc=lcinfo(LC_CTYPE)->lc;
++ wchar_t lastw=0;
++#endif /* SHOPT_MULTIBYTE */
+ int was_history = sh_isstate(SH_HISTORY);
+ int was_verbose = sh_isstate(SH_VERBOSE);
+ int was_interactive = sh_isstate(SH_INTERACTIVE);
+@@ -2209,6 +2214,17 @@ static void comsubst(Mac_t *mp,register
+ }
+ else if(lastc)
+ {
++#if SHOPT_MULTIBYTE
++ if(lastw)
++ {
++ int n;
++ char mb[8];
++ n = mbconv(mb, lastw);
++ mac_copy(mp,mb,n);
++ lastw = 0;
++ }
++ else
++#endif /* SHOPT_MULTIBYTE */
+ mac_copy(mp,&lastc,1);
+ lastc = 0;
+ }
+@@ -2220,6 +2236,17 @@ static void comsubst(Mac_t *mp,register
+ ssize_t len = 1;
+
+ /* can't write past buffer so save last character */
++#if SHOPT_MULTIBYTE
++ if ((len = mbsize(str))>1 && !(lc->flags & LC_utf8))
++ {
++ len = mb2wc(lastw,str,len);
++ if (len < 0)
++ {
++ lastw = 0;
++ len = 1;
++ }
++ }
++#endif /* SHOPT_MULTIBYTE */
+ c -= len;
+ lastc = str[c];
+ str[c] = 0;
+@@ -2240,6 +2267,17 @@ static void comsubst(Mac_t *mp,register
+ }
+ if(lastc)
+ {
++#if SHOPT_MULTIBYTE
++ if(lastw)
++ {
++ int n;
++ char mb[8];
++ n = mbconv(mb, lastw);
++ mac_copy(mp,mb,n);
++ lastw = 0;
++ }
++ else
++#endif /* SHOPT_MULTIBYTE */
+ mac_copy(mp,&lastc,1);
+ lastc = 0;
+ }
+@@ -2340,13 +2378,13 @@ static void mac_copy(register Mac_t *mp,
if(mp->pattern)
{
char *sp = "&|()";
@@ -135,7 +208,7 @@
state[c] = S_PAT;
--- src/cmd/ksh93/sh/string.c
+++ src/cmd/ksh93/sh/string.c 2007-12-20 17:51:07.000000000 +0000
-@@ -41,7 +41,7 @@
+@@ -37,7 +37,7 @@
#endif
#if !_lib_iswprint && !defined(iswprint)
@@ -144,7 +217,7 @@
#endif
-@@ -249,7 +249,7 @@ void sh_trim(register char *sp)
+@@ -245,7 +245,7 @@ void sh_trim(register char *sp)
if(sp)
{
dp = sp;
@@ -154,7 +227,7 @@
#if SHOPT_MULTIBYTE
int len;
--- src/cmd/ksh93/tests/sjis.sh
-+++ src/cmd/ksh93/tests/sjis.sh 2011-05-20 17:11:28.623926368 +0200
++++ src/cmd/ksh93/tests/sjis.sh 2011-05-20 15:11:29.000000000 +0000
@@ -0,0 +1,67 @@
+########################################################################
+# #
@@ -245,7 +318,7 @@
#define STUB 1
--- src/lib/libast/features/wchar
+++ src/lib/libast/features/wchar 2007-12-20 17:50:28.000000000 +0000
-@@ -7,7 +7,8 @@ cat{
+@@ -8,7 +8,8 @@ cat{
#define _AST_WCHAR_H 1
}end
@@ -255,7 +328,7 @@
lib towlower,towupper stdlib.h stdio.h wchar.h
typ mbstate_t stdlib.h stdio.h wchar.h
nxt wchar
-@@ -64,6 +65,12 @@ cat <
--- src/lib/libcmd/Mamfile
-+++ src/lib/libcmd/Mamfile 2012-01-16 15:02:08.387145418 +0000
-@@ -508,7 +508,7 @@ make cat.o
++++ src/lib/libcmd/Mamfile 2013-02-05 15:11:03.153953100 +0000
+@@ -509,7 +509,7 @@ make cat.o
prev cat.c
meta cat.o %.c>%.o cat.c cat
prev cat.c
--exec - ${CC} ${mam_cc_FLAGS} ${CCFLAGS} -I. -I${PACKAGE_ast_INCLUDE} -DERROR_CATALOG=\""libcmd"\" -DUSAGE_LICENSE=\""[-author?Glenn Fowler ][-author?David Korn ][-copyright?Copyright (c) 1992-2012 AT&T Intellectual Property][-license?http://www.eclipse.org/org/documents/epl-v10.html][--catalog?libcmd]"\" -D_BLD_cmd -D_PACKAGE_ast -D_BLD_DEBUG -c cat.c
-+exec - ${CC} ${mam_cc_FLAGS} ${CCFLAGS} -I. -I${PACKAGE_ast_INCLUDE} -DERROR_CATALOG=\""libcmd"\" -DUSAGE_LICENSE=\""[-author?Glenn Fowler ][-author?David Korn ][-copyright?Copyright (c) 1992-2012 AT&T Intellectual Property][-license?http://www.eclipse.org/org/documents/epl-v10.html][--catalog?libcmd]"\" -D_BLD_cmd -D_PACKAGE_ast -D_BLD_DEBUG -DSHOPT_MULTIBYTE -c cat.c
+-exec - ${CC} ${mam_cc_FLAGS} ${CCFLAGS} -I. -I${PACKAGE_ast_INCLUDE} -DERROR_CATALOG=\""libcmd"\" -DUSAGE_LICENSE=\""[-author?Glenn Fowler ][-author?David Korn ][-copyright?Copyright (c) 1992-2012 AT&T Intellectual Property][-license?http://www.eclipse.org/org/documents/epl-v10.html][--catalog?libcmd]"\" -D_BLD_cmd -D_PACKAGE_ast -c cat.c
++exec - ${CC} ${mam_cc_FLAGS} ${CCFLAGS} -I. -I${PACKAGE_ast_INCLUDE} -DERROR_CATALOG=\""libcmd"\" -DUSAGE_LICENSE=\""[-author?Glenn Fowler ][-author?David Korn ][-copyright?Copyright (c) 1992-2012 AT&T Intellectual Property][-license?http://www.eclipse.org/org/documents/epl-v10.html][--catalog?libcmd]"\" -D_BLD_cmd -D_PACKAGE_ast -DSHOPT_MULTIBYTE -c cat.c
done cat.o generated
make chgrp.o
prev chgrp.c
++++++ ksh93-signals.dif ++++++
--- /var/tmp/diff_new_pack.2IEHPB/_old 2013-02-17 17:04:28.000000000 +0100
+++ /var/tmp/diff_new_pack.2IEHPB/_new 2013-02-17 17:04:28.000000000 +0100
@@ -1,5 +1,5 @@
--- src/cmd/ksh93/data/signals.c
-+++ src/cmd/ksh93/data/signals.c 2012-02-06 11:16:53.970131637 +0100
++++ src/cmd/ksh93/data/signals.c 2012-02-06 10:16:54.000000000 +0000
@@ -18,6 +18,9 @@
* *
***********************************************************************/
@@ -11,8 +11,8 @@
#if defined(SIGCLD) && !defined(SIGCHLD)
# define SIGCHLD SIGCLD
--- src/cmd/ksh93/sh/xec.c
-+++ src/cmd/ksh93/sh/xec.c 2007-12-21 13:28:04.000000000 +0100
-@@ -2894,6 +2894,7 @@ static pid_t sh_ntfork(Shell_t *shp,cons
++++ src/cmd/ksh93/sh/xec.c 2007-12-21 12:28:04.000000000 +0000
+@@ -3834,6 +3834,7 @@ static pid_t sh_ntfork(Shell_t *shp,cons
{
signal(SIGTTIN,SIG_DFL);
signal(SIGTTOU,SIG_DFL);
@@ -20,7 +20,7 @@
}
#endif /* SIGTSTP */
#ifdef JOBS
-@@ -2931,6 +2932,9 @@ static pid_t sh_ntfork(Shell_t *shp,cons
+@@ -3871,6 +3872,9 @@ static pid_t sh_ntfork(Shell_t *shp,cons
{
signal(SIGTTIN,SIG_IGN);
signal(SIGTTOU,SIG_IGN);
@@ -30,7 +30,7 @@
}
#endif /* SIGTSTP */
if(spawnpid>0)
-@@ -3011,6 +3015,7 @@ static pid_t sh_ntfork(Shell_t *shp,cons
+@@ -3951,6 +3955,7 @@ static pid_t sh_ntfork(Shell_t *shp,cons
{
signal(SIGTTIN,SIG_DFL);
signal(SIGTTOU,SIG_DFL);
@@ -38,7 +38,7 @@
jobwasset++;
}
#endif /* SIGTSTP */
-@@ -3069,6 +3074,9 @@ static pid_t sh_ntfork(Shell_t *shp,cons
+@@ -4013,6 +4018,9 @@ static pid_t sh_ntfork(Shell_t *shp,cons
{
signal(SIGTTIN,SIG_IGN);
signal(SIGTTOU,SIG_IGN);
++++++ ksh93-suid_exec.dif ++++++
--- /var/tmp/diff_new_pack.2IEHPB/_old 2013-02-17 17:04:28.000000000 +0100
+++ /var/tmp/diff_new_pack.2IEHPB/_new 2013-02-17 17:04:28.000000000 +0100
@@ -1,6 +1,6 @@
--- src/cmd/ksh93/data/msg.c
-+++ src/cmd/ksh93/data/msg.c 2007-04-02 14:59:18.748709295 +0000
-@@ -180,7 +180,11 @@
++++ src/cmd/ksh93/data/msg.c 2007-04-02 14:59:19.000000000 +0000
+@@ -205,7 +205,11 @@ const char e_bash_profile[] = "$HOME/.ba
const char e_crondir[] = "/var/spool/cron";
const char e_prohibited[] = "login setuid/setgid shells prohibited";
#if SHOPT_SUID_EXEC
@@ -13,7 +13,7 @@
const char hist_fname[] = "/.sh_history";
const char e_dot[] = ".";
--- src/cmd/ksh93/sh/suid_exec.c
-+++ src/cmd/ksh93/sh/suid_exec.c 2012-02-03 08:36:40.097933528 +0000
++++ src/cmd/ksh93/sh/suid_exec.c 2012-02-03 08:36:40.000000000 +0000
@@ -62,10 +62,24 @@
#define FDVERIFY 12 /* used to validate /tmp process */
#undef BLKSIZE
++++++ ksh93-test.dif ++++++
--- /var/tmp/diff_new_pack.2IEHPB/_old 2013-02-17 17:04:28.000000000 +0100
+++ /var/tmp/diff_new_pack.2IEHPB/_new 2013-02-17 17:04:28.000000000 +0100
@@ -1,6 +1,6 @@
--- src/cmd/ksh93/bltins/test.c
-+++ src/cmd/ksh93/bltins/test.c 2011-05-20 13:45:24.547925980 +0000
-@@ -46,12 +46,12 @@
++++ src/cmd/ksh93/bltins/test.c 2011-05-20 13:45:25.000000000 +0000
+@@ -47,12 +47,12 @@
#ifdef S_ISSOCK
# if _pipe_socketpair
# if _socketpair_shutdown_mode
@@ -16,8 +16,8 @@
# endif
# define isasock(f,p) (test_stat(f,p)>=0&&S_ISSOCK((p)->st_mode))
#else
-@@ -86,7 +86,7 @@ static int test_strmatch(Shell_t *shp,co
- int match[2*(MATCH_MAX+1)],n;
+@@ -87,7 +87,7 @@ static int test_strmatch(Shell_t *shp,co
+ regoff_t match[2*(MATCH_MAX+1)],n;
register int c, m=0;
register const char *cp=pat;
- while(c = *cp++)
@@ -25,7 +25,7 @@
{
if(c=='(')
m++;
-@@ -460,7 +460,7 @@ int test_unop(Shell_t *shp,register int
+@@ -463,7 +463,7 @@ int test_unop(Shell_t *shp,register int
int test_binop(Shell_t *shp,register int op,const char *left,const char *right)
{
++++++ ksh93-uname.dif ++++++
--- /var/tmp/diff_new_pack.2IEHPB/_old 2013-02-17 17:04:28.000000000 +0100
+++ /var/tmp/diff_new_pack.2IEHPB/_new 2013-02-17 17:04:28.000000000 +0100
@@ -1,6 +1,6 @@
--- src/lib/libcmd/date.c
+++ src/lib/libcmd/date.c 2007-03-30 10:51:14.000000000 +0000
-@@ -217,10 +217,19 @@ settime(void* context, const char* cmd,
+@@ -226,10 +226,19 @@ settime(Shbltin_t* context, const char*
if (!adjust && !network)
return tmxsettime(now);
argv = args;
@@ -20,7 +20,7 @@
if (streq(astconf("UNIVERSE", NiL, NiL), "att"))
{
tmxfmt(buf, sizeof(buf), "%m%d%H" "%M%Y.%S", now);
-@@ -235,6 +244,7 @@ settime(void* context, const char* cmd,
+@@ -244,6 +253,7 @@ settime(Shbltin_t* context, const char*
if (tm_info.flags & TM_UTC)
*argv++ = "-u";
}
@@ -52,7 +52,7 @@
#endif
#if defined(__STDPP__directive) && defined(__STDPP__hide)
-@@ -269,6 +272,9 @@ b_uname(int argc, char** argv, void* con
+@@ -269,6 +272,9 @@ b_uname(int argc, char** argv, Shbltin_t
{
case 'a':
flags |= OPT_all|((1L<st.var_local = shp->var_tree;
if(!fun)
{
++++++ ksh93-vi.dif ++++++
--- /var/tmp/diff_new_pack.2IEHPB/_old 2013-02-17 17:04:28.000000000 +0100
+++ /var/tmp/diff_new_pack.2IEHPB/_new 2013-02-17 17:04:28.000000000 +0100
@@ -1,5 +1,5 @@
--- src/cmd/ksh93/edit/vi.c
-+++ src/cmd/ksh93/edit/vi.c 2007-03-28 18:41:47.032501418 +0200
++++ src/cmd/ksh93/edit/vi.c 2007-03-28 16:41:47.000000000 +0000
@@ -401,6 +401,8 @@ int ed_viread(void *context, int fd, reg
if(!yankbuf)
@@ -18,7 +18,7 @@
*yankbuf = 0;
}
-@@ -1075,7 +1079,7 @@ static void cdelete(Vi_t *vp,register in
+@@ -1137,7 +1141,7 @@ static void cdelete(Vi_t *vp,register in
/*** save characters to be deleted ***/
@@ -27,7 +27,7 @@
{
i = cp[nchars];
cp[nchars] = 0;
-@@ -2047,6 +2051,9 @@ static void save_last(register Vi_t* vp)
+@@ -2169,6 +2173,9 @@ static void save_last(register Vi_t* vp)
{
register int i;
@@ -37,7 +37,7 @@
if( (i = cur_virt - first_virt + 1) > 0 )
{
/*** save last thing user typed ***/
-@@ -2292,6 +2299,11 @@ static int textmod(register Vi_t *vp,reg
+@@ -2417,6 +2424,11 @@ static int textmod(register Vi_t *vp,reg
p = yankbuf;
}
@@ -49,7 +49,7 @@
addin:
switch( c )
{
-@@ -2564,6 +2576,8 @@ yankeol:
+@@ -2687,6 +2699,8 @@ yankeol:
vp->lastmotion = c;
if( c == 'y' )
{
++++++ ksh93-vm.dif ++++++
--- /var/tmp/diff_new_pack.2IEHPB/_old 2013-02-17 17:04:28.000000000 +0100
+++ /var/tmp/diff_new_pack.2IEHPB/_new 2013-02-17 17:04:28.000000000 +0100
@@ -1,6 +1,6 @@
--- src/lib/libast/vmalloc/vmhdr.h
-+++ src/lib/libast/vmalloc/vmhdr.h 2012-01-19 09:45:13.651645599 +0000
-@@ -149,6 +149,9 @@ extern void _vmmessage _ARG_((const cha
++++ src/lib/libast/vmalloc/vmhdr.h 2012-01-19 09:45:14.000000000 +0000
+@@ -152,6 +152,9 @@ extern void _vmmessage _ARG_((const cha
#endif /*DEBUG*/
#define VMPAGESIZE 8192
@@ -11,8 +11,8 @@
#define GETPAGESIZE(x) ((x) ? (x) : ((x)=getpagesize()) )
#else
--- src/lib/libast/vmalloc/vmmopen.c
-+++ src/lib/libast/vmalloc/vmmopen.c 2012-01-20 11:13:11.743644776 +0000
-@@ -58,8 +58,10 @@ void _STUB_vmmapopen(){}
++++ src/lib/libast/vmalloc/vmmopen.c 2012-01-20 11:13:12.000000000 +0000
+@@ -63,8 +63,10 @@ void _STUB_vmmapopen(){}
/* magic word signaling file/segment is ready */
#define MM_MAGIC ((unsigned int)(('P'<<24) | ('&'<<16) | ('N'<<8) | ('8')) )
@@ -23,7 +23,7 @@
/* macros to get the data section and size */
#define MMHEAD(file) ROUND(sizeof(Mmvm_t)+strlen(file), ALIGN)
-@@ -162,10 +164,18 @@ static int mminit(Mmdisc_t* mmdc)
+@@ -166,10 +168,18 @@ static int mminit(Mmdisc_t* mmdc)
if(mmdc->mmvm) /* already done this */
return 0;
++++++ ksh93-zerofill.dif ++++++
--- /var/tmp/diff_new_pack.2IEHPB/_old 2013-02-17 17:04:28.000000000 +0100
+++ /var/tmp/diff_new_pack.2IEHPB/_new 2013-02-17 17:04:28.000000000 +0100
@@ -1,6 +1,6 @@
--- src/cmd/ksh93/bltins/typeset.c
-+++ src/cmd/ksh93/bltins/typeset.c 2012-10-19 16:56:48.561818559 +0200
-@@ -746,6 +746,7 @@
++++ src/cmd/ksh93/bltins/typeset.c 2012-10-19 14:56:49.000000000 +0000
+@@ -756,6 +756,7 @@ static int setall(char **argv,regist
}
if (tp->aflag == '-')
{
@@ -8,7 +8,7 @@
if((flag&NV_EXPORT) && (strchr(name,'.') || nv_isvtree(np)))
errormsg(SH_DICT,ERROR_exit(1),e_badexport,name);
#if SHOPT_BSH
-@@ -764,6 +765,9 @@
+@@ -774,6 +775,9 @@ static int setall(char **argv,regist
else if(!(flag&NV_LJUST))
newflag &= ~NV_LJUST;
}
@@ -18,12 +18,3 @@
}
else
{
-@@ -1222,7 +1226,7 @@
- if(shp->subshell)
- np=sh_assignok(np,0);
- }
-- if(!nv_isnull(np))
-+ if(!nv_isnull(np) || nv_size(np) || nv_isattr(np,~(NV_MINIMAL|NV_NOFREE)))
- _nv_unset(np,0);
- if(troot==shp->var_tree && shp->st.real_fun && (dp=shp->var_tree->walk) && dp==shp->st.real_fun->sdict)
- nv_delete(np,dp,NV_NOFREE);
++++++ ksh93.dif ++++++
--- /var/tmp/diff_new_pack.2IEHPB/_old 2013-02-17 17:04:28.000000000 +0100
+++ /var/tmp/diff_new_pack.2IEHPB/_new 2013-02-17 17:04:28.000000000 +0100
@@ -1,6 +1,6 @@
--- src/cmd/ksh93/bltins/print.c
+++ src/cmd/ksh93/bltins/print.c 2008-05-05 11:20:21.000000000 +0000
-@@ -86,7 +86,11 @@ static char* nullarg[] = { 0, 0 };
+@@ -105,7 +105,11 @@ static char* nullarg[] = { 0, 0 };
{
static char bsd_univ;
struct print prdata;
@@ -13,7 +13,7 @@
prdata.raw = prdata.echon = 0;
prdata.sh = context->shp;
NOT_USED(argc);
-@@ -99,7 +103,52 @@ static char* nullarg[] = { 0, 0 };
+@@ -118,7 +122,52 @@ static char* nullarg[] = { 0, 0 };
prdata.sh->universe = 1;
}
if(!bsd_univ)
@@ -68,7 +68,7 @@
while(argv[1] && *argv[1]=='-')
--- src/cmd/ksh93/data/msg.c
+++ src/cmd/ksh93/data/msg.c 2007-12-20 18:01:26.000000000 +0000
-@@ -199,7 +199,7 @@ const char e_bash_login[] = "$HOME/.bash
+@@ -202,7 +202,7 @@ const char e_bash_login[] = "$HOME/.bash
const char e_bash_logout[] = "$HOME/.bash_logout";
const char e_bash_profile[] = "$HOME/.bash_profile";
#endif
@@ -79,7 +79,7 @@
const char e_suidexec[] = "/etc/suid_exec";
--- src/cmd/ksh93/data/variables.c
+++ src/cmd/ksh93/data/variables.c 2008-09-18 17:22:24.000000000 +0000
-@@ -68,7 +68,7 @@ const struct shtable2 shtab_variables[]
+@@ -69,7 +69,7 @@ const struct shtable2 shtab_variables[]
"OPTARG", 0, (char*)0,
"OPTIND", NV_NOFREE|NV_INTEGER, (char*)0,
"PS4", 0, (char*)0,
@@ -112,7 +112,7 @@
except possibly the last,
--- src/cmd/ksh93/sh/main.c
+++ src/cmd/ksh93/sh/main.c 2007-12-20 18:01:26.000000000 +0000
-@@ -130,9 +130,9 @@ int sh_source(Shell_t *shp, Sfio_t *iop,
+@@ -113,9 +113,9 @@ int sh_source(Shell_t *shp, Sfio_t *iop,
}
#ifdef S_ISSOCK
@@ -124,7 +124,7 @@
#endif
int sh_main(int ac, char *av[], Shinit_f userinit)
-@@ -199,7 +199,7 @@ int sh_main(int ac, char *av[], Shinit_f
+@@ -179,7 +179,7 @@ int sh_main(int ac, char *av[], Shinit_f
}
if(!sh_isoption(SH_RC) && (sh_isoption(SH_BASH) && !sh_isoption(SH_POSIX)
#if SHOPT_REMOTE
@@ -134,8 +134,8 @@
))
sh_onoption(SH_RC);
--- src/cmd/ksh93/sh/xec.c
-+++ src/cmd/ksh93/sh/xec.c 2012-01-26 12:07:46.463645375 +0000
-@@ -922,7 +922,7 @@ int sh_exec(register const Shnode_t *t,
++++ src/cmd/ksh93/sh/xec.c 2012-01-26 12:07:46.000000000 +0000
+@@ -1015,7 +1015,7 @@ int sh_exec(register const Shnode_t *t,
{
case TCOM:
{
@@ -144,7 +144,7 @@
char *trap;
Namval_t *np, *nq, *last_table;
struct ionod *io;
-@@ -1027,7 +1027,7 @@ int sh_exec(register const Shnode_t *t,
+@@ -1131,7 +1131,7 @@ int sh_exec(register const Shnode_t *t,
comn = com[argn-1];
}
io = t->tre.treio;
@@ -165,7 +165,7 @@
unset var
typeset -b var
--- src/cmd/ksh93/tests/bracket.sh
-+++ src/cmd/ksh93/tests/bracket.sh 2012-02-09 14:11:32.365933854 +0000
++++ src/cmd/ksh93/tests/bracket.sh 2012-02-09 14:11:32.000000000 +0000
@@ -221,6 +221,10 @@ done
[[ abcdcdabcde == {5}(ab|cd)e ]] || err_exit 'abcdcdabcd == {5}(ab|cd)e'
) || err_exit 'errors with {..}(...) patterns'
@@ -187,7 +187,7 @@
[[ -L "$file"/ ]] && err_exit '-L with file/ not working'
--- src/cmd/ksh93/tests/builtins.sh
+++ src/cmd/ksh93/tests/builtins.sh 2009-07-09 13:14:50.000000000 +0000
-@@ -332,7 +332,7 @@ wait $pid1
+@@ -344,7 +344,7 @@ wait $pid1
(( $? == 1 )) || err_exit "wait not saving exit value"
wait $pid2
(( $? == 127 )) || err_exit "subshell job known to parent"
@@ -197,88 +197,88 @@
for v in ${v//,/ }
do v=${v#*:}
--- src/cmd/ksh93/tests/coprocess.sh
-+++ src/cmd/ksh93/tests/coprocess.sh 2012-02-09 13:39:13.794169756 +0000
-@@ -107,15 +107,15 @@ ${SHELL-ksh} |&
- cop=$!
- exp=Done
- print -p $'print hello | cat\nprint '$exp
--read -t 5 -p
--read -t 5 -p
-+read -t 50 -p
-+read -t 50 -p
- got=$REPLY
- if [[ $got != $exp ]]
- then err_exit "${SHELL-ksh} coprocess io failed -- got '$got', expected '$exp'"
- fi
- exec 5<&p 6>&p
- exec 5<&- 6>&-
--{ sleep 4; kill $cop; } 2>/dev/null &
-+{ sleep 10; kill $cop; } 2>/dev/null &
- spy=$!
- if wait $cop 2>/dev/null
- then kill $spy 2>/dev/null
-@@ -128,10 +128,10 @@ echo line1 | grep 'line2'
- echo line2 | grep 'line1'
- } |&
- SECONDS=0 count=0
--while read -p -t 10 line
-+while read -p -t 100 line
- do ((count++))
- done
--if (( SECONDS > 8 ))
-+if (( SECONDS > 80 ))
- then err_exit "read -p hanging (SECONDS=$SECONDS count=$count)"
- fi
- wait $!
-@@ -154,7 +154,7 @@ e=12345
- wait $!
++++ src/cmd/ksh93/tests/coprocess.sh 2013-02-01 15:22:31.000000000 +0000
+@@ -113,15 +113,15 @@ do
+ cop=$!
+ exp=Done
+ print -p $'print hello | '$cat$'\nprint '$exp
+- read -t 5 -p
+- read -t 5 -p
++ read -t 50 -p
++ read -t 50 -p
+ got=$REPLY
+ if [[ $got != $exp ]]
+ then err_exit "${SHELL-ksh} $cat coprocess io failed -- got '$got', expected '$exp'"
+ fi
+ exec 5<&p 6>&p
+ exec 5<&- 6>&-
+- { sleep 4; kill $cop; } 2>/dev/null &
++ { sleep 10; kill $cop; } 2>/dev/null &
+ spy=$!
+ if wait $cop 2>/dev/null
+ then kill $spy 2>/dev/null
+@@ -134,10 +134,10 @@ do
+ echo line2 | grep 'line1'
+ } |&
+ SECONDS=0 count=0
+- while read -p -t 10 line
++ while read -p -t 100 line
+ do ((count++))
done
- print
--) 2>/dev/null | read -t 10 r
-+) 2>/dev/null | read -t 100 r
- [[ $r == $e ]] || err_exit "coprocess timing bug -- expected $e, got '$r'"
- r=
- (
-@@ -166,8 +166,9 @@ r=
- wait $!
+- if (( SECONDS > 8 ))
++ if (( SECONDS > 80 ))
+ then err_exit "$cat coprocess read -p hanging (SECONDS=$SECONDS count=$count)"
+ fi
+ wait $!
+@@ -160,7 +160,7 @@ do
+ wait $!
+ done
+ print
+- ) 2>/dev/null | read -t 10 r
++ ) 2>/dev/null | read -t 100 r
+ [[ $r == $e ]] || err_exit "$cat coprocess timing bug -- expected $e, got '$r'"
+
+ r=
+@@ -173,8 +173,9 @@ do
+ wait $!
+ done
+ print $r
+- ) 2>/dev/null | read -t 10 r
++ ) 2>/dev/null | read -t 100 r
+ [[ $r == $e ]] || err_exit "$cat coprocess command substitution bug -- expected $e, got '$r'"
++ kill $(jobs -p) 2>/dev/null
+
+ (
+ $cat |&
+@@ -212,7 +213,7 @@ do
done
- print $r
--) 2>/dev/null | read -t 10 r
-+) 2>/dev/null | read -t 100 r
- [[ $r == $e ]] || err_exit "coprocess command substitution bug -- expected $e, got '$r'"
-+kill $(jobs -p) 2>/dev/null
-
- (
- /bin/cat |&
-@@ -205,7 +206,7 @@ do if ( trap - $sig ) 2> /dev/null
- done
-
- trap 'sleep_pid=; kill $pid; err_exit "coprocess 1 hung"' TERM
--{ sleep 5; kill $$; } &
-+{ sleep 10; kill $$; } &
- sleep_pid=$!
- builtin cat
- cat |&
-@@ -220,7 +221,7 @@ trap - TERM
- [[ $sleep_pid ]] && kill $sleep_pid
-
- trap 'sleep_pid=; kill $pid; err_exit "coprocess 2 hung"' TERM
--{ sleep 5; kill $$; } &
-+{ sleep 10; kill $$; } &
- sleep_pid=$!
- cat |&
- pid=$!
-@@ -232,7 +233,7 @@ trap - TERM
- [[ $sleep_pid ]] && kill $sleep_pid
-
- trap 'sleep_pid=; kill $pid; err_exit "coprocess 3 hung"' TERM
--{ sleep 5; kill $$; } &
-+{ sleep 10; kill $$; } &
- sleep_pid=$!
- cat |&
- pid=$!
+
+ trap 'sleep_pid=; kill $pid; err_exit "$cat coprocess 1 hung"' TERM
+- { sleep 5; kill $$; } &
++ { sleep 10; kill $$; } &
+ sleep_pid=$!
+ $cat |&
+ pid=$!
+@@ -226,7 +227,7 @@ do
+ [[ $sleep_pid ]] && kill $sleep_pid
+
+ trap 'sleep_pid=; kill $pid; err_exit "$cat coprocess 2 hung"' TERM
+- { sleep 5; kill $$; } &
++ { sleep 10; kill $$; } &
+ sleep_pid=$!
+ $cat |&
+ pid=$!
+@@ -238,7 +239,7 @@ do
+ [[ $sleep_pid ]] && kill $sleep_pid
+
+ trap 'sleep_pid=; kill $pid; err_exit "$cat coprocess 3 hung"' TERM
+- { sleep 5; kill $$; } &
++ { sleep 10; kill $$; } &
+ sleep_pid=$!
+ $cat |&
+ pid=$!
--- src/cmd/ksh93/tests/locale.sh
-+++ src/cmd/ksh93/tests/locale.sh 2011-05-24 16:46:02.000000000 +0200
++++ src/cmd/ksh93/tests/locale.sh 2011-05-24 14:46:02.000000000 +0000
@@ -62,7 +62,7 @@ done
# this locale is supported by ast on all platforms
# EU for { decimal_point="," thousands_sep="." }
@@ -319,7 +319,7 @@
")
got=$*
--- src/cmd/ksh93/tests/options.sh
-+++ src/cmd/ksh93/tests/options.sh 2012-01-16 16:50:59.135145199 +0000
++++ src/cmd/ksh93/tests/options.sh 2012-01-16 16:50:59.000000000 +0000
@@ -510,7 +510,7 @@ z=$($SHELL 2>&1 -uc 'print ${X2345678901
[[ $z == *X23456789012345:* ]] || err_exit "error message garbled with set -u got $z"
@@ -341,7 +341,7 @@
PATH=$path
--- src/cmd/ksh93/tests/pty.sh
-+++ src/cmd/ksh93/tests/pty.sh 2012-03-15 11:51:40.018434039 +0000
++++ src/cmd/ksh93/tests/pty.sh 2012-03-15 11:51:40.000000000 +0000
@@ -428,15 +428,16 @@ r echo repeat-3
# err_exit #
@@ -362,7 +362,7 @@
exit $((Errors<125?Errors:125))
--- src/cmd/ksh93/tests/signal.sh
-+++ src/cmd/ksh93/tests/signal.sh 2011-05-20 13:25:48.196426330 +0000
++++ src/cmd/ksh93/tests/signal.sh 2011-05-20 13:25:48.000000000 +0000
@@ -285,10 +285,10 @@ then for exp in TERM VTALRM PIPE
$SHELL <<- EOF
foo() { return 0; }
@@ -378,7 +378,7 @@
} 2>> /dev/null
--- src/lib/libast/disc/memfatal.c
+++ src/lib/libast/disc/memfatal.c 2009-07-09 13:30:39.000000000 +0000
-@@ -72,7 +72,7 @@ memfatal(void)
+@@ -74,7 +74,7 @@ memfatal(void)
{
Vmdisc_t* disc;
@@ -409,7 +409,7 @@
#include "FEATURE/lib"
--- src/lib/libast/features/lib
+++ src/lib/libast/features/lib 2007-12-20 18:01:26.000000000 +0000
-@@ -523,14 +523,19 @@ tst lib_utime_now note{ utime works with
+@@ -538,14 +538,19 @@ tst lib_utime_now note{ utime works with
}end
tst cross{
@@ -438,7 +438,7 @@
--- src/lib/libast/misc/procopen.c
+++ src/lib/libast/misc/procopen.c 2007-12-20 18:01:26.000000000 +0000
-@@ -598,7 +598,7 @@ procopen(const char* cmd, char** argv, c
+@@ -599,7 +599,7 @@ procopen(const char* cmd, char** argv, c
if (!fork())
{
sfsprintf(path, sizeof(path), "%d", getppid());
@@ -448,7 +448,7 @@
}
sleep(2);
--- src/lib/libast/port/astwinsize.c
-+++ src/lib/libast/port/astwinsize.c 2012-02-03 08:58:43.217934605 +0000
++++ src/lib/libast/port/astwinsize.c 2012-02-03 08:58:43.000000000 +0000
@@ -29,6 +29,10 @@
#include
#include
@@ -482,9 +482,20 @@
#define S2F_type 2
#define S2F_scan 1
#ifndef elementsof
+--- src/lib/libcmd/Mamfile
++++ src/lib/libcmd/Mamfile 2013-02-05 10:41:01.310073683 +0000
+@@ -897,7 +897,7 @@ exec - -e '/^b_[a-z_][a-z_0-9]*(/!d' \
+ exec - -e 's/^b_//' \
+ exec - -e 's/(.*//' \
+ exec - -e 's/.*/CMDLIST(&)/' \
+-exec - |
++exec - cmdinit.c basename.c cat.c chgrp.c chmod.c chown.c cksum.c cmp.c comm.c cp.c cut.c dirname.c date.c expr.c fds.c fmt.c fold.c getconf.c head.c id.c join.c ln.c logname.c md5sum.c mkdir.c mkfifo.c mktemp.c mv.c paste.c pathchk.c pids.c rev.c rm.c rmdir.c stty.c sum.c sync.c tail.c tee.c tty.c uname.c uniq.c vmstate.c wc.c revlib.c wclib.c fts_fix.c lib.c |
+ exec - sort -u
+ exec - } > 1.${COTEMP}.h
+ exec - if cmp 2>/dev/null -s 1.${COTEMP}.h cmdlist.h
--- src/lib/libcmd/chmod.c
-+++ src/lib/libcmd/chmod.c 2011-05-20 13:28:57.511927049 +0000
-@@ -272,7 +272,7 @@ b_chmod(int argc, char** argv, void* con
++++ src/lib/libcmd/chmod.c 2011-05-20 13:28:58.000000000 +0000
+@@ -272,7 +272,7 @@ b_chmod(int argc, char** argv, Shbltin_t
case FTS_SLNONE:
if (chlink)
{
@@ -493,13 +504,3 @@
chmodf = lchmod;
goto commit;
#else
---- src/lib/libcmd/vmstate.c
-+++ src/lib/libcmd/vmstate.c 2012-02-21 13:10:56.085934573 +0000
-@@ -50,6 +50,7 @@ USAGE_LICENSE
-
- #include
- #include
-+#include
-
- typedef struct State_s
- {
++++++ workaround-stupid-build-system.diff ++++++
--- /var/tmp/diff_new_pack.2IEHPB/_old 2013-02-17 17:04:29.000000000 +0100
+++ /var/tmp/diff_new_pack.2IEHPB/_new 2013-02-17 17:04:29.000000000 +0100
@@ -20,7 +20,7 @@
setv YACC yacc
--- src/cmd/INIT/iffe.sh
+++ src/cmd/INIT/iffe.sh 2008-02-14 12:15:59.000000000 +0000
-@@ -1117,7 +1117,7 @@ case `(getopts '[-][123:xyz]' opt --xyz;
+@@ -1170,7 +1170,7 @@ case `(getopts '[-][123:xyz]' opt --xyz;
--*) echo $command: $1: unknown option >&2
exit 2
;;
@@ -85,7 +85,7 @@
}
--- src/cmd/ksh93/Mamfile
-+++ src/cmd/ksh93/Mamfile 2012-02-10 15:30:30.774546719 +0100
++++ src/cmd/ksh93/Mamfile 2012-02-10 14:30:31.000000000 +0000
@@ -7,7 +7,7 @@ setv AR ${mam_cc_AR} ${mam_cc_AR_ARFLAGS
setv ARFLAGS rc
setv AS as
@@ -140,7 +140,7 @@
make shell
prev libshell.a archive
--- src/lib/libast/Mamfile
-+++ src/lib/libast/Mamfile 2012-03-14 11:36:06.073934348 +0000
++++ src/lib/libast/Mamfile 2013-02-05 15:08:23.757451837 +0000
@@ -5,7 +5,7 @@ setv AR ${mam_cc_AR} ${mam_cc_AR_ARFLAGS
setv ARFLAGS rc
setv AS as
@@ -159,7 +159,7 @@
setv SILENT
setv TAR tar
setv YACC yacc
-@@ -999,7 +999,7 @@ make lcgen
+@@ -1003,7 +1003,7 @@ make lcgen
make port/lcgen.c
prev std/stdio.h implicit
done port/lcgen.c
@@ -168,8 +168,8 @@
done lcgen generated
make port/lc.tab
done port/lc.tab
-@@ -7282,64 +7282,37 @@ done ${INSTALLROOT}/lib/file/magic gener
- make ${INSTALLROOT}/include/ast/fmtmsg.h
+@@ -7291,58 +7291,31 @@ exec - test '' = 'misc/magic.tab' || ${S
+ done ${INSTALLROOT}/lib/file/magic generated
prev comp/fmtmsg.h
prev ast_lib.h
-exec - case ${mam_cc_HOSTTYPE} in
@@ -189,9 +189,6 @@
exec - }
-exec - ;;
-exec - esac
- prev ${INSTALLROOT}/include/prototyped.h implicit
- done ${INSTALLROOT}/include/ast/fmtmsg.h generated
- make ${INSTALLROOT}/include/ast/libgen.h
prev comp/libgen.h
prev ast_lib.h
-exec - case ${mam_cc_HOSTTYPE} in
@@ -211,9 +208,6 @@
exec - }
-exec - ;;
-exec - esac
- prev ${INSTALLROOT}/include/prototyped.h implicit
- done ${INSTALLROOT}/include/ast/libgen.h generated
- make ${INSTALLROOT}/include/ast/syslog.h
prev comp/syslog.h
prev ast_lib.h
-exec - case ${mam_cc_HOSTTYPE} in
@@ -233,11 +227,11 @@
exec - }
-exec - ;;
-exec - esac
- prev ast_namval.h implicit
- prev ${INSTALLROOT}/include/prototyped.h implicit
- done ${INSTALLROOT}/include/ast/syslog.h generated
+ done install virtual
+ make test
+ done test dontcare virtual
--- src/lib/libcmd/Mamfile
-+++ src/lib/libcmd/Mamfile 2012-02-06 10:06:34.179552617 +0000
++++ src/lib/libcmd/Mamfile 2013-02-05 15:13:53.797951789 +0000
@@ -7,7 +7,7 @@ setv AR ${mam_cc_AR} ${mam_cc_AR_ARFLAGS
setv ARFLAGS rc
setv AS as
@@ -245,7 +239,7 @@
-setv CC cc
+setv CC gcc
setv mam_cc_FLAGS ${mam_cc_DLL}
- setv CCFLAGS ${mam_cc_DEBUG}
+ setv CCFLAGS ${-debug-symbols?1?${mam_cc_DEBUG} -D_BLD_DEBUG?${mam_cc_OPTIMIZE}?}
setv CCLDFLAGS ${-strip-symbols?1?${mam_cc_LD_STRIP}??}
@@ -29,7 +29,7 @@ setv NMAKE nmake
setv NMAKEFLAGS
@@ -278,7 +272,7 @@
setv YACC yacc
--- src/lib/libpp/Mamfile
+++ src/lib/libpp/Mamfile 2012-01-24 18:31:22.000000000 +0000
-@@ -661,7 +661,7 @@ exec - .
+@@ -663,7 +663,7 @@ exec - .
exec - w
exec - q
exec - !
@@ -287,7 +281,7 @@
exec - ./${COTEMP}.exe > pp.yacc
exec - rm -f 1.${COTEMP}.c ${COTEMP}.exe
done pp.yacc generated
-@@ -703,7 +703,7 @@ exec - .
+@@ -705,7 +705,7 @@ exec - .
exec - w
exec - q
exec - !
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org