OBS User unknown 2008-05-05 23:33:47 +00:00 committed by Git OBS Bridge
parent a444951d99
commit 1285f22b6a
3 changed files with 30 additions and 10 deletions

View File

@ -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

View File

@ -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 <kpv@research.att.com>
%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

View File

@ -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));
+ }