BASH PATCH REPORT
                            =================

Bash-Release: 4.0
Patch-ID: bash40-003

Bug-Reported-by:        Bernd Eggink <[email protected]>
Bug-Reference-ID:       <[email protected]>
Bug-Reference-URL:      http://lists.gnu.org/archive/html/bug-bash/2009-02/msg00177.html

Bug-Description:

Under certain circumstances, constructs containing command substitutions
prevent PS1 from being re-evaluated and updated before being displayed.

Patch:

*** ../bash-4.0/parse.y 2009-01-08 08:29:12.000000000 -0500
--- parse.y     2009-02-25 15:58:25.000000000 -0500
***************
*** 1616,1623 ****
   int *ret;

!   ret = (int *)xmalloc (3 * sizeof (int));
   ret[0] = last_read_token;
   ret[1] = token_before_that;
   ret[2] = two_tokens_ago;
   return ret;
 }
--- 1616,1624 ----
   int *ret;

!   ret = (int *)xmalloc (4 * sizeof (int));
   ret[0] = last_read_token;
   ret[1] = token_before_that;
   ret[2] = two_tokens_ago;
+   ret[3] = current_token;
   return ret;
 }
***************
*** 1632,1635 ****
--- 1633,1637 ----
   token_before_that = ts[1];
   two_tokens_ago = ts[2];
+   current_token = ts[3];
 }

***************
*** 2669,2672 ****
--- 2671,2675 ----
   word_desc_to_read = (WORD_DESC *)NULL;

+   current_token = '\n';               /* XXX */
   last_read_token = '\n';
   token_to_read = '\n';
*** ../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 2

 #endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
    looks for to find the patch level (for the sccs version string). */

! #define PATCHLEVEL 3

 #endif /* _PATCHLEVEL_H_ */