Hello community,

here is the log from the commit of package ksh for openSUSE:Factory checked in 
at 2011-11-18 15:45:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ksh (Old)
 and      /work/SRC/openSUSE:Factory/.ksh.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ksh", Maintainer is "wer...@suse.com"

Changes:
--------
--- /work/SRC/openSUSE:Factory/ksh/ksh.changes  2011-09-23 02:07:19.000000000 
+0200
+++ /work/SRC/openSUSE:Factory/.ksh.new/ksh.changes     2011-11-18 
15:46:03.000000000 +0100
@@ -1,0 +2,23 @@
+Tue Aug 30 16:44:06 UTC 2011 - wer...@suse.de
+
+- Implement a patch for both regressions reported here
+  mailman.research.att.com/pipermail/ast-developers/2011q3/000951.html 
+
+-------------------------------------------------------------------
+Mon Aug 15 16:46:10 UTC 2011 - wer...@suse.de
+
+- Add patch from mailing list to avoid stupid crahs on empty job list. 
+
+-------------------------------------------------------------------
+Fri Jul 22 14:56:27 UTC 2011 - wer...@suse.de
+
+- Fix a typo in the patch 
+
+-------------------------------------------------------------------
+Fri Jul 22 11:29:02 UTC 2011 - wer...@suse.de
+
+- Add and modify a patch from David korn to be able to handle multi
+  byte characters at the boundary of the buffer used for parsing
+  here documents (bnc#705032) 
+
+-------------------------------------------------------------------
@@ -23,0 +47,47 @@
+Thu Jun 30 16:04:22 CEST 2011 - wer...@suse.de
+
+- Update to 2011-06-30 of ksh93u which includes our patches for
+  several problems (e.g. Shift.JIS, S390, bnc#697394):
+  11-06-22 The shell compiler now supports process substitution.
+  11-06-22 +Added code to support process substitution on systems that do
+           not supply the /dev/fd directory.
+  11-06-21 Fixed extraneous jobs Done messages when builin is at the end of a
+           pipeline.
+  11-06-20 Fixed two regression tests.
+  11-06-20 Fixed a bug introduced on last update.
+  11-06-14 A bug with pipefail in which the shell would wait for background
+           jobs to complete has been fixed.
+  11-06-09 A bug which caused the options.sh regression test to fail on OS390
+           Linux has been fixed.  The bug could also have affected other 
systems.
+  11-06-07 A number of changes to support the still undocuments namespace 
option
+           have been added.
+  11-06-06 A bug in which command substitution of eval would hang when it  had
+           standard error redirected to standard output has been fixed.
+  11-06-01 A bug in case statement fall through (;&) ignoring set -e was fixed.
+  11-06-01 A bug in which creating a left or right justified upper or lowercase
+           variable with an empty string has been fixed.
+  11-06-01 A bug in which the .paths directory wasn't read when a subshell was
+           executed before any other command has been fixed.
+  11-05-31 The shell now gives an error when a type variable is assigned to
+           an array instance when the array has been declared a compound 
variable
+           array.
+  11-05-31 A bug in which typeset -m of an array instance did not remove the
+           original instance has been fixed. 
+  11-05-28 A bug in which typeset -m dest=src fails when src and are passed as
+           name references was fixed.
+  11-05-28 A bug in which typeset -m "c.board[1][i]=el", where el is a compound
+           variable core dumps has been fixed.
+  11-05-28 Two bugs in the display of arrays of compound variables with print 
-v
+           have been fixed.
+  11-05-27 A bug with command substitution with the shift jis locale has been
+           fixed.
+  11-05-25 A bug in which unset -f foo, called within function foo could cause
+           the shell to core dump has been fixed.
+  11-05-24 A bug in unsetting arrays of compound variables that could lead to
+           a core dump has been fixed.
+  11-05-24 A scoping bug in with typeset -m for variables passed as references
+           has been fixed. 
+  11-05-09 A bug in which 'typeset +p array[$i]' in a subshell could cause an
+           exception has been fixed.
+
+-------------------------------------------------------------------
@@ -58,0 +129,375 @@
+
+-------------------------------------------------------------------
+Thu May 05 15:44:33 CEST 2011 - wer...@suse.de
+
+- Update to 2011-05-05 of ksh93u which includes various fixes for
+  e.g. bnc#690623, bnc#661875, and bnc#636389, from RELEASE notes:
+  11-05-03 Two more scoping bug with name references and read -C were fixed.
+  11-05-03 A potential race condition which occurs when here-documents are
+          processed in asynchronous blocks has been eliminated.
+  11-05-02 Another scoping bug with name references defined in a function has
+          been fixed.
+  11-05-02 A bug in which the shell discards saved exit status of a job if it 
is
+          followed by a subshell execution has been fixed.
+  11-04-28 The shell now checks for numerical overflows with process ids.
+  11-04-28 Another scoping bug with compound variables defined by name 
references
+          inside a function has been fixed.
+  11-04-28 A bug which caused a core dump on 32 bit systems with the basic.sh
+          regression test has been fixed.
+  11-04-27 A scope binding error for name references has been fixed.
+  11-04-27 Assignment of compound variable to compound array element by name
+          is now working.
+  11-04-25 A bug in the references to two domensional compound arrays has
+          been fixed.
+  11-04-20 A bug in which a name reference to a multidimentional index array
+          index, nameref x=foo[3][4], did not work correctly has been fixed.
+  11-04-18 Changes were added to allow fixed size arrays of variable sized
+          objects when the SHOPT_FIXEDARRAY compile option defined on 10-09-28.
+  11-04-18 A bug in which name references to array elements could fail has
+          been fixed.
+  11-04-11 A bug in which readonly var, where var is exported could cause var
+          to be unset has been fixed.
+  11-04-06 A tokenizer bug in which ${x/{3}(\d)/ } would cause in infinite
+          loop has been fixed.
+  11-04-05 A bug in which ${!x.} could cause a core dump has been fixed.
+  11-04-04 A bug in which cleaning out the history file could terminate before
+          keeping all the recent history events has been fixed.
+  11-03-29 A bug in which ${#array[@]} was 1 rather than 0 after issuing
+          typeset array[7] has been fixed.
+  11-03-29 The subscript out or range message for fixed arrays has been fixed.
+  11-03-29 A bug in which suspend could cause a core dump has been fixed.
+  11-03-24 For the showme option added 09-09-09, commands beginning with a ;
+          inside an arithmetic for loop, no longer produce syntax errors.
+  11-03-18 A bug in _WINIX ~domain/user expansion has been fixed.
+  11-03-16 A bug in the pipefail option which could cause a script to hang
+          has been fixed.
+  11-03-12 The shell no longer treats ${##pattern} as a syntax error.
+  11-03-11 A bug in typeset -u on systems that don't supply the towctrans()
+          function has been fixed.
+  11-03-11 A bug in which a compound assignment of the form var[sub]=(...)
+          would evaluate sub for each assignment has been fixed.
+  11-03-07 A bug in which reassigning a compound variable to an associative
+          array index could incorrectly increase the count of the number
+          of elements has been fixed.
+  11-03-04 +The tilde expansion on windows has been modifed to handle user
+          names of the form domain/user so that ~domain/user now expands
+          to the home directory of that domain user.
+  11-03-03 A bug in which the width of the prompt was calculated incorectly
+          which cause the wrong line length for edit commands has been fixed.
+  11-03-02 A bug in which a global variables set from within a function inside
+          a subshell can leave side effects in parent shell has been fixed.
+  11-03-01 A bug in which whence -a could dump core when the first match
+          was due to : in PATH and the program was in the current directory.
+  11-02-28 A bug in emacs mode with SHOPT_EDPREDICT (added on 10-05-20) which
+          disabled prediction on a line starting with # when the cursor was not
+          at the end of line has been fixed.
+  11-02-28 The output format for compound variables with set has been fixed.
+  11-02-25 A bug which could lead to a core dump occurred when a shell script
+          without #! is invoked by name from a parent shell that has name
+          references defined and the script creates name references of the
+          same name.
+  11-02-21 The shell now fails with a syntax error when a here-document in a
+          command substition is not completed before the closing )
+  11-02-18 A bug in which the value of $0 in a function defined by name()
+          was changed to name has been fixed.
+  11-02-17 A bug in which the declaration typeset var[100] did not work
+          correctly has been fixed. 
+  11-02-15 A bug in which [[ -v sh.match ]] did not work correctly has been
+          fixed.
+  11-02-08 A bug in which opening standard output after it has been closed with
+          exec 1>&- doesn't work has been fixed.
+  11-02-07 A bug on some systems for which a command subtitution could hang
+          has been fixed.
+  11-01-28 A bug in file name completion for files containing both multibyte
+          characters shell special characters has been fixed.
+  11-01-18 The .sh.match variable now shows elements that do not match as
+          as not set rather than an empty string.
+  11-01-18 A bug with typeset -m of an array into an element of an indexed
+          array has been fixed.
+  11-01-13 A bug in handling of arrays of compound variables inside ((...)) 
which
+          reported a syntax error been fixed.
+  11-01-10 A bug in arithmetic assignment operators of the form op= for array
+          variables when the same array was referenced on the left and the
+          right hand side with different indices has been fixed.
+  11-01-10 A bug in which the output of time was lost when { time...;} 2>&1
+          occured inside command substition has been fixed.
+  11-01-07 [[ -v sh.match[i] ]] was returning false when sh.match[i] was set.
+  11-01-05 Added and modified warning messages with sh -n.
+  11-01-02 Fixed bugs with typeset -l/-u/-M and arrays.
+  10-12-28 Fixed a bug with typeset -l/-u/-M values in arithmetric expressions.
+  10-12-26 Fixed a time parsing bug in sleep and localeconv() initialization.
+  10-12-23 Prevented the shell from generating a core dump when it sends itself
+          a termination signal because the last command terminated with that
+          signal.  This prevents a core dump to be overwritten by the shell.
+  10-12-22 A bug in the expansion of  ${A[@]} ${B[@]}, introduced in 10-12-01
+           when A="" B=B has been fixed.
+  10-12-21 +Use MS_3D in b_vpath() for setting win32 WoW mount defaults.
+  10-12-17 A bug in the expansion of ${var:i:j} which caused a core dump when
+          i > ${#var} has been fixed.
+  10-12-16 +sleep now treats . as decimal point even in locales that use comma.
+  10-12-16 +typeset -M mapname was added to generalize on toupper and tolowwer
+          mapping as provided with wctrans(). 
+  10-12-10 A bug in which typeset -l displayed namespaces as well as lower case
+          variables has been fixed.
+  10-12-06 A bug in which a pipeline could terminate prematurely for a pipeline
+          whose right hand side is a builtin, and whose left hand side ends in
+          a simple command that has standard output redirected has been fixed.
+  10-12-06 A bug in hexfloat assignments when the right hand side is a string
+           variable starting with 0x has been fixed.
+  10-12-01 A bug in the expansion of ${$1+"$@"} which causes the last 
positional
+          parameter to disappear when it is empty has been fixed.
+  10-12-01 A number of changes were made to reduce the startup time.
+  10-11-29 When wait is interrupted by a signal that is caught, it now exits
+          with a non-zero exit status.
+  10-11-29 An incorrect warning message was eliminated with the -n option for
+          arithmetic expressions with associative arrays.
++++ 250 more lines (skipped)
++++ between /work/SRC/openSUSE:Factory/ksh/ksh.changes
++++ and /work/SRC/openSUSE:Factory/.ksh.new/ksh.changes

Old:
----
  INIT.2010-06-21.tar.bz2
  ast-ksh.2010-06-21.tar.bz2
  ast-msgcc.2010-06-21.tar.bz2
  ksh93-argv.dif
  ksh93-argv0.dif
  ksh93-array.dif
  ksh93-eintr.dif
  ksh93-export.dif
  ksh93-fdfn.dif
  ksh93-fdleak.dif
  ksh93-ifs.dif
  ksh93-leak.dif
  ksh93-pipe.dif
  ksh93-sigpipe.dif

New:
----
  INIT.2011-06-30.tar.bz2
  ast-ksh.2011-06-30.tar.bz2
  ast-msgcc.2011-06-30.tar.bz2
  ksh93-gcc.dif
  ksh93-heredoc.dif
  ksh93-jobs.dif
  ksh93-reg.dif

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ksh.spec ++++++
--- /var/tmp/diff_new_pack.2LTE7n/_old  2011-11-18 15:46:10.000000000 +0100
+++ /var/tmp/diff_new_pack.2LTE7n/_new  2011-11-18 15:46:10.000000000 +0100
@@ -36,13 +36,13 @@
 Requires(preun): update-alternatives
 %endif
 AutoReqProv:    on
-Version:        93t
-Release:        202
+Version:        93u
+Release:        1
 Summary:        Korn Shell
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
-Source:         INIT.2010-06-21.tar.bz2
-Source1:        ast-ksh.2010-06-21.tar.bz2
-Source2:        ast-msgcc.2010-06-21.tar.bz2
+Source:         INIT.2011-06-30.tar.bz2
+Source1:        ast-ksh.2011-06-30.tar.bz2
+Source2:        ast-msgcc.2011-06-30.tar.bz2
 Source3:        CPL
 Source10:       leak1.sh
 Source11:       leak2.sh
@@ -64,20 +64,13 @@
 Patch10:        ksh93-suid_exec.dif
 Patch11:        ksh93-signals.dif
 Patch12:        ksh93-limits.dif
-Patch13:        ksh93-sigpipe.dif
+Patch13:        ksh93-unset-f.dif
 Patch14:        ksh93-ia64.dif
 Patch15:        ksh93-s390.dif
-Patch16:        ksh93-leak.dif
-Patch17:        ksh93-ifs.dif
-Patch18:        ksh93-fdfn.dif
-Patch19:        ksh93-fdleak.dif
-Patch20:        ksh93-argv0.dif
-Patch21:        ksh93-export.dif
-Patch22:        ksh93-eintr.dif
-Patch23:        ksh93-array.dif
-Patch24:        ksh93-pipe.dif
-Patch25:        ksh93-argv.dif
-Patch26:        ksh93-unset-f.dif
+Patch16:        ksh93-gcc.dif
+Patch17:        ksh93-heredoc.dif
+Patch18:        ksh93-jobs.dif
+Patch19:        ksh93-reg.dif
 Patch42:        ksh-locale.patch
 %global         use_suid_exe 0
 %global         use_locale 0
@@ -150,13 +143,6 @@
 %patch17
 %patch18
 %patch19
-%patch20
-%patch21
-%patch22
-%patch23
-%patch24
-%patch25
-%patch26
 
 %build
   AR="ar"
@@ -403,6 +389,7 @@
   pushd ${test}
       typeset -i failed=0
       ln -sf ${root}/lib ${test}/../
+      rm -f pty.sh
       ${root}/bin/ksh.test shtests
       ${root}/bin/ksh.test %{S:10}
       ${root}/bin/ksh.test %{S:11}
@@ -447,7 +434,9 @@
   mkdir -p %{buildroot}%{_mandir}
   mkdir    %{buildroot}%{_mandir}/man1
   mkdir    %{buildroot}%{_mandir}/man3
+%if %use_locale
   mkdir -p %{buildroot}%{_datadir}/locale
+%endif
   mkdir -p %{buildroot}%{_datadir}/ksh/fun
   mkdir -p %{buildroot}%{_sysconfdir}/permissions.d
   install bin/ksh       %{buildroot}/%{_lib}/ast/bin/
@@ -496,20 +485,14 @@
   install -m 0644 include/ast/*                %{buildroot}%{_includedir}/ast/
   popd
 %if %use_locale
-  for msg in share/lib/locale/* ; do
-      test -d $msg || continue
-      mkdir -p %{buildroot}%{_datadir}/locale/${msg##*/}/LC_MESSAGES
-      cp -vp ${msg}/LC_MESSAGES/*      
%{buildroot}%{_datadir}/locale/${msg##*/}/LC_MESSAGES/
-  done
-%else
   for msg in share/locale/* ; do
       test -d $msg || continue
       mkdir -p %{buildroot}%{_datadir}/locale/${msg##*/}/LC_MESSAGES
       cp -vp ${msg}/LC_MESSAGES/*      
%{buildroot}%{_datadir}/locale/${msg##*/}/LC_MESSAGES/
   done
-%endif
   echo %%dir %{_datadir}/locale/C > ksh.lang
   echo %%dir %{_datadir}/locale/C/LC_MESSAGES >> ksh.lang
+%endif
   find %{buildroot}/ -type f -o -type l | sed -r '
       s:%{buildroot}::
       s:(%{_datadir}/locale/)([^/_]+)(.*$):%%lang\(\2\) \1\2\3:

++++++ INIT.2010-06-21.tar.bz2 -> INIT.2011-06-30.tar.bz2 ++++++
++++ 5891 lines of diff (skipped)

++++++ ast-ksh.2010-06-21.tar.bz2 -> ast-ksh.2011-06-30.tar.bz2 ++++++
++++ 73537 lines of diff (skipped)

++++++ ast-msgcc.2010-06-21.tar.bz2 -> ast-msgcc.2011-06-30.tar.bz2 ++++++
++++ 1870 lines of diff (skipped)

++++++ ksh-locale.patch ++++++
--- /var/tmp/diff_new_pack.2LTE7n/_old  2011-11-18 15:46:11.000000000 +0100
+++ /var/tmp/diff_new_pack.2LTE7n/_new  2011-11-18 15:46:11.000000000 +0100
@@ -1,8 +1,8 @@
 --- lib/package/ast-ksh.pkg
 +++ lib/package/ast-ksh.pkg    2011-07-05 16:29:57.891926052 +0000
 @@ -1,4 +1,4 @@
--ast-ksh :PACKAGE: ksh93 libast libcmd libsum libdll
-+ast-ksh :PACKAGE: msgcc ksh93 libpp libast libcmd libsum libdll
+-ast-ksh :PACKAGE: ksh93 libast libcmd libcoshell libsum libdll
++ast-ksh :PACKAGE: msgcc ksh93 libpp libast libcmd libcoshell libsum libdll
  
  :COVERS: ksh
  

++++++ ksh93-gcc.dif ++++++
--- src/lib/libpp/ppsearch.c
+++ src/lib/libpp/ppsearch.c    2011-07-12 12:08:08.640426463 +0000
@@ -107,6 +107,14 @@ ppmultiple(register struct ppfile* fp, r
  * search for file using directories in dp
  */
 
+#define stupidgcc(flag)                \
+({                                     \
+       char *name = NiL;               \
+       if (!(fp->flags & INC_MEMBER(flag)) && (xp = fp->bound[flag])) \
+                name = xp->name; \
+       name; \
+})
+
 static int
 search(register struct ppfile* fp, register struct ppdirs* dp, int type, int 
flags)
 {
@@ -146,10 +154,10 @@ search(register struct ppfile* fp, regis
                (fp->flags & INC_BOUND(INC_STANDARD)) ? "STANDARD|" : "",
                dp ? (dp->index == INC_PREFIX ? "pre" : dp->index == INC_LOCAL 
? "lcl" : dp->index == INC_VENDOR ? "vnd" : "std") : NiL,
                dp ? dp->name : NiL,
-               !(fp->flags & INC_MEMBER(INC_PREFIX)) && (xp = 
fp->bound[INC_PREFIX]) ? xp->name : NiL,
-               !(fp->flags & INC_MEMBER(INC_LOCAL)) && (xp = 
fp->bound[INC_LOCAL]) ? xp->name : NiL,
-               !(fp->flags & INC_MEMBER(INC_VENDOR)) && (xp = 
fp->bound[INC_VENDOR]) ? xp->name : NiL,
-               !(fp->flags & INC_MEMBER(INC_STANDARD)) && (xp = 
fp->bound[INC_STANDARD]) ? xp->name : NiL,
+               stupidgcc(INC_PREFIX),
+               stupidgcc(INC_LOCAL),
+               stupidgcc(INC_VENDOR),
+               stupidgcc(INC_STANDARD),
                error_info.file
                ));
        if (flags & SEARCH_HOSTED)
@@ -578,6 +586,8 @@ if (pp.test & 0x0010) error(1, "SEARCH#%
        return -1;
 }
 
+#undef stupidgcc
+
 /*
  * search for an include file
  * if (flags&SEARCH_INCLUDE) then
++++++ ksh93-heredoc.dif ++++++
|Subject: here doc bug with locales 
--- src/cmd/ksh93/include/fcin.h        Tue Aug  3 11:43:29 2010
+++ src/cmd/ksh93/include/fcin.h        Wed Jul 20 14:52:54 2011
@@ -35,6 +35,8 @@
 #define        fcpeek(n)       ((int)_Fcin.fcptr[n])
 #define        fcseek(n)       ((char*)(_Fcin.fcptr+=(n)))
 #define fcfirst()      ((char*)_Fcin.fcbuff)
+#define fclast()       ((char*)_Fcin.fclast)
+#define fcleft()       (_Fcin.fclast-_Fcin.fcptr)
 #define fcsopen(s)     
(_Fcin._fcfile=(Sfio_t*)0,_Fcin.fclen=1,_Fcin.fcbuff=_Fcin.fcptr=(unsigned 
char*)(s))
 #define fctell()       (_Fcin.fcoff + (_Fcin.fcptr-_Fcin.fcbuff))
 #define fcsave(x)      (*(x) = _Fcin)
--- src/cmd/ksh93/sh/lex.c      Wed Apr  6 12:05:19 2011
+++ src/cmd/ksh93/sh/lex.c      Wed Jul 20 14:59:04 2011
@@ -1564,7 +1564,10 @@ static int comsub(register Lex_t *lp, in
                {
 
                        if(first==lp->lexd.first)
-                               fcseek(cp+1-fcseek(0));
+                       {
+                               const char *tp = fcseek(0);
+                               fcseek(cp+1-tp);
+                       }
                        count++;
                        lp->lexd.paren = 0;
                        fcgetc(c);
@@ -1817,18 +1820,41 @@ static int here_copy(Lex_t *lp,register
                if(n!=S_NL)
                {
                        /* skip over regular characters */
+#if SHOPT_MULTIBYTE
+                       do
+                       {
+                               if(fcleft()< MB_LEN_MAX && mbsize(fcseek(0))<0)
+                               {
+                                       n = S_EOF;
+                                       LEN = -fcleft();
+                                       break;
+                               }
+                       }
+#endif /* SHOPT_MULTIBYTE */
                        while((n=STATE(state,c))==0);
                }
                if(n==S_EOF || !(c=fcget()))
                {
-                       if(!lp->lexd.dolparen && (c=(fcseek(0)-1)-bufp))
+                       if(LEN < 0)
+                               c = fclast()-bufp;
+                       else
+                               c= (fcseek(0)-1)-bufp;
+                       if(!lp->lexd.dolparen && c)
                        {
                                if(n==S_ESC)
                                        c--;
                                if(!lp->lexd.dolparen && 
(c=sfwrite(sp,bufp,c))>0)
                                        iop->iosize += c;
                        }
-                       if((c=lexfill(lp))<=0)
+                       if(LEN < 0)
+                       {
+                               n = LEN;
+                               c = fcmbget(&LEN);
+                               LEN += n;
+                       }
+                       else
+                               c = lexfill(lp);
+                       if(c<0)
                                break;
                        if(n==S_ESC)
                        {
@@ -1844,7 +1870,9 @@ static int here_copy(Lex_t *lp,register
                                        sfputc(sp,'\\');
                                }
                        }
-                       bufp = fcseek(-1);
+                       if (LEN < 1)
+                               LEN = 1;
+                       bufp = fcseek(-LEN);
                }
                else
                        fcseek(-LEN);
++++++ ksh93-jobs.dif ++++++
--- src/cmd/ksh93/sh/jobs.c
+++ src/cmd/ksh93/sh/jobs.c     2011-08-15 18:43:23.005726321 +0200
@@ -1103,7 +1103,7 @@ static struct process *job_bystring(regi
 
 int job_kill(register struct process *pw,register int sig)
 {
-       Shell_t *shp = pw->p_shp;
+       Shell_t *shp;
        register pid_t pid;
        register int r;
        const char *msg;
@@ -1116,6 +1116,7 @@ int job_kill(register struct process *pw
        errno = ECHILD;
        if(pw==0)
                goto error;
+       shp = pw->p_shp;
        pid = pw->p_pid;
 #if SHOPT_COSHELL
        if(pw->p_cojob)
++++++ ksh93-limits.dif ++++++
--- /var/tmp/diff_new_pack.2LTE7n/_old  2011-11-18 15:46:11.000000000 +0100
+++ /var/tmp/diff_new_pack.2LTE7n/_new  2011-11-18 15:46:11.000000000 +0100
@@ -1,5 +1,5 @@
 --- src/lib/libast/comp/conf.sh
-+++ src/lib/libast/comp/conf.sh        2007-09-13 10:39:15.000000000 +0000
++++ src/lib/libast/comp/conf.sh        2010-08-17 17:45:16.129814168 +0200
 @@ -143,7 +143,7 @@ main()
        return 1;
  #else
@@ -45,7 +45,7 @@
  #include <unistd.h>$systeminfo$headers
  ${tail}
  #undef conf
-@@ -1031,7 +1043,7 @@ do       eval name=\"'$'CONF_name_$key\"
+@@ -1032,7 +1044,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}
-@@ -1091,7 +1103,11 @@ do      eval name=\"'$'CONF_name_$key\"
+@@ -1092,7 +1104,11 @@ do      eval name=\"'$'CONF_name_$key\"
  ${head}
  #include <stdio.h>
  #include <sys/types.h>
@@ -66,9 +66,9 @@
  #include <unistd.h>$systeminfo$headers
  ${tail}
  int
-@@ -1105,7 +1121,11 @@ main()
-                                       *)      cat > $tmp.c <<!
+@@ -1107,7 +1123,11 @@ main()
  ${head}
+ #include <stdio.h>
  #include <sys/types.h>
 +#include <sys/uio.h>
  #include <limits.h>
@@ -78,7 +78,7 @@
  #include <unistd.h>$systeminfo$headers
  ${tail}
  ${script}
-@@ -1249,7 +1269,11 @@ printf("#endif\n");
+@@ -1254,7 +1274,11 @@ printf("#endif\n");
                                *)      cat > $tmp.c <<!
  ${head}
  #include <sys/types.h>
@@ -90,7 +90,7 @@
  #include <unistd.h>$systeminfo$headers
  ${tail}
  ${script}
-@@ -1322,7 +1346,7 @@ ${script}
+@@ -1333,7 +1357,7 @@ ${script}
                *[lLuU])
                        case $LL_suffix in
                        ??)     case $conf_limit in
@@ -99,7 +99,7 @@
                                        conf_limit=${conf_limit}L
                                        ;;
                                esac
-@@ -1357,7 +1381,7 @@ ${script}
+@@ -1368,7 +1392,7 @@ ${script}
                *[lLuU])
                        case $LL_suffix in
                        ??)     case $conf_minmax in
@@ -108,7 +108,7 @@
                                        conf_minmax=${conf_minmax}L
                                        ;;
                                esac
-@@ -1533,7 +1557,11 @@ esac
+@@ -1545,7 +1569,11 @@ esac
  cat <<!
  ${head}
  #include <sys/types.h>

++++++ ksh93-profile.dif ++++++
--- /var/tmp/diff_new_pack.2LTE7n/_old  2011-11-18 15:46:11.000000000 +0100
+++ /var/tmp/diff_new_pack.2LTE7n/_new  2011-11-18 15:46:11.000000000 +0100
@@ -1,14 +1,12 @@
 --- src/cmd/ksh93/sh/main.c
-+++ src/cmd/ksh93/sh/main.c    2008-09-11 17:10:58.130673081 +0200
-@@ -210,17 +210,39 @@ int sh_main(int ac, char *av[], Shinit_f
-               }
-               job_init(shp,sh_isoption(SH_LOGIN_SHELL));
-               if(sh_isoption(SH_LOGIN_SHELL))
--              {
++++ 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
+               {
                        /*      system profile  */
                        sh_source(shp, iop, e_sysprofile);
++              }
 +              /* make sure PWD is set up correctly */
-+              path_pwd(1);
++              path_pwd(shp,1);
 +#if SHOPT_SYSRC
 +              if(!sh_isoption(SH_NOEXEC))
 +              {
@@ -34,26 +32,26 @@
 +              {
                        if(!sh_isoption(SH_NOUSRPROFILE) && 
!sh_isoption(SH_PRIVILEGED))
                        {
-                               char **files = shp->login_files;
+                               char **files = shp->gd->login_files;
                                while ((name = *files++) && !sh_source(shp, 
iop, sh_mactry(shp,name)));
                        }
                }
 -              /* make sure PWD is set up correctly */
--              path_pwd(1);
+-              path_pwd(shp,1);
                if(!sh_isoption(SH_NOEXEC))
                {
                        if(!sh_isoption(SH_NOUSRPROFILE) && 
!sh_isoption(SH_PRIVILEGED) && sh_isoption(SH_RC))
-@@ -228,9 +250,6 @@ int sh_main(int ac, char *av[], Shinit_f
+@@ -234,9 +258,6 @@ int sh_main(int ac, char *av[], Shinit_f
  #if SHOPT_BASH
                                if(sh_isoption(SH_BASH) && 
!sh_isoption(SH_POSIX))
                                {
 -#if SHOPT_SYSRC
 -                                      sh_source(shp, iop, e_bash_sysrc);
 -#endif
-                                       sh_source(shp, iop, shp->rcfile ? 
shp->rcfile : sh_mactry(shp,(char*)e_bash_rc));
+                                       sh_source(shp, iop, shp->gd->rcfile ? 
shp->gd->rcfile : sh_mactry(shp,(char*)e_bash_rc));
                                }
                                else
-@@ -238,10 +257,6 @@ int sh_main(int ac, char *av[], Shinit_f
+@@ -244,10 +265,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 ++++++
--- src/cmd/ksh93/edit/edit.c
+++ src/cmd/ksh93/edit/edit.c   2011-08-30 16:07:02.059926160 +0000
@@ -1668,7 +1668,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=='#')
@@ -1746,8 +1746,13 @@ int ed_histgen(Edit_t *ep,const char *pa
                        mplast->next = mp;
                mplast->next = 0;
        }
-       ep->hlist = (Histmatch_t**)argv;
-       ep->hfirst = ep->hlist[0];
+       if (argv)
+       {
+               ep->hlist = (Histmatch_t**)argv;
+               ep->hfirst = ep->hlist[0];
+       }
+       else
+                ep->hfirst = 0;
        return(ep->hmax=ac);
 }
 
--- src/cmd/ksh93/sh/name.c
+++ src/cmd/ksh93/sh/name.c     2011-08-30 15:55:30.900426385 +0000
@@ -967,7 +967,8 @@ Namval_t *nv_create(const char *name,  D
                        if(c=='.' && (cp[1]==0 ||  cp[1]=='=' || cp[1]=='+'))
                        {
                                nv_local = 1;
-                               nv_onattr(np,nofree);
+                               if (np)
+                                       nv_onattr(np,nofree);
                                return(np);
                        }
                        if(cp[-1]=='.')
++++++ ksh93-shift_ijs.dif ++++++
--- /var/tmp/diff_new_pack.2LTE7n/_old  2011-11-18 15:46:11.000000000 +0100
+++ /var/tmp/diff_new_pack.2LTE7n/_new  2011-11-18 15:46:11.000000000 +0100
@@ -8,7 +8,7 @@
  #include      <errno.h>
  #include      <ccode.h>
  #include      "FEATURE/options"
-@@ -56,8 +57,20 @@ static char CURSOR_UP[20] = { ESC, '[',
+@@ -57,8 +58,20 @@ static char KILL_LINE[20] = { ESC, '[',
  
  
  #if SHOPT_MULTIBYTE
@@ -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)
-@@ -1473,11 +1477,19 @@ static void setcursor(register Emacs_t *
+@@ -1559,11 +1563,19 @@ static void setcursor(register Emacs_t *
  #if SHOPT_MULTIBYTE
  static int print(register int c)
  {
@@ -106,8 +106,8 @@
      static int _isalph(int);
      static int _ismetach(int);
 --- src/cmd/ksh93/sh/io.c
-+++ src/cmd/ksh93/sh/io.c      2010-06-28 16:09:09.174925785 +0200
-@@ -1367,6 +1367,7 @@ static int io_heredoc(Shell_t *shp,regis
++++ 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
                if(traceon)
                        sfprintf(sfstderr,"< %s\n",name);
                sfputr(outfile,name,'\n');
@@ -116,110 +116,8 @@
        else
        {
 --- src/cmd/ksh93/sh/macro.c
-+++ src/cmd/ksh93/sh/macro.c   2011-06-10 08:20:29.451926367 +0000
-@@ -51,6 +51,8 @@
- 
- #if !SHOPT_MULTIBYTE
- #define mbchar(p)       (*(unsigned char*)p++)
-+#else
-+#define mb2wc(w,p,n)  (*ast.mb_towc)(&w,(char*)p,n)
- #endif
- 
- static int    _c_;
-@@ -494,7 +496,7 @@ static void copyto(register Mac_t *mp,in
-                                       int             i;
-                                       unsigned char   mb[8];
- 
--                                      n = wctomb((char*)mb, c);
-+                                      n = mbconv((char*)mb, c);
-                                       for(i=0;i<n;i++)
-                                               sfputc(stkp,mb[i]);
-                               }
-@@ -1908,6 +1910,9 @@ static void comsubst(Mac_t *mp,register
-       struct _mac_            savemac;
-       int                     savtop = stktell(stkp);
-       char                    lastc, *savptr = stkfreeze(stkp,0);
-+#if SHOPT_MULTIBYTE
-+      wchar_t                 lastw;
-+#endif
-       int                     was_history = sh_isstate(SH_HISTORY);
-       int                     was_verbose = sh_isstate(SH_VERBOSE);
-       int                     was_interactive = sh_isstate(SH_INTERACTIVE);
-@@ -2025,6 +2030,9 @@ static void comsubst(Mac_t *mp,register
-       stkset(stkp,savptr,savtop);
-       newlines = 0;
-       lastc = 0;
-+#if SHOPT_MULTIBYTE
-+      lastw = 0;
-+#endif
-       sfsetbuf(sp,(void*)sp,0);
-       bufsize = sfvalue(sp);
-       /* read command substitution output and put on stack or here-doc */
-@@ -2075,6 +2083,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
-                       mac_copy(mp,&lastc,1);
-                       lastc = 0;
-               }
-@@ -2083,8 +2102,22 @@ static void comsubst(Mac_t *mp,register
-                       str[c] = 0;
-               else
-               {
-+                      ssize_t len = 1;
-+
-                       /* can't write past buffer so save last character */
--                      lastc = str[--c];
-+#if SHOPT_MULTIBYTE
-+                      if ((len = mbsize(str))>1)
-+                      {
-+                              len = mb2wc(lastw,str,len);
-+                              if (len < 0)
-+                              {
-+                                      lastw = 0;
-+                                      len = 1;
-+                              }
-+                      }
-+#endif
-+                      c -= len;
-+                      lastc = str[c];
-                       str[c] = 0;
-               }
-               mac_copy(mp,str,c);
-@@ -2102,7 +2135,21 @@ static void comsubst(Mac_t *mp,register
-                       sfnputc(stkp,'\n',newlines);
-       }
-       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
-               mac_copy(mp,&lastc,1);
-+              lastc = 0;
-+      }
-       sfclose(sp);
-       return;
- }
-@@ -2173,13 +2220,13 @@ static void mac_copy(register Mac_t *mp,
++++ 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,
                if(mp->pattern)
                {
                        char *sp = "&|()";
@@ -347,15 +245,17 @@
  #define STUB  1
 --- src/lib/libast/features/wchar
 +++ src/lib/libast/features/wchar      2007-12-20 17:50:28.000000000 +0000
-@@ -1,5 +1,6 @@
- set   prototyped
+@@ -7,7 +7,8 @@ cat{
+       #define _AST_WCHAR_H    1
+ }end
+ 
 -lib   mbstowcs,wctomb,wcrtomb,wcslen,wcstombs,wcwidth stdlib.h stdio.h wchar.h
 +lib   mbstowcs,wctomb,wcrtomb,wcslen,wcstombs,wcscpy,wcwidth stdlib.h stdio.h 
wchar.h wctype.h
 +lib   iswprint,iswalpha,iswalnum,iswdigit,iswcntrl stdlib.h stdio.h ctype.h 
wctype.h
  lib   towlower,towupper stdlib.h stdio.h wchar.h
  typ   mbstate_t stdlib.h stdio.h wchar.h
  nxt   wchar
-@@ -31,6 +32,12 @@ cat <<!
+@@ -64,6 +65,12 @@ cat <<!
        #undef  putwc
        #undef  putwchar
        #undef  ungetwc
@@ -368,7 +268,7 @@
  
        #define fgetwc          _ast_fgetwc
        #define fgetws          _ast_fgetws
-@@ -81,6 +88,12 @@ cat <<!
+@@ -114,6 +121,12 @@ cat <<!
        #if !_lib_wcstombs
        extern size_t           wcstombs(char*, const wchar_t*, size_t);
        #endif
@@ -382,18 +282,19 @@
        extern int              fwprintf(FILE*, const wchar_t*, ...);
        extern int              fwscanf(FILE*, const wchar_t*, ...);
 --- src/lib/libast/include/ast.h
-+++ src/lib/libast/include/ast.h       2010-06-25 12:35:11.542927316 +0200
-@@ -186,14 +186,23 @@ typedef struct
- #define mbcoll()      (ast.mb_xfrm!=0)
++++ src/lib/libast/include/ast.h       2010-08-17 15:09:21.000000000 +0000
+@@ -185,8 +185,6 @@ typedef struct
  #define mbwide()      (mbmax()>1)
  
+ #define mb2wc(w,p,n)  (*ast.mb_towc)(&w,(char*)p,n)
 -#define mbchar(p)     
(mbwide()?((ast.tmp_int=(*ast.mb_towc)(&ast.tmp_wchar,(char*)(p),mbmax()))>0?((p+=ast.tmp_int),ast.tmp_wchar):(p+=ast.mb_sync+1,ast.tmp_int)):(*(unsigned
 char*)(p++)))
 -#define mbnchar(p,n)  
(mbwide()?((ast.tmp_int=(*ast.mb_towc)(&ast.tmp_wchar,(char*)(p),n))>0?((p+=ast.tmp_int),ast.tmp_wchar):(p+=ast.mb_sync+1,ast.tmp_int)):(*(unsigned
 char*)(p++)))
  #define mbinit()      
(mbwide()?(*ast.mb_towc)((wchar_t*)0,(char*)0,mbmax()):0)
  #define mbsize(p)     (mbwide()?(*ast.mb_len)((char*)(p),mbmax()):((p),1))
- #define mbconv(s,w)   (ast.mb_conv?(*ast.mb_conv)(s,w):((*(s)=(w)),1))
- #define mbwidth(w)    
(ast.mb_width&&((ast.tmp_int=(*ast.mb_width)(w))>=0||(w)>UCHAR_MAX)?ast.tmp_int:1)
+ #define mbnsize(p,n)  (mbwide()?(*ast.mb_len)((char*)(p),n):((p),1))
+@@ -195,6 +193,17 @@ typedef struct
  #define mbxfrm(t,f,n) (mbcoll()?(*ast.mb_xfrm)((char*)(t),(char*)(f),n):0)
+ #define mbalpha(w)    (ast.mb_alpha?(*ast.mb_alpha)(w):isalpha((w)&0xff))
  
 +#define mbchar(p)     (mbwide() ? \
 +                              
(((ast.tmp_int=(*ast.mb_towc)(&ast.tmp_wchar,(char*)(p),mbmax()))>0) ? \
@@ -420,13 +321,13 @@
  #include <stk.h>
  
 --- src/lib/libcmd/Mamfile
-+++ src/lib/libcmd/Mamfile     2007-12-20 18:51:50.000000000 +0100
-@@ -496,7 +496,7 @@ make cat.o
++++ src/lib/libcmd/Mamfile     2011-05-20 13:40:30.643926303 +0000
+@@ -508,7 +508,7 @@ make cat.o
  prev cat.c
- meta cat.o %.c>%.o ${PACKAGEROOT}/src/lib/libcmd/cat.c cat
+ 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 
<g...@research.att.com>][-author?David Korn 
<d...@research.att.com>][-copyright?Copyright (c) 1992-2010 AT&T Intellectual 
Property][-license?http://www.opensource.org/licenses/cpl1.0.txt][--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 
<g...@research.att.com>][-author?David Korn 
<d...@research.att.com>][-copyright?Copyright (c) 1992-2010 AT&T Intellectual 
Property][-license?http://www.opensource.org/licenses/cpl1.0.txt][--catalog?libcmd]"\";
 -D_BLD_cmd -D_PACKAGE_ast -DSHOPT_MULTIBYTE -c cat.c
+-exec - ${CC} ${mam_cc_FLAGS} ${CCFLAGS} -I. -I${PACKAGE_ast_INCLUDE} 
-DERROR_CATALOG=\""libcmd"\" -DUSAGE_LICENSE=\""[-author?Glenn Fowler 
<g...@research.att.com>][-author?David Korn 
<d...@research.att.com>][-copyright?Copyright (c) 1992-2011 AT&T Intellectual 
Property][-license?http://www.opensource.org/licenses/cpl1.0.txt][--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 
<g...@research.att.com>][-author?David Korn 
<d...@research.att.com>][-copyright?Copyright (c) 1992-2011 AT&T Intellectual 
Property][-license?http://www.opensource.org/licenses/cpl1.0.txt][--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.2LTE7n/_old  2011-11-18 15:46:11.000000000 +0100
+++ /var/tmp/diff_new_pack.2LTE7n/_new  2011-11-18 15:46:11.000000000 +0100
@@ -9,25 +9,6 @@
  #include      "shtable.h"
  #include      "fault.h"
  
---- src/cmd/ksh93/sh/jobs.c
-+++ src/cmd/ksh93/sh/jobs.c    2010-03-03 14:17:34.812626467 +0100
-@@ -279,7 +279,7 @@ int job_reap(register int sig)
-               }
-               pid = waitpid((pid_t)-1,&wstat,flags);
-               sh_offstate(SH_TTYWAIT);
--
-+#ifdef WCONTINUED
-               /*
-                * some systems (linux 2.6) may return EINVAL
-                * when there are no continued children
-@@ -287,6 +287,7 @@ int job_reap(register int sig)
- 
-               if (pid<0 && errno==EINVAL && (flags&WCONTINUED))
-                       pid = waitpid((pid_t)-1,&wstat,flags&=~WCONTINUED);
-+#endif
-               sh_sigcheck();
-               if(pid<0 && errno==EINTR && (sig||job.savesig))
-                       continue;
 --- 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

++++++ ksh93-test.dif ++++++
--- /var/tmp/diff_new_pack.2LTE7n/_old  2011-11-18 15:46:11.000000000 +0100
+++ /var/tmp/diff_new_pack.2LTE7n/_new  2011-11-18 15:46:11.000000000 +0100
@@ -1,6 +1,6 @@
 --- src/cmd/ksh93/bltins/test.c
-+++ src/cmd/ksh93/bltins/test.c        2007-01-12 12:19:48.000000000 +0000
-@@ -59,12 +59,12 @@ typedef unsigned long Time_t;
++++ src/cmd/ksh93/bltins/test.c        2011-05-20 13:45:24.547925980 +0000
+@@ -46,12 +46,12 @@
  #ifdef S_ISSOCK
  #   if _pipe_socketpair
  #       if _socketpair_shutdown_mode
@@ -16,7 +16,7 @@
  #   endif
  #   define isasock(f,p) (test_stat(f,p)>=0&&S_ISSOCK((p)->st_mode))
  #else
-@@ -99,7 +99,7 @@ static int test_strmatch(const char *str
+@@ -86,7 +86,7 @@ static int test_strmatch(Shell_t *shp,co
        int match[2*(MATCH_MAX+1)],n;
        register int c, m=0;
        register const char *cp=pat; 
@@ -25,9 +25,9 @@
        {
                if(c=='(')
                        m++;
-@@ -436,7 +436,7 @@ int test_unop(register int op,register c
+@@ -460,7 +460,7 @@ int test_unop(Shell_t *shp,register int
  
- int test_binop(register int op,const char *left,const char *right)
+ int test_binop(Shell_t *shp,register int op,const char *left,const char 
*right)
  {
 -      register double lnum,rnum;
 +      register double lnum = 0, rnum = 0;

++++++ ksh93-unset-f.dif ++++++
--- /var/tmp/diff_new_pack.2LTE7n/_old  2011-11-18 15:46:11.000000000 +0100
+++ /var/tmp/diff_new_pack.2LTE7n/_new  2011-11-18 15:46:11.000000000 +0100
@@ -1,7 +1,7 @@
 --- src/cmd/ksh93/sh/xec.c
-+++ src/cmd/ksh93/sh/xec.c     2011-07-04 15:09:52.252426415 +0000
-@@ -2780,7 +2780,8 @@ int sh_funscope(int argn, char *argv[],i
-       jmpval = sigsetjmp(buff.buff,0);
++++ src/cmd/ksh93/sh/xec.c     2011-07-04 15:42:20.779925941 +0000
+@@ -3294,7 +3294,8 @@ int sh_funscope(int argn, char *argv[],i
+       shp->st.var_local = shp->var_tree;
        if(!fun)
        {
 -              shp->st.filename = fp->node->nvalue.rp->fname;

++++++ ksh93.dif ++++++
--- /var/tmp/diff_new_pack.2LTE7n/_old  2011-11-18 15:46:11.000000000 +0100
+++ /var/tmp/diff_new_pack.2LTE7n/_new  2011-11-18 15:46:11.000000000 +0100
@@ -1,14 +1,3 @@
---- src/cmd/ksh93/sh.1
-+++ src/cmd/ksh93/sh.1 2008-09-22 12:11:56.000000000 +0000
-@@ -201,7 +201,7 @@ separated by
- .BR \(bv .
- The standard output of each command but the last
- is connected by a
--.IR pipe (2)
-+.IR socketpair (2)
- to the standard input of the next command.
- Each command,
- except possibly the last,
 --- 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 };
@@ -79,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
-@@ -186,7 +186,7 @@ const char e_bash_login[]  = "$HOME/.bash
+@@ -199,7 +199,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
@@ -110,41 +99,32 @@
        option UCB $?
  }end
  
---- src/cmd/ksh93/sh/io.c
-+++ src/cmd/ksh93/sh/io.c      2008-09-11 15:16:16.000000000 +0000
-@@ -641,6 +641,7 @@ int sh_close(register int fd)
- 
- #ifdef O_SERVICE
- 
-+#ifdef O_SERVICE
- static int
- onintr(struct addrinfo* addr, void* handle)
- {
-@@ -656,6 +657,7 @@ onintr(struct addrinfo* addr, void* hand
-               sh_chktrap();
-       return 0;
- }
-+#endif
- 
- #endif
- 
+--- src/cmd/ksh93/sh.1
++++ src/cmd/ksh93/sh.1 2008-09-22 12:11:56.000000000 +0000
+@@ -200,7 +200,7 @@ separated by
+ .BR \(bv .
+ The standard output of each command but the last
+ is connected by a
+-.IR pipe (2)
++.IR socketpair (2)
+ to the standard input of the next command.
+ Each command,
+ except possibly the last,
 --- src/cmd/ksh93/sh/lex.c
-+++ src/cmd/ksh93/sh/lex.c     2010-04-08 07:13:26.070925225 +0000
-@@ -1082,11 +1082,13 @@ int sh_lex(Lex_t* lp)
-                                       }
-                                       /* backward compatibility */
-                                       {
-+                                              register const char * cp;
-                                               if(lp->lexd.warn)
-                                                       
errormsg(SH_DICT,ERROR_warn(0),e_lexnested,shp->inlineno);
++++ src/cmd/ksh93/sh/lex.c     2010-08-17 14:49:14.000000000 +0000
+@@ -1136,7 +1136,11 @@ int sh_lex(Lex_t* lp)
                                                if(!(state=lp->lexd.first))
                                                        state = fcfirst();
--                                              fcseek(state-fcseek(0));
-+                                              cp = fcseek(0);
-+                                              fcseek(state-cp);
-                                               if(lp->arg)
-                                               {
-                                                       lp->arg = (struct 
argnod*)stkfreeze(stkp,1);
+                                               else
+-                                                      fcseek(state-fcseek(0));
++                                              {
++                                                      register const char * 
cp;
++                                                      cp = fcseek(0);
++                                                      fcseek(state-cp);
++                                              }
+                                               lp->lexd.paren = 1;
+                                       }
+                                       return(lp->token=LPAREN);
 --- 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,
@@ -159,7 +139,7 @@
  #endif
  
  int sh_main(int ac, char *av[], Shinit_f userinit)
-@@ -198,7 +198,7 @@ int sh_main(int ac, char *av[], Shinit_f
+@@ -199,7 +199,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
@@ -205,10 +185,19 @@
  for v in ${v//,/ }
  do    v=${v#*:}
 --- src/cmd/ksh93/tests/locale.sh
-+++ src/cmd/ksh93/tests/locale.sh      2009-12-09 13:01:41.000000000 +0000
-@@ -135,11 +135,11 @@ set -- $($SHELL -c "
++++ src/cmd/ksh93/tests/locale.sh      2011-05-24 16:46:02.000000000 +0200
+@@ -62,7 +62,7 @@ done
+ # this locale is supported by ast on all platforms
+ # EU for { decimal_point="," thousands_sep="." }
+ 
+-locale=C_EU.UTF-8
++locale=de_DE.UTF-8
+ 
+ export LC_ALL=C
+ 
+@@ -111,11 +111,11 @@ set -- $($SHELL -c "
        unset LC_CTYPE
-       export LANG=$utf_8
+       export LANG=$locale
        export LC_ALL=C
 -      command wc -C < $tmp/two_euro_chars.txt
 +      command wc -m < $tmp/two_euro_chars.txt
@@ -221,6 +210,21 @@
  ")
  got=$*
  [[ $got == $exp ]] || err_exit "command wc LC_ALL default failed -- expected 
'$exp', got '$got'"
+@@ -124,11 +124,11 @@ set -- $($SHELL -c "
+       then    unset LC_CTYPE
+               export LANG=$locale
+               export LC_ALL=C
+-              wc -C < $tmp/two_euro_chars.txt
++              wc -m < $tmp/two_euro_chars.txt
+               unset LC_ALL
+-              wc -C < $tmp/two_euro_chars.txt
++              wc -m < $tmp/two_euro_chars.txt
+               export LC_ALL=C
+-              wc -C < $tmp/two_euro_chars.txt
++              wc -m < $tmp/two_euro_chars.txt
+       fi
+ ")
+ got=$*
 --- src/cmd/ksh93/tests/path.sh
 +++ src/cmd/ksh93/tests/path.sh        2008-09-11 16:02:46.000000000 +0000
 @@ -269,7 +269,7 @@ builtin getconf
@@ -233,30 +237,20 @@
  PATH=$path
  
 --- src/cmd/ksh93/tests/signal.sh
-+++ src/cmd/ksh93/tests/signal.sh      2010-03-05 13:01:05.944126021 +0000
-@@ -286,9 +286,9 @@ yes=$(whence -p yes)
- do { $SHELL <<- EOF
-               foo() { return 0; }
-               trap foo EXIT
--              { sleep 2; kill -$exp \$\$; sleep 3; kill -0 \$\$ && kill -KILL 
\$\$; } &
-+              { sleep 2; kill -$exp \$\$; sleep 8; kill -0 \$\$ && kill -KILL 
\$\$; } &
-               $yes | while read yes; do
--                      (/bin/date; sleep .1)
-+                      (/bin/date; sleep .01)
-               done > /dev/null
-       EOF
-     } 2>> /dev/null
---- src/cmd/ksh93/tests/timetype.sh
-+++ src/cmd/ksh93/tests/timetype.sh    2011-05-25 07:45:35.763926377 +0000
-@@ -58,7 +58,7 @@
- [[ ${tt[0]} == *+00:00 ]] || err_exit 'tt[0] is not yesterday'
- [[ ${tt[1]} == *+00:00 ]] || err_exit 'tt[1] is not today'
- [[ ${tt[2]} == *+00:00 ]] || err_exit 'tt[2] is not tomorrow'
--[[ ${tt[3]} == *+14:00 ]] || err_exit 'tt[0] is not 2pm'
-+[[ ${tt[3]} == *+14:00 ]] || err_exit 'tt[3] is not 2pm'
- unset tt
- Time_t tt=('2008-08-11+00:00:00,yesterday' '2008-08-11+00:00:00,today' 
'2008-08-11+00:00:00,tomorrow')
- tt[3]=9am
++++ src/cmd/ksh93/tests/signal.sh      2011-05-20 13:25:48.196426330 +0000
+@@ -285,10 +285,10 @@ then     for exp in TERM VTALRM PIPE
+                               $SHELL <<- EOF
+                               foo() { return 0; }
+                               trap foo EXIT
+-                              { sleep 2; kill -$exp \$\$; sleep 3; kill -0 
\$\$ && kill -KILL \$\$; } &
++                              { sleep 2; kill -$exp \$\$; sleep 8; kill -0 
\$\$ && kill -KILL \$\$; } &
+                               $yes |
+                               while read yes
+-                              do      (/bin/date; sleep .1)
++                              do      (/bin/date; sleep .01)
+                               done > /dev/null
+                               EOF
+                       } 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)
@@ -290,7 +284,7 @@
  #include "FEATURE/lib"
 --- src/lib/libast/features/lib
 +++ src/lib/libast/features/lib        2007-12-20 18:01:26.000000000 +0000
-@@ -517,14 +517,19 @@ tst      lib_utime_now note{ utime works with
+@@ -523,14 +523,19 @@ tst      lib_utime_now note{ utime works with
  }end
  
  tst   cross{
@@ -319,7 +313,7 @@
  
 --- src/lib/libast/misc/procopen.c
 +++ src/lib/libast/misc/procopen.c     2007-12-20 18:01:26.000000000 +0000
-@@ -537,7 +537,7 @@ procopen(const char* cmd, char** argv, c
+@@ -598,7 +598,7 @@ procopen(const char* cmd, char** argv, c
                        if (!fork())
                        {
                                sfsprintf(path, sizeof(path), "%d", getppid());
@@ -340,31 +334,13 @@
  #define S2F_scan      1
  #ifndef elementsof
 --- src/lib/libcmd/chmod.c
-+++ src/lib/libcmd/chmod.c     2007-12-20 18:02:37.000000000 +0000
-@@ -162,7 +162,7 @@ b_chmod(int argc, char** argv, void* con
-       int             notify = 0;
-       int             ignore = 0;
-       int             show = 0;
--#if _lib_lchmod
-+#if !defined(__linux__) && _lib_lchmod
-       int             chlink = 0;
- #endif
-       struct stat     st;
-@@ -186,7 +186,7 @@ b_chmod(int argc, char** argv, void* con
-                       force = 1;
-                       continue;
-               case 'h':
--#if _lib_lchmod
-+#if !defined(__linux__) && _lib_lchmod
-                       chlink = 1;
- #endif
-                       continue;
-@@ -249,7 +249,7 @@ b_chmod(int argc, char** argv, void* con
-               }
-       }
-       chmodf =
++++ 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
+               case FTS_SLNONE:
+                       if (chlink)
+                       {
 -#if _lib_lchmod
 +#if !defined(__linux__) && _lib_lchmod
-               chlink ? lchmod :
- #endif
-               chmod;
+                               chmodf = lchmod;
+                               goto commit;
+ #else

++++++ rpmlintrc ++++++
--- /var/tmp/diff_new_pack.2LTE7n/_old  2011-11-18 15:46:11.000000000 +0100
+++ /var/tmp/diff_new_pack.2LTE7n/_new  2011-11-18 15:46:11.000000000 +0100
@@ -5,3 +5,4 @@
 addFilter(".*devel-file-in-non-devel-package.*/lib/ast/.*\.so")
 addFilter(".*script-without-shebang.*/usr/share/ksh/fun/.*")
 addFilter(".*no-rpm-opt-flags.*ldtest.c.*")
+addFilter(".*invalid-suse-version-check.*")

++++++ workaround-stupid-build-system.diff ++++++
--- /var/tmp/diff_new_pack.2LTE7n/_old  2011-11-18 15:46:11.000000000 +0100
+++ /var/tmp/diff_new_pack.2LTE7n/_new  2011-11-18 15:46:11.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
-@@ -1083,7 +1083,7 @@ case `(getopts '[-][123:xyz]' opt --xyz;
+@@ -1097,7 +1097,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      2008-09-11 14:45:18.000000000 +0000
++++ src/cmd/ksh93/Mamfile      2011-05-20 13:34:19.740425655 +0000
 @@ -7,7 +7,7 @@ setv AR ${mam_cc_AR} ${mam_cc_AR_ARFLAGS
  setv ARFLAGS -cr
  setv AS as
@@ -104,7 +104,7 @@
  setv SILENT
  setv TAR tar
  setv YACC yacc
-@@ -1394,7 +1394,7 @@ prev +ljobs
+@@ -1421,7 +1421,7 @@ prev +ljobs
  prev +li
  prev ${mam_libsocket}
  prev ${mam_libsecdb}
@@ -113,7 +113,7 @@
  done ksh generated
  make shcomp
  make shcomp.o
-@@ -1418,7 +1418,7 @@ prev ${mam_libsocket}
+@@ -1445,7 +1445,7 @@ prev ${mam_libsocket}
  prev ${mam_libsecdb}
  setv CC.DLL -UCC.DLL
  setv SH_DICT -DSH_DICT="\"libshell\""
@@ -123,7 +123,7 @@
  make suid_exec
  make suid_exec.o
 --- src/lib/libast/Mamfile
-+++ src/lib/libast/Mamfile     2010-06-28 15:41:28.482925307 +0200
++++ src/lib/libast/Mamfile     2010-08-17 15:00:56.000000000 +0000
 @@ -5,7 +5,7 @@ setv AR ${mam_cc_AR} ${mam_cc_AR_ARFLAGS
  setv ARFLAGS -cr
  setv AS as
@@ -142,7 +142,7 @@
  setv SILENT
  setv TAR tar
  setv YACC yacc
-@@ -961,7 +961,7 @@ make lcgen
+@@ -995,7 +995,7 @@ make lcgen
  make port/lcgen.c
  prev std/stdio.h implicit
  done port/lcgen.c
@@ -151,8 +151,8 @@
  done lcgen generated
  make port/lc.tab
  done port/lc.tab
-@@ -7165,58 +7165,31 @@ exec - test '' = 'misc/magic.tab' || ${S
- done ${INSTALLROOT}/lib/file/magic generated
+@@ -7258,64 +7258,37 @@ done ${INSTALLROOT}/lib/file/magic gener
+ make ${INSTALLROOT}/include/ast/fmtmsg.h
  prev comp/fmtmsg.h
  prev ast_lib.h
 -exec - case ${mam_cc_HOSTTYPE} in
@@ -173,6 +173,9 @@
 -exec -        ;;
 -exec - esac
 +exec - }
+ 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
@@ -193,6 +196,9 @@
 -exec -        ;;
 -exec - esac
 +exec - }
+ 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
@@ -213,9 +219,9 @@
 -exec -        ;;
 -exec - esac
 +exec - }
- make ${INSTALLROOT}/include/ast/prototyped.h
- prev ${INSTALLROOT}/include/ast
- exec - echo "#include <../prototyped.h>" > 1.${COTEMP}.x
+ prev ast_namval.h implicit
+ prev ${INSTALLROOT}/include/prototyped.h implicit
+ done ${INSTALLROOT}/include/ast/syslog.h generated
 --- src/lib/libcmd/Mamfile
 +++ src/lib/libcmd/Mamfile     2008-02-14 12:08:37.000000000 +0000
 @@ -7,7 +7,7 @@ setv AR ${mam_cc_AR} ${mam_cc_AR_ARFLAGS

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to