From 1285f22b6a6835502655141b51090776d0bd3d45908c0183374b58ce82fbf572 Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Mon, 5 May 2008 23:33:47 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/ksh?expand=0&rev=17 --- ksh.changes | 5 +++++ ksh.spec | 5 ++++- ksh93.dif | 30 +++++++++++++++++++++--------- 3 files changed, 30 insertions(+), 10 deletions(-) diff --git a/ksh.changes b/ksh.changes index 4a2a1a1..84ff947 100644 --- a/ksh.changes +++ b/ksh.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Mon May 5 13:23:13 CEST 2008 - werner@suse.de + +- Fix patch for option handling of echo builtin (bnc#385986) + ------------------------------------------------------------------- Tue Mar 25 12:22:48 CET 2008 - werner@suse.de diff --git a/ksh.spec b/ksh.spec index affe4f5..c8dcafa 100644 --- a/ksh.spec +++ b/ksh.spec @@ -22,7 +22,7 @@ Group: System/Shells PreReq: /bin/ln /bin/rm /etc/bash.bashrc /bin/true AutoReqProv: on Version: 93s -Release: 98 +Release: 107 Summary: Korn Shell BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: INIT.2008-02-02.tar.bz2 @@ -59,6 +59,7 @@ Authors: Phong Vo %package -n ksh-devel +License: Common Public License Version 1.0 (CPL1.0) Summary: Korn Shell development environment Group: Development/Libraries/C and C++ Requires: ksh = %{version}-%{release} @@ -319,6 +320,8 @@ fi %{_includedir}/ast/ %changelog +* Mon May 05 2008 werner@suse.de +- Fix patch for option handling of echo builtin (bnc#385986) * Tue Mar 25 2008 werner@suse.de - Add missing link to file list * Mon Mar 17 2008 werner@suse.de diff --git a/ksh93.dif b/ksh93.dif index e86bb8e..e084f28 100644 --- a/ksh93.dif +++ b/ksh93.dif @@ -1,5 +1,5 @@ --- src/cmd/ksh93/bltins/print.c -+++ src/cmd/ksh93/bltins/print.c 2007-12-20 19:01:26.144481714 +0100 ++++ src/cmd/ksh93/bltins/print.c 2008-05-05 11:20:21.000000000 +0000 @@ -103,7 +103,11 @@ static int outexceptf(Sfio_t* iop, int m { static char bsd_univ; @@ -13,41 +13,53 @@ prdata.raw = prdata.echon = 0; prdata.sh = (Shell_t*)extra; NOT_USED(argc); -@@ -116,7 +120,40 @@ static int outexceptf(Sfio_t* iop, int m +@@ -116,7 +120,52 @@ static int outexceptf(Sfio_t* iop, int m prdata.sh->universe = 1; } if(!bsd_univ) + { +# if defined(__linux__) + char *opt = argv[1]; -+ while ((opt = argv[1]) && (*opt++ == '-')) ++ while ((opt = argv[1]) && (*opt == '-')) + { -+ int c, inc = 0; ++ int c; ++ ++ opt++; ++ ++ for (c = 0; opt[c]; c++) ++# if !SHOPT_ECHOE ++ if (strchr("neE", opt[c]) == 0) ++# else ++ if (strchr("n", opt[c]) == 0) ++# endif /* SHOPT_ECHOE */ ++ break; ++ ++ if (*opt == 0 || opt[c]) ++ break; ++ + while ((c = *opt++)) + { + switch (c) { + case 'n': + prdata.echon = 1; -+ inc++; + break; +# if !SHOPT_ECHOE + case 'e': + prdata.raw = 0; -+ inc++; + break; + case 'E': + prdata.raw = 1; -+ inc++; + break; +# endif /* SHOPT_ECHOE */ + default: ++ goto out; + break; + } + } -+ if (!inc) -+ break; ++ + argv++; + } ++ out: +# endif return(b_print(0,argv,&prdata)); + }