123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- BASH PATCH REPORT
- =================
- Bash-Release: 3.2
- Patch-ID: bash32-022
- Bug-Reported-by: Chet Ramey <chet.ramey@cwru.edu>
- Bug-Reference-ID:
- Bug-Reference-URL:
- Bug-Description:
- POSIX specifies that the `read' builtin invoked from an interative shell
- must prompt with $PS2 when a line is continued using a backslash while
- reading from a terminal.
- Patch:
- *** ../bash-3.2-patched/builtins/read.def Tue Sep 19 08:45:48 2006
- --- bash-3.2/builtins/read.def Thu May 24 16:03:30 2007
- ***************
- *** 128,133 ****
- {
- register char *varname;
- ! int size, i, nr, pass_next, saw_escape, eof, opt, retval, code;
- ! int input_is_tty, input_is_pipe, unbuffered_read;
- int raw, edit, nchars, silent, have_timeout, fd;
- unsigned int tmout;
- --- 131,136 ----
- {
- register char *varname;
- ! int size, i, nr, pass_next, saw_escape, eof, opt, retval, code, print_ps2;
- ! int input_is_tty, input_is_pipe, unbuffered_read, skip_ctlesc, skip_ctlnul;
- int raw, edit, nchars, silent, have_timeout, fd;
- unsigned int tmout;
- ***************
- *** 135,139 ****
- char c;
- char *input_string, *orig_input_string, *ifs_chars, *prompt, *arrayname;
- ! char *e, *t, *t1;
- struct stat tsb;
- SHELL_VAR *var;
- --- 138,142 ----
- char c;
- char *input_string, *orig_input_string, *ifs_chars, *prompt, *arrayname;
- ! char *e, *t, *t1, *ps2;
- struct stat tsb;
- SHELL_VAR *var;
- ***************
- *** 149,152 ****
- --- 152,156 ----
- USE_VAR(i);
- USE_VAR(pass_next);
- + USE_VAR(print_ps2);
- USE_VAR(saw_escape);
- USE_VAR(input_is_pipe);
- ***************
- *** 164,167 ****
- --- 168,172 ----
- #endif
- USE_VAR(list);
- + USE_VAR(ps2);
-
- i = 0; /* Index into the string that we are reading. */
- ***************
- *** 387,391 ****
- #endif
-
- ! for (eof = retval = 0;;)
- {
- #if defined (READLINE)
- --- 394,399 ----
- #endif
-
- ! ps2 = 0;
- ! for (print_ps2 = eof = retval = 0;;)
- {
- #if defined (READLINE)
- ***************
- *** 413,416 ****
- --- 421,433 ----
- #endif
-
- + if (print_ps2)
- + {
- + if (ps2 == 0)
- + ps2 = get_string_value ("PS2");
- + fprintf (stderr, "%s", ps2 ? ps2 : "");
- + fflush (stderr);
- + print_ps2 = 0;
- + }
- +
- if (unbuffered_read)
- retval = zread (fd, &c, 1);
- ***************
- *** 441,445 ****
- pass_next = 0;
- if (c == '\n')
- ! i--; /* back up over the CTLESC */
- else
- goto add_char;
- --- 458,466 ----
- pass_next = 0;
- if (c == '\n')
- ! {
- ! i--; /* back up over the CTLESC */
- ! if (interactive && input_is_tty && raw == 0)
- ! print_ps2 = 1;
- ! }
- else
- goto add_char;
- *** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
- --- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
- ***************
- *** 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_ */
|