Hello community,
here is the log from the commit of package bash for openSUSE:Factory
checked in at Fri Jun 5 22:32:28 CEST 2009.
--------
--- bash/bash.changes 2009-05-11 10:21:36.000000000 +0200
+++ bash/bash.changes 2009-06-03 15:19:28.000000000 +0200
@@ -1,0 +2,13 @@
+Wed Jun 3 12:16:43 CEST 2009 - werner@suse.de
+
+- Enforce the usage of euidaccess(3) instead of stat(2) for testing
+ permissions for a file (bnc#509105)
+
+-------------------------------------------------------------------
+Mon May 25 14:09:03 CEST 2009 - werner@suse.de
+
+- Update to newest patch level 24:
+ * include last few patches
+- Add patches from mailing list for globstar expansion
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
bash-4.0.10-bar-and-piping.patch
bash-4.0.17-globstar2.patch
bash-4.0.17-globstar.dif
readline-6.0-display-clear-to-eol.patch
readline-6.0-promptlen-screenwidth.patch
readline-6.0-redisplay-sigwinch.patch
New:
----
bash-4.0.24-globstar-nulldir.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ bash.spec ++++++
--- /var/tmp/diff_new_pack.a16280/_old 2009-06-05 22:30:23.000000000 +0200
+++ /var/tmp/diff_new_pack.a16280/_new 2009-06-05 22:30:23.000000000 +0200
@@ -27,7 +27,7 @@
Suggests: command-not-found
AutoReqProv: on
Version: 4.0
-Release: 10
+Release: 11
Summary: The GNU Bourne-Again Shell
Url: http://www.gnu.org/software/bash/bash.html
Source0: ftp://ftp.gnu.org/gnu/bash/bash-%{bash_vers}.tar.bz2
@@ -57,13 +57,8 @@
Patch22: readline-6.0-wrap.patch
Patch23: readline-5.2-conf.patch
Patch30: readline-6.0-destdir.patch
-Patch40: bash-4.0.10-bar-and-piping.patch
-Patch42: bash-4.0.10-typo.patch
-Patch43: readline-6.0-redisplay-sigwinch.patch
-Patch44: readline-6.0-display-clear-to-eol.patch
-Patch45: bash-4.0.17-globstar.dif
-Patch46: readline-6.0-promptlen-screenwidth.patch
-Patch47: bash-4.0.17-globstar2.patch
+Patch40: bash-4.0.10-typo.patch
+Patch41: bash-4.0.24-globstar-nulldir.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%global _sysconfdir /etc
%global _incdir %{_includedir}
@@ -91,7 +86,7 @@
Provides: bash:%{_infodir}/bash.info.gz
PreReq: %install_info_prereq
Version: 4.0
-Release: 10
+Release: 11
AutoReqProv: on
%description -n bash-doc
@@ -111,7 +106,7 @@
Group: System/Libraries
Provides: bash:/%{_lib}/libreadline.so.%{rl_major}
Version: 6.0
-Release: 10
+Release: 11
Recommends: readline-doc = %{version}
# bug437293
%ifarch ppc64
@@ -140,7 +135,7 @@
Group: Development/Libraries/C and C++
Provides: bash:%{_libdir}/libreadline.a
Version: 6.0
-Release: 10
+Release: 11
Requires: libreadline6 = %{version}
Requires: ncurses-devel
Recommends: readline-doc = %{version}
@@ -169,7 +164,7 @@
Provides: readline:%{_infodir}/readline.info.gz
PreReq: %install_info_prereq
Version: 6.0
-Release: 10
+Release: 11
AutoReqProv: on
%description -n readline-doc
@@ -189,6 +184,9 @@
test -e $p || break
echo Patch $p
patch -s -p0 < $p
+ grep -q '^--- lib/readline/' $p || continue
+ sed -r '\@^\*\*\*[[:blank:]][^[:blank:]]*patchlevel.h@,\@^\*\*\*[[:blank:]][^[:digit:]]@d' < $p | \
+ patch -d ../readline-%{rl_vers}/ -s -p2
done
unset p
%patch1 -p0 -b .manual
@@ -207,10 +205,8 @@
%patch21 -p0 -b .zerotty
%patch22 -p0 -b .wrap
%patch23 -p0 -b .conf
-%patch40 -p0 -b .pipe
-%patch42 -p0 -b .typo
-%patch45 -p0 -b .globstar
-%patch47 -p0 -b .globstar2
+%patch40 -p0 -b .typo
+%patch41 -p0 -b .globstar
%patch0 -p0
cd ../readline-%{rl_vers}
for p in ../readline-%{rl_vers}-patches/*; do
@@ -222,9 +218,6 @@
%patch22 -p2 -b .wrap
%patch23 -p2 -b .conf
%patch30 -p0 -b .destdir
-%patch43 -p0 -b .sigwinch
-%patch44 -p0 -b .cleartoeol
-%patch46 -p0 -b .promptlen
%patch20 -p0
%build
@@ -330,6 +323,8 @@
--infodir=%{_infodir} \
--libdir=%{_libdir} \
--with-curses \
+ --with-afs \
+ $SYSMALLOC \
--enable-minimal-config \
--enable-arith-for-command \
--enable-array-variables \
@@ -358,6 +353,7 @@
--infodir=%{_infodir} \
--libdir=%{_libdir} \
--with-curses \
+ --with-afs \
$SYSMALLOC \
--enable-job-control \
--enable-alias \
@@ -496,6 +492,10 @@
%doc %{_mandir}/man1/bashbug.1.gz
%doc %{_mandir}/man1/rbash.1.gz
%doc %{_defaultdocdir}/bash/
+#%files -n bash-plugins
+#%defattr(-,root,root)
+#%dir /%{_lib}/bash/%{version}/
+#/%{_lib}/bash/%{version}/*.so
%files -n libreadline6
%defattr(-,root,root)
@@ -520,6 +520,13 @@
%doc %{_defaultdocdir}/readline/
%changelog
+* Wed Jun 03 2009 werner@suse.de
+- Enforce the usage of euidaccess(3) instead of stat(2) for testing
+ permissions for a file (bnc#509105)
+* Mon May 25 2009 werner@suse.de
+- Update to newest patch level 24:
+ * include last few patches
+- Add patches from mailing list for globstar expansion
* Mon May 11 2009 werne@suse.de
- Increase size of hash table for runtime linker a lot
* Mon Apr 27 2009 werne@suse.de
++++++ bash-4.0.24-globstar-nulldir.patch ++++++
| Matt Zyzik wrote:
| > All,
| >
| > Previously, the behavior of globstar mimicked that of ksh/zsh for such a
| > command: "ls -adl **/*.cs".
| >
| > Now I've upgraded to Bash 4.0.24 from Bash 4.0.17 and the behavior is
| > different (seemingly incorrect). Previously, the above-mentioned command
| > would list all *.cs files in the current directory and all
| > subdirectories. With the latest Bash, it only lists *.cs files in
| > subdirectories. The *.cs files in the current working directory are
| > ignored.
| >
| > I think this is a bug. Again, "ls -adl **/*.cs" is now _not_ picking up
| > *.cs files in the current working directory.
|
| OK. I finally had some time to look at this.
|
| The issue is that you can't always add a null placeholder for the current
| directory (the original bash-4.0 code) or never add one (patch 24). You
| have to add one in certain circumstances, when it gets handled later in
| the process.
|
| Try the attached patch. It undoes portions of patch 24 and uses a
| different scheme to figure out when to add the null placeholder. It
| seems to work for all cases without any regressions.
|
| Chet
|
*** ../bash-4.0-patched/lib/glob/glob.c 2009-05-22 12:32:26.000000000 -0400
--- lib/glob/glob.c 2009-05-22 12:35:55.000000000 -0400
***************
*** 666,672 ****
}
! /* compat: if GX_ALLDIRS, add the passed directory also, but don't add an
! empty directory name. */
! if (add_current && (flags & GX_NULLDIR) == 0)
{
sdlen = strlen (dir);
--- 666,673 ----
}
! /* compat: if GX_ADDCURDIR, add the passed directory also. Add an empty
! directory name as a placeholder if GX_NULLDIR (in which case the passed
! directory name is "."). */
! if (add_current)
{
sdlen = strlen (dir);
***************
*** 680,684 ****
nextlink->next = lastlink;
lastlink = nextlink;
! bcopy (dir, nextname, sdlen + 1);
++count;
}
--- 681,688 ----
nextlink->next = lastlink;
lastlink = nextlink;
! if (flags & GX_NULLDIR)
! nextname[0] = '\0';
! else
! bcopy (dir, nextname, sdlen + 1);
++count;
}
***************
*** 1008,1016 ****
/* Just return what glob_vector () returns appended to the
directory name. */
dflags = flags & ~GX_MARKDIRS;
if (directory_len == 0)
dflags |= GX_NULLDIR;
if ((flags & GX_GLOBSTAR) && filename[0] == '*' && filename[1] == '*' && filename[2] == '\0')
! dflags |= GX_ALLDIRS|GX_ADDCURDIR;
temp_results = glob_vector (filename,
(directory_len == 0 ? "." : directory_name),
--- 1012,1033 ----
/* Just return what glob_vector () returns appended to the
directory name. */
+ /* If flags & GX_ALLDIRS, we're called recursively */
dflags = flags & ~GX_MARKDIRS;
if (directory_len == 0)
dflags |= GX_NULLDIR;
if ((flags & GX_GLOBSTAR) && filename[0] == '*' && filename[1] == '*' && filename[2] == '\0')
! {
! dflags |= GX_ALLDIRS|GX_ADDCURDIR;
! #if 0
! /* If we want all directories (dflags & GX_ALLDIRS) and we're not
! being called recursively as something like `echo **/*.o'
! ((flags & GX_ALLDIRS) == 0), we want to prevent glob_vector from
! adding a null directory name to the front of the temp_results
! array. We turn off ADDCURDIR if not called recursively and
! dlen == 0 */
! #endif
! if (directory_len == 0 && (flags & GX_ALLDIRS) == 0)
! dflags &= ~GX_ADDCURDIR;
! }
temp_results = glob_vector (filename,
(directory_len == 0 ? "." : directory_name),
++++++ bash-4.0.dif ++++++
--- /var/tmp/diff_new_pack.a16280/_old 2009-06-05 22:30:23.000000000 +0200
+++ /var/tmp/diff_new_pack.a16280/_new 2009-06-05 22:30:23.000000000 +0200
@@ -59,6 +59,12 @@
/* Define if you want the case-capitalizing operators (~[~]) and the
`capcase' variable attribute (declare -c). */
+@@ -98,3 +98,5 @@
+ name is not found. If you want to name it something other than the
+ default ("command_not_found_handle"), change it here. */
+ /* #define NOTFOUND_HOOK "command_not_found_handle" */
++
++#define eaccess(path,mode) access(path,mode)
--- general.h
+++ general.h 2006-03-27 14:15:25.000000000 +0200
@@ -21,10 +21,13 @@
++++++ bash-4.0-patches.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/bash-4.0-patches/bash40-018 new/bash-4.0-patches/bash40-018
--- old/bash-4.0-patches/bash40-018 1970-01-01 01:00:00.000000000 +0100
+++ new/bash-4.0-patches/bash40-018 2009-05-16 22:39:55.000000000 +0200
@@ -0,0 +1,78 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.0
+Patch-ID: bash40-018
+
+Bug-Reported-by: Dan Price
+Bug-Reference-ID: <20090324171502.GA20582@eng.sun.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-03/msg00184.html
+
+Bug-Description:
+
+A missing include file results in an empty function definition and a no-op
+when checking whether or not the window size has changed.
+
+Patch:
+
+*** ../bash-4.0-patched/lib/sh/winsize.c 2008-08-12 13:53:51.000000000 -0400
+--- lib/sh/winsize.c 2009-04-06 10:44:20.000000000 -0400
+***************
+*** 31,44 ****
+ #include
+
+! #if !defined (STRUCT_WINSIZE_IN_SYS_IOCTL)
+! /* For struct winsize on SCO */
+! /* sys/ptem.h has winsize but needs mblk_t from sys/stream.h */
+! # if defined (HAVE_SYS_PTEM_H) && defined (TIOCGWINSZ) && defined (SIGWINCH)
+! # if defined (HAVE_SYS_STREAM_H)
+! # include
+! # endif
+ # include
+! # endif /* HAVE_SYS_PTEM_H && TIOCGWINSZ && SIGWINCH */
+! #endif /* !STRUCT_WINSIZE_IN_SYS_IOCTL */
+
+ #include
+--- 31,57 ----
+ #include
+
+! /* Try to find the definitions of `struct winsize' and TIOGCWINSZ */
+!
+! #if defined (GWINSZ_IN_SYS_IOCTL) && !defined (TIOCGWINSZ)
+! # include
+! #endif /* GWINSZ_IN_SYS_IOCTL && !TIOCGWINSZ */
+!
+! #if defined (STRUCT_WINSIZE_IN_TERMIOS) && !defined (STRUCT_WINSIZE_IN_SYS_IOCTL)
+! # include
+! #endif /* STRUCT_WINSIZE_IN_TERMIOS && !STRUCT_WINSIZE_IN_SYS_IOCTL */
+!
+! /* Not in either of the standard places, look around. */
+! #if !defined (STRUCT_WINSIZE_IN_TERMIOS) && !defined (STRUCT_WINSIZE_IN_SYS_IOCTL)
+! # if defined (HAVE_SYS_STREAM_H)
+! # include
+! # endif /* HAVE_SYS_STREAM_H */
+! # if defined (HAVE_SYS_PTEM_H) /* SVR4.2, at least, has it here */
+ # include
+! # define _IO_PTEM_H /* work around SVR4.2 1.1.4 bug */
+! # endif /* HAVE_SYS_PTEM_H */
+! # if defined (HAVE_SYS_PTE_H) /* ??? */
+! # include
+! # endif /* HAVE_SYS_PTE_H */
+! #endif /* !STRUCT_WINSIZE_IN_TERMIOS && !STRUCT_WINSIZE_IN_SYS_IOCTL */
+
+ #include
+*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500
+--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 17
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 18
+
+ #endif /* _PATCHLEVEL_H_ */
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/bash-4.0-patches/bash40-019 new/bash-4.0-patches/bash40-019
--- old/bash-4.0-patches/bash40-019 1970-01-01 01:00:00.000000000 +0100
+++ new/bash-4.0-patches/bash40-019 2009-05-16 22:40:08.000000000 +0200
@@ -0,0 +1,125 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.0
+Patch-ID: bash40-019
+
+Bug-Reported-by: Oleksiy Melnyk
+Bug-Reference-ID: <20090224142233.D2FEFC004@floyd.upc.ua>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-02/msg00200.html
+
+Bug-Description:
+
+Using an external command as part of the DEBUG trap when job control is
+enabled causes pipelines to misbehave. The problem has to do with process
+groups assigned to the pipeline and terminal.
+
+Patch:
+
+*** ../bash-4.0-patched/jobs.c 2009-01-29 17:09:49.000000000 -0500
+--- jobs.c 2009-04-17 21:08:20.000000000 -0400
+***************
+*** 443,447 ****
+ the_pipeline = saved_pipeline;
+ already_making_children = saved_already_making_children;
+! if (discard)
+ discard_pipeline (old_pipeline);
+ }
+--- 443,447 ----
+ the_pipeline = saved_pipeline;
+ already_making_children = saved_already_making_children;
+! if (discard && old_pipeline)
+ discard_pipeline (old_pipeline);
+ }
+***************
+*** 4203,4205 ****
+--- 4204,4225 ----
+ }
+
++ void
++ save_pgrp_pipe (p, clear)
++ int *p;
++ int clear;
++ {
++ p[0] = pgrp_pipe[0];
++ p[1] = pgrp_pipe[1];
++ if (clear)
++ pgrp_pipe[0] = pgrp_pipe[1] = -1;
++ }
++
++ void
++ restore_pgrp_pipe (p)
++ int *p;
++ {
++ pgrp_pipe[0] = p[0];
++ pgrp_pipe[1] = p[1];
++ }
++
+ #endif /* PGRP_PIPE */
+*** ../bash-4.0-patched/jobs.h 2009-01-04 14:32:29.000000000 -0500
+--- jobs.h 2009-04-17 15:07:51.000000000 -0400
+***************
+*** 236,239 ****
+--- 236,241 ----
+
+ extern void close_pgrp_pipe __P((void));
++ extern void save_pgrp_pipe __P((int *, int));
++ extern void restore_pgrp_pipe __P((int *));
+
+ #if defined (JOB_CONTROL)
+*** ../bash-4.0-patched/trap.c 2009-01-16 17:07:53.000000000 -0500
+--- trap.c 2009-04-17 22:22:36.000000000 -0400
+***************
+*** 799,802 ****
+--- 799,804 ----
+ {
+ int trap_exit_value;
++ pid_t save_pgrp;
++ int save_pipe[2];
+
+ /* XXX - question: should the DEBUG trap inherit the RETURN trap? */
+***************
+*** 804,808 ****
+--- 806,832 ----
+ if ((sigmodes[DEBUG_TRAP] & SIG_TRAPPED) && ((sigmodes[DEBUG_TRAP] & SIG_IGNORED) == 0) && ((sigmodes[DEBUG_TRAP] & SIG_INPROGRESS) == 0))
+ {
++ #if defined (JOB_CONTROL)
++ save_pgrp = pipeline_pgrp;
++ pipeline_pgrp = 0;
++ save_pipeline (1);
++ # if defined (PGRP_PIPE)
++ save_pgrp_pipe (save_pipe, 1);
++ # endif
++ stop_making_children ();
++ #endif
++
+ trap_exit_value = _run_trap_internal (DEBUG_TRAP, "debug trap");
++
++ #if defined (JOB_CONTROL)
++ pipeline_pgrp = save_pgrp;
++ restore_pipeline (1);
++ # if defined (PGRP_PIPE)
++ close_pgrp_pipe ();
++ restore_pgrp_pipe (save_pipe);
++ # endif
++ if (pipeline_pgrp > 0)
++ give_terminal_to (pipeline_pgrp, 1);
++ notify_and_cleanup ();
++ #endif
+
+ #if defined (DEBUGGER)
+*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500
+--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 18
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 19
+
+ #endif /* _PATCHLEVEL_H_ */
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/bash-4.0-patches/bash40-020 new/bash-4.0-patches/bash40-020
--- old/bash-4.0-patches/bash40-020 1970-01-01 01:00:00.000000000 +0100
+++ new/bash-4.0-patches/bash40-020 2009-05-16 22:40:22.000000000 +0200
@@ -0,0 +1,83 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.0
+Patch-ID: bash40-020
+
+Bug-Reported-by: Nicolai Lissner
+Bug-Reference-ID: <20090412020510.GA29658@lilith>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-04/msg00104.html
+
+Bug-Description:
+
+If a SIGWINCH arrives while bash is performing redisplay, multi-line prompts
+are displayed incorrectly due to the display code being called recursively.
+
+Patch:
+
+*** ../bash-4.0-patched/lib/readline/readline.h 2009-01-04 14:32:33.000000000 -0500
+--- lib/readline/readline.h 2009-04-13 08:47:00.000000000 -0400
+***************
+*** 815,820 ****
+ #define RL_STATE_MULTIKEY 0x200000 /* reading multiple-key command */
+ #define RL_STATE_VICMDONCE 0x400000 /* entered vi command mode at least once */
+
+! #define RL_STATE_DONE 0x800000 /* done; accepted line */
+
+ #define RL_SETSTATE(x) (rl_readline_state |= (x))
+--- 815,821 ----
+ #define RL_STATE_MULTIKEY 0x200000 /* reading multiple-key command */
+ #define RL_STATE_VICMDONCE 0x400000 /* entered vi command mode at least once */
++ #define RL_STATE_REDISPLAYING 0x800000 /* updating terminal display */
+
+! #define RL_STATE_DONE 0x1000000 /* done; accepted line */
+
+ #define RL_SETSTATE(x) (rl_readline_state |= (x))
+*** ../bash-4.0-patched/lib/readline/display.c 2009-01-04 14:32:32.000000000 -0500
+--- lib/readline/display.c 2009-04-13 08:29:54.000000000 -0400
+***************
+*** 513,516 ****
+--- 513,517 ----
+ data structures. */
+ _rl_block_sigint ();
++ RL_SETSTATE (RL_STATE_REDISPLAYING);
+
+ if (!rl_display_prompt)
+***************
+*** 1237,1240 ****
+--- 1238,1242 ----
+ }
+
++ RL_UNSETSTATE (RL_STATE_REDISPLAYING);
+ _rl_release_sigint ();
+ }
+*** ../bash-4.0-patched/lib/readline/terminal.c 2009-01-04 14:32:34.000000000 -0500
+--- lib/readline/terminal.c 2009-04-13 08:43:00.000000000 -0400
+***************
+*** 356,360 ****
+ if (CUSTOM_REDISPLAY_FUNC ())
+ rl_forced_update_display ();
+! else
+ _rl_redisplay_after_sigwinch ();
+ }
+--- 356,360 ----
+ if (CUSTOM_REDISPLAY_FUNC ())
+ rl_forced_update_display ();
+! else if (RL_ISSTATE(RL_STATE_REDISPLAYING) == 0)
+ _rl_redisplay_after_sigwinch ();
+ }
+*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500
+--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 19
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 20
+
+ #endif /* _PATCHLEVEL_H_ */
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/bash-4.0-patches/bash40-021 new/bash-4.0-patches/bash40-021
--- old/bash-4.0-patches/bash40-021 1970-01-01 01:00:00.000000000 +0100
+++ new/bash-4.0-patches/bash40-021 2009-05-16 22:40:37.000000000 +0200
@@ -0,0 +1,48 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.0
+Patch-ID: bash40-021
+
+Bug-Reported-by: Matt Zyzik
+Bug-Reference-ID: <20090319015542.696F62B8E8@ice.filescope.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-03/msg00149.html
+
+Bug-Description:
+
+When not in a locale supporting multibyte characters, readline will occasionally
+not erase characters between the cursor position and the end of the line
+when killing text backwards.
+
+Patch:
+
+*** ../bash-4.0-patched/lib/readline/display.c 2009-01-04 14:32:32.000000000 -0500
+--- lib/readline/display.c 2009-04-14 14:00:18.000000000 -0400
+***************
+*** 1775,1779 ****
+ adjust col_lendiff based on the difference between _rl_last_c_pos
+ and _rl_screenwidth */
+! if (col_lendiff && (_rl_last_c_pos < _rl_screenwidth))
+ #endif
+ {
+--- 1775,1779 ----
+ adjust col_lendiff based on the difference between _rl_last_c_pos
+ and _rl_screenwidth */
+! if (col_lendiff && ((MB_CUR_MAX == 1 || rl_byte_oriented) || (_rl_last_c_pos < _rl_screenwidth)))
+ #endif
+ {
+*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500
+--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 20
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 21
+
+ #endif /* _PATCHLEVEL_H_ */
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/bash-4.0-patches/bash40-022 new/bash-4.0-patches/bash40-022
--- old/bash-4.0-patches/bash40-022 1970-01-01 01:00:00.000000000 +0100
+++ new/bash-4.0-patches/bash40-022 2009-05-16 22:40:48.000000000 +0200
@@ -0,0 +1,48 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.0
+Patch-ID: bash40-022
+
+Bug-Reported-by: Bernd Eggink
+Bug-Reference-ID: <49E65407.5010206@sudrala.de>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-04/msg00118.html
+
+Bug-Description:
+
+When parsing case statements in command substitutions, the shell did not
+note that a newline is a shell metacharacter and can legally be followed
+by a reserved word (e.g., `esac').
+
+Patch:
+
+*** ../bash-4.0-patched/parse.y 2009-03-08 21:24:47.000000000 -0400
+--- parse.y 2009-04-15 22:27:56.000000000 -0400
+***************
+*** 3355,3359 ****
+
+ /* Meta-characters that can introduce a reserved word. Not perfect yet. */
+! if MBTEST((tflags & LEX_RESWDOK) == 0 && (tflags & LEX_CKCASE) && (tflags & LEX_INCOMMENT) == 0 && shellmeta(ch))
+ {
+ /* Add this character. */
+--- 3375,3379 ----
+
+ /* Meta-characters that can introduce a reserved word. Not perfect yet. */
+! if MBTEST((tflags & LEX_RESWDOK) == 0 && (tflags & LEX_CKCASE) && (tflags & LEX_INCOMMENT) == 0 && (shellmeta(ch) || ch == '\n'))
+ {
+ /* Add this character. */
+*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500
+--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 21
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 22
+
+ #endif /* _PATCHLEVEL_H_ */
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/bash-4.0-patches/bash40-023 new/bash-4.0-patches/bash40-023
--- old/bash-4.0-patches/bash40-023 1970-01-01 01:00:00.000000000 +0100
+++ new/bash-4.0-patches/bash40-023 2009-05-16 22:41:00.000000000 +0200
@@ -0,0 +1,62 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.0
+Patch-ID: bash40-023
+
+Bug-Reported-by: Andreas Schwab
+Bug-Reference-ID:
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-04/msg00160.html
+
+Bug-Description:
+
+If the prompt length exactly matches the screen width, and the prompt ends
+with invisible characters, readline positions the cursor incorrectly.
+
+Patch:
+
+*** ../bash-4.0-patched/lib/readline/display.c 2009-01-04 14:32:32.000000000 -0500
+--- lib/readline/display.c 2009-04-25 21:42:18.000000000 -0400
+***************
+*** 1895,1898 ****
+--- 1897,1904 ----
+ woff = WRAP_OFFSET (_rl_last_v_pos, wrap_offset);
+ cpos = _rl_last_c_pos;
++
++ if (cpos == 0 && cpos == new)
++ return;
++
+ #if defined (HANDLE_MULTIBYTE)
+ /* If we have multibyte characters, NEW is indexed by the buffer point in
+***************
+*** 1908,1914 ****
+ desired display position. */
+ if ((new > prompt_last_invisible) || /* XXX - don't use woff here */
+! (prompt_physical_chars > _rl_screenwidth &&
+ _rl_last_v_pos == prompt_last_screen_line &&
+! wrap_offset >= woff &&
+ new > (prompt_last_invisible-(_rl_screenwidth*_rl_last_v_pos)-wrap_offset)))
+ /* XXX last comparison might need to be >= */
+--- 1914,1920 ----
+ desired display position. */
+ if ((new > prompt_last_invisible) || /* XXX - don't use woff here */
+! (prompt_physical_chars >= _rl_screenwidth &&
+ _rl_last_v_pos == prompt_last_screen_line &&
+! wrap_offset >= woff && dpos >= woff &&
+ new > (prompt_last_invisible-(_rl_screenwidth*_rl_last_v_pos)-wrap_offset)))
+ /* XXX last comparison might need to be >= */
+*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500
+--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 22
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 23
+
+ #endif /* _PATCHLEVEL_H_ */
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/bash-4.0-patches/bash40-024 new/bash-4.0-patches/bash40-024
--- old/bash-4.0-patches/bash40-024 1970-01-01 01:00:00.000000000 +0100
+++ new/bash-4.0-patches/bash40-024 2009-05-16 22:41:13.000000000 +0200
@@ -0,0 +1,112 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.0
+Patch-ID: bash40-024
+
+Bug-Reported-by: Matt Zyzik
+Bug-Reference-ID: <20090405205428.4FDEA1C7175@ice.filescope.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-04/msg00021.html
+
+Bug-Description:
+
+When using the ** globbing operator, bash will incorrectly add an extra
+directory name when the preceding directory name ends with `*' or an empty
+string when there is no preceding directory name.
+
+Patch:
+
+*** ../bash-4.0-patched/lib/glob/glob.c 2009-01-04 14:32:30.000000000 -0500
+--- lib/glob/glob.c 2009-04-28 10:22:29.000000000 -0400
+***************
+*** 357,361 ****
+ if (ep)
+ *ep = 0;
+! if (r)
+ free (r);
+ return (struct globval *)0;
+--- 357,361 ----
+ if (ep)
+ *ep = 0;
+! if (r && r != &glob_error_return)
+ free (r);
+ return (struct globval *)0;
+***************
+*** 666,671 ****
+ }
+
+! /* compat: if GX_ALLDIRS, add the passed directory also */
+! if (add_current)
+ {
+ sdlen = strlen (dir);
+--- 666,672 ----
+ }
+
+! /* compat: if GX_ALLDIRS, add the passed directory also, but don't add an
+! empty directory name. */
+! if (add_current && (flags & GX_NULLDIR) == 0)
+ {
+ sdlen = strlen (dir);
+***************
+*** 679,686 ****
+ nextlink->next = lastlink;
+ lastlink = nextlink;
+! if (flags & GX_NULLDIR)
+! nextname[0] = '\0';
+! else
+! bcopy (dir, nextname, sdlen + 1);
+ ++count;
+ }
+--- 680,684 ----
+ nextlink->next = lastlink;
+ lastlink = nextlink;
+! bcopy (dir, nextname, sdlen + 1);
+ ++count;
+ }
+***************
+*** 943,947 ****
+ register unsigned int l;
+
+! array = glob_dir_to_array (directories[i], temp_results, flags);
+ l = 0;
+ while (array[l] != NULL)
+--- 941,950 ----
+ register unsigned int l;
+
+! /* If we're expanding **, we don't need to glue the directory
+! name to the results; we've already done it in glob_vector */
+! if ((dflags & GX_ALLDIRS) && filename[0] == '*' && filename[1] == '*' && filename[2] == '\0')
+! array = temp_results;
+! else
+! array = glob_dir_to_array (directories[i], temp_results, flags);
+ l = 0;
+ while (array[l] != NULL)
+***************
+*** 960,964 ****
+
+ /* Note that the elements of ARRAY are not freed. */
+! free ((char *) array);
+ }
+ }
+--- 963,968 ----
+
+ /* Note that the elements of ARRAY are not freed. */
+! if (array != temp_results)
+! free ((char *) array);
+ }
+ }
+*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500
+--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 23
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 24
+
+ #endif /* _PATCHLEVEL_H_ */
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org