]> git.ipfire.org Git - thirdparty/bash.git/blame - CWRU/changelog
bash-4.3-beta overlay
[thirdparty/bash.git] / CWRU / changelog
CommitLineData
b721485f
CR
1 2/14/2011
2 ---------
3[bash-4.2 released]
4
5 2/15
6 ----
7lib/glob/gmisc.c
8 - fix wmatchlen and umatchlen to avoid going past the end of the
9 string on an incomplete bracket expression that ends with a
10 NUL. Partial fix for bug reported by Clark Wang <dearvoid@gmail.com>
11
12 2/16
13 ----
14subst.h
15 - new string extract flag value: SX_WORD. Used when calling
16 extract_dollar_brace_string to skip over the word in
17 ${param op word} from parameter_brace_expand
18
19subst.c
20 - change parameter_brace_expand to add SX_WORD to flags passed to
21 extract_dollar_brace_string
22 - change parameter_brace_expand to use SX_POSIXEXP for all non-posix
23 word expansion operators that treat single quotes as special, not
24 just % and #
25 - change extract_dollar_brace_string to initialize dolbrace_state to
26 DOLBRACE_WORD if SX_WORD flag supplied and we shouldn't use
27 DOLBRACE_QUOTE. Fixes bug reported by Juergen Daubert <jue@jue.li>
28
29doc/{bash.1,bashref.texi}
30 - document the exact expansions here strings undergo
31
32 2/17
33 ----
34lib/readline/vi_mode.c
35 - make sure that `dd', `cc', and `yy' call vidomove_dispatch from
36 rl_domove_read_callback. Fixes bug reported by Clark Wang
37 <dearvoid@gmail.com>
38
39lib/readline/callback.c
40 - make sure _rl_internal_char_cleanup is called after the
41 vi-motion callbacks (rl_vi_domove_callback) in rl_callback_read_char.
42 Companion to above fix
43
44doc/{bash.1,bashref.texi}
45 - make sure that the text describing the rhs of the == and =~
46 operators to [[ states that only the quoted portion of the pattern
47 is matched as a string
48
49 2/18
50 ----
51lib/glob/gmisc.c
52 - better fix for umatchlen/wmatchlen: keep track of the number of
53 characters in a bracket expression as the value to increase
54 matchlen by if the bracket expression is not well-formed. Fixes
55 bug reported by Clark Wang <dearvoid@gmail.com>
56
57subst.c
58 - change expand_string_for_rhs so that it sets the W_NOSPLIT2 flag
59 in the word flags. We will not perform word splitting or quote
60 removal on the result, so we do not want to add quoted nulls if
61 we see "" or ''. Fixes bug reported by Mike Frysinger
62 <vapier@gentoo.org>
63
64 2/19
65 ----
66variables.c
67 - new function, int chkexport(name), checks whether variable NAME is
68 exported and remakes the export environment if necessary. Returns
69 1 if NAME is exported and 0 if not
70 - call chkexport(name) to get tzset to look at the right variable in
71 the environment when modifying TZ in sv_tz. Don't call tzset if
72 chkexport doesn't indicate that the variable is exported
73
74variables.h
75 - new extern declaration for chkexport
76
77
78{parse.y,builtins/printf.def}
79 - call sv_tz before calling localtime() when formatting time strings
80 in prompt strings or using printf. Fixes bug reported by
81 Dennis Williamson <dennistwilliamson@gmail.com>
82
83execute_cmd.c
84 - modify fix of 2/9 to add casts when those variables are passed to
85 functions; some compilers throw errors instead of warnings. Report
86 and fix from Joachim Schmitz <jojo@schmitz-digital.de>
87
88support/shobj-conf
89 - add a stanza for nsk on the Tandem from Joachim Schmitz
90 <jojo@schmitz-digital.de>
91
92{shell,lib/readline/shell}.c
93 - Tandem systems should use getpwnam (getlogin()); for some reason
94 they don't do well with using getuid(). Fix from Joachim Schmitz
95 <jojo@schmitz-digital.de>
96
97 3/1
98 ---
99variables.c
100 - make sure that the return value from find_variable is non-null
101 before trying to use it in chkexport. Fixes bug reported by
102 Evangelos Foutras <foutrelis@gmail.com>
103
104 3/3
105 ---
106parse.y
107 - when adding $$ to the current token buffer in read_token_word(),
108 don't xmalloc a buffer for two characters and then strcpy it, just
109 copy the characters directly into the token buffer. Fix from
110 Michael Whitten <mfwitten@gmail.com>
111
112execute_cmd.c
113 - fix expand_word_unsplit to add the W_NOSPLIT2 flag to the word to
114 be expanded, so "" doesn't add CTLNUL. Similar to fix of 2/18 to
115 expand_string_for_rhs. Fixes bug reported by Nathanael D. Noblet
116 <nathanael@gnat.ca> and Matthias Klose <doko@debian.org>
117
118parse.y
119 - fix extended_glob case of read_token_word to allocate an extra
120 space in the buffer for the next character read after the extended
121 glob specification if it's a CTLESC or CTLNUL. Report and fix from
122 Michael Witten <mfwitten@gmail.com>
123 - fix shell expansions case of read_token_word to allocate an extra
124 space in the buffer for the next character read after the shell
125 expansion if it's a CTLESC or CTLNUL. Report and fix from
126 Michael Witten <mfwitten@gmail.com>
127 - TENTATIVE: fix read_token_word to reduce the amount of buffer space
128 required to hold the translated and double-quoted value of $"..."
129 strings. Report and fix from Michael Witten <mfwitten@gmail.com>
130 - change code around got_character and got_escaped_character labels to
131 make sure that we call RESIZE_MALLOCED_BUFFER before adding the
132 CTLESC before a CTLESC or CTLNUL, and before adding the character if
133 we're not adding a CTLESC. Report and fix from
134 Michael Witten <mfwitten@gmail.com>
135
136subst.c
137 - new param flags value, PF_ASSIGNRHS, mirrors W_ASSIGNRHS, noting that
138 parameter expansion is on rhs of assignment statement. That inhibits
139 word splitting
140 - change param_expand to call string_list_dollar_at with quoted == 1
141 if PF_ASSIGNRHS is set, so it will quote IFS characters in the
142 positional parameter before separating them with the first char of
143 $IFS. This keeps the rhs from being split inappropriately. Fixes
144 bug reported by Andres Perera <andres.p@zoho.com>
145
146 3/4
147 ---
148lib/readline/bind.c
149 - add a missing free of `names' in rl_function_dumper. Bug report
150 and fix from Michael Snyder <msnyder@vmware.com>
151
152 3/5
153 ---
154lib/readline/rltty.c
155 - change rl_deprep_terminal so it uses fileno (stdin) for the tty fd
156 if rl_instream is not set, like rl_prep_terminal
157
158 3/6
159 ---
160lib/readline/display.c
161 - fix rl_message to use a dynamically-allocated buffer instead of a
162 fixed-size buffer of 128 chars for the `local message prompt'. Bug
163 report and fix from Micah Cowan <micah@cowan.name>
164
165 3/7
166 ---
167jobs.c
168 - add sentinel to wait_sigint_handler so it only sets wait_sigint_received
169 if waiting_for_child is non-zero; otherwise, it restores the old
170 SIGINT handler and sends itself the SIGINT
171 - set waiting_for_child around the calls to waitchld that use it to
172 synchronously wait for a process
173 - change logic that decides whether or not the child process blocked
174 or handled SIGINT based on whether or not waitpid returns -1/EINTR
175 and the shell receives a SIGINT and the child does not exit. If
176 the child later exits due to SIGINT, cancel the assumoption that it
177 was handled
178 - instead of testing whether or not the child exited due to SIGINT
179 when deciding whether the shell should act on a SIGINT it received
180 while waiting, test whether or not we think the child caught
181 SIGINT. If it did, we let it go (unless the shell has it trapped);
182 if it did not catch it, the shell acts on the SIGINT. Fix from
183 Linus Torvalds <torvalds@linux-foundation.org>, bug report originally
184 from Oleg Nesterov <oleg@redhat.com>
185
186 3/8
187 ---
188shell.c
189 - initialize no_line_editing to 1 if READLINE is not defined -- we
190 can't have line editing without readline
191
192 3/12
193 ----
194lib/readline/signals.c
195 - add SIGHUP to the set of signals readline handles
196
197lib/readline/doc/rltech.texi
198 - document that SIGHUP is now part of the set of signals readline
199 handles
200
201lib/readline/input.c
202 - if _rl_caught_signal indicates that read() was interrupted by a
203 SIGHUP or SIGTERM, return READERR or EOF as appropriate
204 - call rl_event_hook, if it's set, if call to read in rl_getc
205 returns -1/EINTR. If rl_event_hook doesn't do anything, this
206 continues the loop as before. This handles the other fatal
207 signals
208
209execute_cmd.c
210 - add a couple of QUIT; calls to execute_disk_command and
211 execute_simple_command to improve responsiveness to interrupts
212 and fatal signals
213
214input.c
215 - rearrange getc_with_restart so that the return values from read()
216 are handled right
217
218parse.y
219 - don't need to set terminate_immediately in yy_stream_get, since
220 getc_with_restart checks for terminating signals itself
221 - since readline returns READERR on SIGHUP or SIGTERM, don't need
222 to set terminate_immediately. Still doesn't handle other
223 signals well -- will have to check that some more
224
225bashline.c
226 - new function, bash_event_hook, for rl_event_hook. Just checks for
227 terminating signals and acts on them using CHECK_TERMSIG.
228 - set rl_event_hook to bash_event_hook
229
230builtins/read.def
231 - take out setting terminate_immediately; add calls to CHECK_TERMSIG
232 after read calls
233
234doc/{bash.1,bashref.texi}
235 - move the text describing the effect of negative subscripts used to
236 reference indexed array elements to the paragraphs describing
237 ${parameter[subscript]}, since that's where they are implemented.
238 Pointed out by Christopher F. A. Johnson <cfajohnson@gmail.com>
239
240arrayfunc.[ch],subst.c
241 - array_expand_index now takes a new first argument: a SHELL_VAR *
242 of the array variable being subscripted. Can be used later to fully
243 implement negative subscripts
244
245 3/14
246 ----
247lib/glob/glob.c
248 - fix mbskipname to not turn the directory entry name into a wide char
249 string if the conversion of the pattern to a wide char string fails
250 - fix mbskipname to call skipname if either the pattern or the filename
251 can't be converted into a wide-char string
252
253lib/glob/xmbsrtowcs.c
254 - fix xdupmbstowcs2 to handle return value of 0 from mbsnrtowcs and
255 short-circuit with failure in that case. Fixes bug reported by
256 Roman Rakus <rrakus@redhat.com>
257
258 3/15
259 ----
260bashline.c
261 - new variable, bash_filename_quote_characters to store the value
262 assigned to rl_filename_quote_characters so it can be restored
263 if changed.
264 - change bashline_reset and attempt_shell_completion to restore
265 rl_filename_quote_characters if not set to default
266
267 3/22
268 ----
269lib/glob/glob.c
270 - wdequote_pathname falls back to udequote_pathname if xdupmbstowcs
271 fails to convert the pathname to a wide-character string
272
273lib/glob/xmbsrtowcs.c
274 - xdupmbstowcs2: change to fix problem with leading '\\' (results in
275 nms == 0, which causes it to short-circuit with failure right
276 away). Fixes bug pointed out by Werner Fink <werner@suse.de>
277 - xdupmbstowcs2: compensate for mbsnrtowcs returning 0 by taking the
278 next single-byte character and going on
279 - xdupmbstowcs2: change memory allocation to increase by WSBUF_INC
280 bytes; try to avoid calls to realloc (even if they don't actually
281 result in more memory being allocated)
282
283 3/24
284 ----
285doc/{bash.1,bashref.texi}
286 - slightly modify BASH_SUBSHELL description based on complaint from
287 Sam Liddicott <sam@liddicott.com>
288
289 3/25
290 ----
291trap.c
292 - change free_trap_strings to not call free_trap_string for signals
293 that are being ignored, like reset_or_restore_signal_handlers.
294 Fixes bug reported by Satoshi Takahashi <blue3waters@gmail.com>
295
296 3/26
297 ----
298lib/readline/rltypedefs.h
299 - remove old Function/VFunction/CPFunction/CPPFunction typedefs as
300 suggested by Tom Tromey <tromey@redhat.com>
301
302lib/readline/rlstdc.h
303 - move defines for USE_VARARGS/PREFER_STDARG/PREFER_VARARGS from
304 config.h.in to here because declaration of rl_message in
305 readline.h uses the defines. This makes it hard for another packages
306 to use after the header files are installed, since config.h is not
307 one of the installed files. Suggested by Tom Tromey
308 <tromey@redhat.com>
309
310 3/27
311 ----
312print_cmd.c
313 - change indirection_string from a static buffer to a dynamic one
314 managed by indirection_level_string(), so we don't end up truncating
315 PS4. Suggested by Dennis Williamson <dennistwilliamson@gmail.com>
316
317lib/readline/shell.c
318 - change sh_set_lines_and_columns to use static buffers instead of
319 allocating the buffers to pass to setenv/putenv
320
321lib/readline/terminal.c
322 - change _rl_get_screen_size to not call sh_set_lines_and_columns if
323 ignore_env == 0
324 - _rl_sigwinch_resize_terminal: new function to just retrieve terminal
325 size, ignoring environment
326
327lib/readline/rlprivate.h
328 - new external declaration for _rl_sigwinch_resize_terminal() (currently
329 unused)
330
331lib/readline/signals.c
332 - rl_sigwinch_handler: set _rl_caught_signal to SIGWINCH
333 - rl_sigwinch_handler: don't immediately call rl_resize_terminal; just
334 leave _rl_caught_signal set for RL_CHECK_SIGNALS to handle
335 - _rl_signal_handler: call rl_resize_terminal if sig == SIGWINCH.
336 Should fix hang when sending multiple repeated SIGWINCH reported by
337 Henning Bekel <h.bekel@googlemail.com>
338
339 3/29
340 ----
341lib/sh/snprintf.c
342 - include math.h for any defines for isinf/isnan
343 - use code from gnulib documentation to implement isinf/isnan if they
344 are not defined
345
346configure.in
347 - don't check for isinf or isnan; c99 says they're macros anyway
348
349config.h.in
350 - remove defines for ISINF_IN_LIBC and ISNAN_IN_LIBC, no longer used
351 by snprintf.c
352
353 4/2
354 ---
355braces.c
356 - brace_gobbler: fix to understand double-quoted command substitution,
357 since the shell understands unquoted comsubs. Fixes bug reported
358 by Michael Whitten <mfwitten@gmail.com>
359
360lib/readline/display.c
361 - include <pc.h> on MDOS
362 - get and set screen size using DJGPP-specific calls on MSDOS
363 - move cursor up clear screen using DJGPP-specific calls
364 - don't call tputs on DJGPP; there is no good terminfo support
365
366lib/readline/terminal.c
367 - include <pc.h> on MDOS
368 - get and set screen size using DJGPP-specific calls on MSDOS
369 - use DJGPP-specific initialization on MSDOS, zeroing all the
370 _rl_term_* variables
371 - don't call tputs on DJGPP; there is no good terminfo support
372 DJGPP support from Eli Zaretskii <eliz@gnu.org>
373
374 4/6
375 ---
376
377config-top.h
378 - change DEFAULT_PATH_VALUE to something more useful and modern
379
380 4/8
381 ---
382tests/printf2.sub
383 - make sure LC_ALL and LC_CTYPE are set so LANG assignment takes effect.
384 Reported by Cedric Arbogast <arbogast.cedric@gmail.com>
385
386 4/11
387 ----
388include/chartypes.h
389 - fix a couple of dicey defines (though ones that don't cause any
390 compiler warnings) in IN_CTYPE_DOMAIN
391
392doc/{bashref.texi,bash.1}
393 - add note referring to duplicating file descriptors in sections
394 describing redirecting stdout and stderr and appending to stdout
395 and stderr. Suggested by Matthew Dinger <mdinger.bugzilla@gmail.com>
396
397pcomplete.c
398 - it_init_helptopics: new function to support completing on help topics,
399 not just builtins
400 - it_helptopics: new programmable completion list of help topics
401 - build list of helptopic completions in gen_action_completions on
402 demand
403
404pcomplete.h
405 - new extern declaration for it_helptopics
406
407builtins/complete.def
408 - the `helptopic' action now maps to CA_HELPTOPIC intead of CA_BUILTIN,
409 since there are more help topics than just builtins. Suggested by
410 Clark Wang <dearvoid@gmail.com>
411
412 4/12
413 ----
414print_cmd.c
415 - fix print_arith_for_command to add a call to PRINT_DEFERRED_HEREDOCS
416 before ending the body of the command, so heredocs get attached to
417 the right command instead of to the loop. From gentoo bug 363371
418 http://bugs.gentoo.org/show_bug.cgi?id=363371
419
420execute_cmd.c
421 - change coproc_pidchk to unset the appropriate shell variables when
422 the (currently single) known coproc pid terminates
423 - cleanup and new functions to fully support multiple coprocesses when
424 and if I decide to go there
425
426 4/13
427 ----
428print_cmd.c
429 - fix print_group_command to add a call to PRINT_DEFERRED_HEREDOCS
430 after call to make_command_string_internal before printing closing
431 `}'
432 - fix make_command_string_internal to add a call to
433 PRINT_DEFERRED_HEREDOCS after recursive call to
434 make_command_string_internal in case cm_subshell before printing
435 closing `)'
436
437 4/14
438 ----
439print_cmd.c
440 - change overlapping strcpy in named_function_string to memmove
441
442sig.h
443 - UNBLOCK_SIGNAL: convenience define, same as UNBLOCK_CHILD, just
444 restores an old signal mask
445
446trap.c
447 - set_signal: instead of setting the signal handler to SIG_IGN while
448 installing the new trap handler, block the signal and unblock it
449 after the new handler is installed. Fixes bug reported by Roman
450 Rakus <rrakus@redhat.com>
451
452 4/15
453 ----
454doc/{bash.1,bashref.texi}
455 - make it clear that enabling monitor mode means that all jobs run in
456 separate process groups
457
458 4/18
459 ----
460builtins/fc.def
461 - update fix of 4/15/2010 to not take saved_command_line_count into
462 account when stepping down the history list to make sure that
463 last_hist indexes something that is valid. Fixes bug reported by
464 <piuma@piumalab.org>
465
466 4/19
467 ----
468builtins/fc.def
469 - fc_gethnum: make sure the calculation to decide the last history
470 entry is exactly the same as fc_builtin. Fixes bug uncovered by
471 fix of 4/18 to stop seg fault
472
473 4/22
474 ----
475lib/readline/terminal.c
476 - change _rl_enable_meta_key to set a flag indicating that it sent the
477 enable-meta sequence
478 - _rl_disable_meta_key: new function to turn off meta mode after we
479 turned it on with _rl_enable_meta_key
480
481lib/readline/rlprivate.h
482 - extern declaration for _rl_disable_meta_key
483
484configure.in
485 - if not cross-compiling, set CFLAGS_FOR_BUILD from any CFLAGS inherited
486 from the environment. Fixes HP/UX build problem reported by
487 "Daniel Richard G." <skunk@iSKUNK.ORG>
488
489 4/26
490 ----
491config-top.h
492 - define MULTIPLE_COPROCS to 0 so the code is still disabled but easy
493 to enable via configure option or editing this file
494
495 4/29
496 ----
497lib/sh/eaccess.c
498 - freebsd provides faccessat, with the same misfeature as their eaccess
499 and access implementations (X_OK returns true for uid==0 regardless
500 of the actual file permissions), so reorganize code to check the
501 file permissions as with eaccess. Report and fix from Johan Hattne
502 <johan.hattne@utsouthwestern.edu>
503
504 5/2
505 ---
506doc/{bash.1,bashref.texi}
507 - add forward reference to `Pattern Matching' from `Pathname
508 Expansion', suggested by Greg Wooledge <wooledg@eeg.ccf.org>
509
510 5/5
511 ---
512pcomplib.c
513 - the bash_completion project now distributes over 200 completions
514 for various programs, with no end in sight, so increase the value
515 of COMPLETE_HASH_BUCKETS from 32 to 128
516
517pathexp.c
518 - quote_string_for_globbing: make sure CTLESC quoting CTLESC is
519 translated into \<CTLESC> even if the flags include QGLOB_REGEXP.
520 We don't want to process the second CTLESC as a quote character.
521 Fixes bug reported by Shawn Bohrer <sbohrer@rgmadvisors.com>
522
523 5/6
524 ---
525builtins/printf.def
526 - change PRETURN to not call fflush if ferror(stdout) is true
527 - if a call to one of the stdio functions or printstr leaves
528 ferror(stdout) true, and PRETURN is going to be called, let PRETURN
529 print the error message rather than doubling up the messages. Fixes
530 problem reported by Roman Rakus <rrakus@redhat.com>
531
532 5/9
533 ---
534doc/{bash.1,bashref.texi}
535 - add note to the effect that lists inside compound command can be
536 terminated by newlines as well as semicolons. Suggested by
537 Roman Byshko <rbyshko@gmail.com>
538
539 5/10
540 ----
541subst.c
542 - remove_quoted_nulls: fix problem that caused it to skip over the
543 character after a CTLNUL, which had the effect of skipping every
544 other of a series of CTLNULs. Fixes bug reported by
545 Marten Wikstrom <marten.wikstrom@keystream.se>
546
547 5/11
548 ----
549subst.c
550 - extract_process_subst: add SX_COMMAND flag to call to
551 extract_delimited_string, since we're expanding the same sort of
552 command as command substitution. Fixes bug reported in Ubuntu
553 bug 779848
554
555 5/12
556 ----
557configure.in
558 - set the prefer_shared and prefer_static variables appropriately
559 depending on the value of $opt_static_link
560
561aclocal.m4
562 - AC_LIB_LINKFLAGS_BODY: change to not prefer shared versions of the
563 libraries it's searching for if the prefer_shared variable is "no".
564 Fixes problem reported by Cedric Arbogast <arbogast.cedric@gmail.com>
565
566 5/13
567 ----
568lib/readline/readline.c
569 - _rl_internal_teardown: add call to _rl_disable_meta_key to make the
570 meta key active only for the duration of the call to readline()
571 - _rl_internal_setup: move call to _rl_enable_meta_key here from
572 readline_initialize_everything so the meta key is active only for
573 the duration of the call to readline(). Suggestion from Miroslav
574 Lichvar <mlichvar@redhat.com>
575
576builtins/help.def
577 - help_builtin: change strncmp to strcmp so that `help read' no longer
578 matches `readonly'. Suggested by Clark Wang <dearvoid@gmail.com>
579
580config.h.in
581 - add define for GLIBC21, checked using jm_GLIBC21 as part of the tests
582 for libintl
583
584lib/malloc/malloc.c
585 - internal_free: don't use the cached value of memtop when deciding
586 whether or not to adjust the break and give memory back to the kernel
587 when using the GNU C library, since glibc uses sbrk for its own
588 internal purposes. From Debian bug 614815, reported by Samuel
589 Thibault <samuel.thibault@gnu.org>
590
591aclocal.m4
592 - BASH_STRUCT_WEXITSTATUS_OFFSET: change AC_RUN_IFELSE to AC_TRY_RUN
593 to avoid warning about not using AC_LANG_SOURCE
594
595 5/14
596 ----
597bashline.[ch]
598 - two new functions, bashline_set_event_hook and bashline_reset_event_hook,
599 to set rl_event_hook to bash_event_hook and back to NULL, respectively
600 - don't set rl_event_hook unconditionally
601
602sig.c
603 - termsig_sighandler: if the shell is currently interactive and
604 readline is active, call bashline_set_event_hook to cause
605 termsig_handler to be called via bash_event_hook when the shell
606 returns from the signal handler
607
608 5/15
609 ----
610lib/readline/display.c
611 - _rl_col_width: Mac OS X has a bug in wcwidth: it does not return 0
612 for UTF-8 combining characters. Added workaround dependent on
613 MACOSX. Fixes problem pointed out by Thomas De Contes
614 <d.l.tDecontes@free.fr>
615
616 5/16
617 ----
618lib/readline/rlmbutil.h
619 - WCWIDTH: wrapper for wcwidth that returns 0 for Unicode combining
620 characters on systems where wcwidth is broken (e.g., Mac OS X).
621
622lib/readline/{complete,display,mbutil}.c
623 - use WCWIDTH instead of wcwidth
624
625 5/17
626 ----
627lib/readline/display.c
628 - update_line: after computing ofd and nfd, see whether the next
629 character in ofd is a zero-width combining character. If it is,
630 back ofd and nfd up one, so the base characters no longer compare
631 as equivalent. Fixes problem reported by Keith Winstein
632 <keithw@mit.edu>
633
634lib/readline/nls.c
635 - _rl_utf8locale: new flag variable, set to non-zero if the current
636 locale is UTF-8
637 - utf8locale(): new function, returns 1 if the passed lspec (or the
638 current locale) indicates that the locale is UTF-8. Called from
639 _rl_init_eightbit
640
641lib/readline/rlprivate.h
642 - extern declaration for _rl_utf8locale
643
644locale.c
645 - locale_utf8locale: new flag variable, set to non-zero if the current
646 locale is UTF-8 (currently unused)
647 - locale_isutf8(): new function, returns 1 if the passed lspec (or the
648 current locale) indicates that the locale is UTF-8. Should be called
649 whenever the locale or LC_CTYPE value is modified
650
651aclocal.m4
652 - BASH_WCWIDTH_BROKEN: new test for whether or not wcwidth returns
653 zero-width characters like unicode combining characters as having
654 display length 1; define WCWIDTH_BROKEN in this case
655
656config.h.in
657 - WCWIDTH_BROKEN: new define
658
659lib/readline/rlmbutil.h
660 - change WCWIDTH macro to use _rl_utf8locale and the full range of
661 Unicode combining characters (U+0300-U+036F)
662
663 5/19
664 ----
665lib/readline/rlprivate.h
666 - _rl_search_context: new member, prevc, will hold character read
667 prior to lastc
668
669lib/readline/isearch.c
670 - _rl_isearch_dispatch: if the character causes us to index into
671 another keymap, save that character in cxt->prevc
672 - _rl_isearch_dispatch: if we index into another keymap, but don't
673 find a function that's special to i-search, and the character that
674 caused us to index into that keymap would have terminated the
675 search, push back cxt->prevc and cxt->lastc to make it appear as
676 if `prevc' terminated the search, and execute lastc as a command.
677 We have to push prevc back so we index into the same keymap before
678 we read lastc. Fixes bug report from Davor Cubranic
679 <cubranic@stat.ubc.ca>
680
681 5/20
682 ----
683expr.c
684 - expr_bind_variable: pay attention to the return value from
685 bind_variable and check whether or not we should error out due to
686 a readonly or noassign variable. Fixes bug reported by Eric
687 Blake <eblake@redhat.com>
688
689 5/26
690 ----
691
692lib/readline/search.c
693 - include histlib.h for ANCHORED_SEARCH defines
694 - rl_history_search_flags: new variable, holds ANCHORED_SEARCH flag for
695 the duration of a history search
696 - rl_history_search_reinit: takes a new flags variable, defines whether
697 or not the search is anchored; assigned to rl_history_search_flags
698 - rl_history_serarch_reinit: if ANCHORED_SEARCH flag passed, add ^ to
699 beginning of search string; otherwise search string is unmodified
700 - rl_history_search_internal: set rl_point appropriately based on
701 whether or not rl_history_search_flags includes ANCHORED_SEARCH
702 - rl_history_substr_search_forward: new function, for non-anchored
703 substring search forward through history for string of characters
704 preceding rl_point
705 - rl_history_substr_search_backward: new function, for non-anchored
706 substring search backward through history for string of characters
707 preceding rl_point. Original code from Niraj Kulkarni
708 <kulkarniniraj14@gmail.com>
709
710lib/readline/readline.h
711 - extern declarations for rl_history_substr_search_{for,back}ward
712
713lib/readline/funmap.c
714 - history-substring-search-forward: new bindable command, invokes
715 rl_history_substr_search_forward
716 - history-substring-search-backward: new bindable command, invokes
717 rl_history_substr_search_backward
718
719lib/readline/doc/{rluser.texi,readline.3}
720 - document history-substring-search-forward and
721 history-substring-search-backward
722
723 5/27
724 ----
725{nojobs,jobs}.c
726 - add support for DONT_REPORT_SIGTERM so that the shell doesn't print
727 a message when a job exits due to SIGTERM since that's the default
728 signal sent by the kill builtin. Suggested by Marc Herbert
729 <mark.herbert@gmail.com>
730
731config-top.h
732 - DONT_REPORT_SIGTERM: new user-modifiable setting. Commented out
733 by default
734
735 5/28
736 ----
737lib/readline/bind.c
738 - _rl_skip_to_delim: skip to a closing double quote or other delimiter,
739 allowing backslash to quote any character, including the delimiter
740 - rl_parse_and_bind: call _rl_skip_to_delim instead of using inline
741 code
742 - rl_parse_and_bind: allow quoted strings as the values of string
743 variables. Variable values without double quotes have trailing
744 whitespace removed (which still allows embedded whitespace, for
745 better or worse). Fixes problem with string variables not matching
746 in `set' command if values happen to have trailing spaces or tabs
747 (debian bash bug #602762), but introduces slight incompatibility.
748
749 5/29
750 ----
751doc/{bash.1,bashref.texi}
752 - clarify unset description to specify that without options, a
753 variable, then a shell function if there is no variable by that
754 name, is unset. Fixes discrepancy reported by Mu Qiao
755 <qiaomuf@gentoo.org>
756
757 6/4
758 ----
759doc/{bash.1,bashref.texi}
760 - clarify description of LINES and COLUMNS (and checkwinsize shopt
761 option) to make it clear that only interactive shells set a
762 handler for SIGWINCH and update LINES and COLUMNS. Original
763 report submitted by Jonathan Nieder <jrnieder@gmail.com>
764
765arrayfunc.c
766 - expand_compound_array_assignment: defer expansion of words between
767 parens when performing compound assignmnt to an associative array
768 variable
769 - assign_compound_array_list: perform the same expansions when doing
770 a compound array assignment to an associative array variable as
771 when doing a straight array index assignment. The idea is that
772 foo=( [ind1]=bar [ind2]=quux)
773 is the same as
774 foo[ind1]=bar ; foo[ind2]=quux
775
776 This fixes problems with double-expansion and quote removal being
777 performed on the array indices
778
779 6/13
780 ----
781doc/{bash.1,bashref.texi}
782 - Add a little text to make it clear that the locale determines how
783 range expressions in glob patterns are handled.
784
785
786 6/21
787 ----
788builtins/read.def
789 - display a message and return error status if -a is used with an
790 existing associative array. Fixes bug reported by Curtis Doty
791 <curtis@greenkey.net>
792
793 6/24
794 ----
795{jobs,nojobs}.c
796 - non-interactive shells now react to the setting of checkwinsize
797 and set LINES and COLUMNS after a foreground job exits. From a
798 suggestion by Leslie Rhorer <lrhorer@satx.rr.com>
799
800doc/{bash.1,bashref.texi}
801 - checkwinsize: remove language saying that only interactive shells
802 check the window size after each command
803
804lib/readline/histfile.c
805 - history_backupfile: new file, creates a backup history file name
806 given a filename (appending `-')
807 - history_do_write: when overwriting the history file, back it up
808 before writing. Restore backup file on a write error. Suggested
809 by chkno@chkno.net
810
811bashline.c
812 - find_cmd_name: two new arguments, return the start and end of the
813 actual text string used to find the command name, without taking
814 whitespace into account
815 - attempt_shell_completion: small changes to make sure that completion
816 attempted at the beginning of a non-empty line does not find a
817 programmable completion, even if the command name starts at point
818 - attempt_shell_completion: small change to make sure that completion
819 does not find a progcomp when in whitespace before the command
820 name
821 - attempt_shell_completion: small change to make sure that completion
822 does not find a progcomp when point is at the first character of a
823 command name, even when there is leading whitespace (similar to
824 above). Fixes problems noted by Ville Skytta <ville.skytta@iki.fi>
825
826subst.c
827 - brace_expand_word_list: since the individual strings in the strvec
828 returned by brace_expand are already allocated, don't copy them to
829 newly-allocated memory when building the WORD_LIST, just use them
830 intact
831
832locale.c
833 - locale_mb_cur_max: cache value of MB_CUR_MAX when we set or change
834 the locale to avoid a function call every time we need to read it
835
836shell.h
837 - new struct to save shell_input_line and associated variables:
838 shell_input_line_state_t
839 - add members of sh_parser_state_t to save and restore token and the
840 size of the token buffer
841
842parse.y
843 - {save,restore}_input_line_state: new functions to save and restore
844 shell_input_line and associated variables
845 - {save,restore}_parser_state: add code to save and restore the token
846 and token buffer size
847 - xparse_dolparen: call save_ and restore_input_line_state to avoid
848 problems with overwriting shell_input_line when we recursively
849 call the parser to parse a command substitution. Fixes bug
850 reported by Rui Santos <rsantos@grupopie.com>
851
852include/shmbutil.h
853 - use locale_mb_cur_max instead of MB_CUR_MAX in ADVANCE_CHAR and
854 similar macros
855
856lib/glob/smatch.c
857 - rangecmp,rangecmp_wc: change to take an additional argument, which
858 forces the use of strcoll/wscoll when non-zero. If it's 0, a new
859 variable `glob_asciirange' controls whether or not we use strcoll/
860 wscoll. If glob_asciirange is non-zero, we use straight
861 C-locale-like ordering. Suggested by Aharon Robbins
862 <arnold@skeeve.com>
863
864 6/30
865 ----
866execute_cmd.c
867 - execute_pipeline: make sure the lastpipe code is protected by
868 #ifdef JOB_CONTROL. Fixes problem reported by Thomas Cort
869 <tcort@minix3.org>
870
871 7/2
872 ---
873lib/readline/complete.c
874 - EXPERIMENTAL: remove setting of _rl_interrupt_immediately around
875 completion functions that touch the file system. Idea from Jan
876 Kratochvil <jan.ktratochvil@redhat.com> and the GDB development
877 team
878
879lib/readline/signals.c
880 - rl_signal_handler: if we're in callback mode, don't interrupt
881 immediately on a SIGWINCH
882
883 7/3
884 ---
885bashline.c
886 - set_directory_hook: and its siblings are a new set of functions to
887 set, save, and restore the appropriate directory completion hook
888 - change callers to use {set,save,restore}_directory_hook instead of
889 manipulating rl_directory_rewrite_hook directly
890 - dircomplete_expand: new variable, defaults to 0, if non-zero causes
891 directory names to be word-expanded during word and filename
892 completion
893 - change {set,save,restore}_directory_hook to look at dircomplete_expand
894 and change rl_directory_completion_hook or rl_directory_rewrite_hook
895 appropriately
896
897bashline.h
898 - extern declaration for set_directory_hook so shopt code can use it
899
900 7/6
901 ---
902builtins/shopt.def
903 - globasciiranges: new settable shopt option, makes glob ranges act
904 as if in the C locale (so b no longer comes between A and B).
905 Suggested by Aharon Robbins <arnold@skeeve.com>
906
907 7/7
908 ---
909doc/{bash.1,bashref.texi}
910 - document new `globasciiranges' shopt option
911
912 7/8
913 ---
914builtins/shopt.def
915 - direxpand: new settable option, makes filename completion expand
916 variables in directory names like bash-4.1 did.
917 - shopt_set_complete_direxpand: new function, does the work for the
918 above by calling set_directory_hook
919
920doc/{bash.1,bashref.texi}
921 - document new `direxpand' shopt option
922
923 7/15
924 ----
925lib/readline/isearch.c
926 - _rl_isearch_dispatch: when adding character to search string, use
927 cxt->lastc (which we use in the switch statement) instead of c,
928 since lastc can be modified earlier in the function
929
930 7/18
931 ----
932lib/readline/rlprivate.h
933 - _rl_search_context: add another member to save previous value of
934 (multibyte) lastc: pmb is to mb as prevc is to lastc
935
936lib/readline/isearch.c:
937 - _rl_isearch_dispatch: if a key sequence indexes into a new keymap,
938 but doesn't find any bound function (k[ind].function == 0) or is
939 bound to self-insert (k[ind].function == rl_insert), back up and
940 insert the previous character (the one that caused the index into a
941 new keymap) and arrange things so the current character is the next
942 one read, so both of them end up in the search string. Fixes bug
943 reported by Clark Wang <dearvoid@gmail.com>
944 - _rl_isearch_dispatch: a couple of efficiency improvements when adding
945 characters to the isearch string
946
947 7/24
948 ----
949lib/readline/isearch.c
950 - _rl_isearch_dispatch: save and restore cxt->mb and cxt->pmb
951 appropriately when in a multibyte locale
952
953doc/{bash.1,bashref.texi}
954 - correct description of {x}>file (and other redirection operators
955 that allocate a file descriptor) to note the the fd range is
956 greater than or equal to 10. Fixes problem reported by
957 Christian Ullrich
958
959lib/readline/signals.c
960 - rl_signal_handler: don't interrupt immediately if in callback mode
961
962lib/readline/callback.c
963 - rl_callback_read_char: install signal handlers only when readline
964 has control in callback mode, so readline's signal handlers aren't
965 called when the application is active (e.g., between the calls to
966 rl_callback_handler_install and rl_callback_read_char). If the
967 readline signal handlers only set a flag, which the application
968 doesn't know about, the signals will effectively be ignored until
969 the next time the application calls into the readline callback
970 interface. Fixes problem of calling unsafe functions from signal
971 handlers when in callback mode reported by Jan Kratochvil
972 <jan.kratochvil@redhat.com>
973
974execute_cmd.c
975 - fix_assignment_words: when in Posix mode, the `command' builtin
976 doesn't change whether or not the command name it protects is an
977 assignment builtin. One or more instances of `command'
978 preceding `export', for instance, doesn't make `export' treat its
979 assignment statement arguments differently. Posix interpretation
980 #351
981
982doc/{bash.1,bashref.texi}
983 - document new Posix-mode behavior of `command' when preceding builtins
984 that take assignment statements as arguments
985
986builtins/printf.def
987 - printstr: if fieldwidth or precision are < 0 or > INT_MAX when
988 supplied explicitly (since we take care of the `-' separately),
989 clamp at INT_MAX like when using getint(). Fixes issue reported
990 by Ralph Coredroy <ralph@inputplus.co.uk>
991
992 7/25
993 ----
994lib/readline/chardefs.h
995 - isxdigit: don't define if compiling with c++; declared as a c++
996 template function. Fixes bug reported by Miroslav Lichvar
997 <mlichvar@redhat.com>
998
999builtins/printf.def
1000 - getint: if garglist == 0, return whatever getintmax returns (0).
1001 Fixes bug reported by Ralph Coredroy <ralph@inputplus.co.uk>
1002
1003 7/28
1004 ----
1005doc/{bash.1,bashref.texi}
1006 - minor changes to the descriptions of the cd and pushd builtins
1007
1008lib/sh/zread.c
1009 - zsyncfd: change variable holding return value from lseek to
1010 off_t. Bug report and fix from Gregory Margo <gmargo@pacbell.net>
1011
1012 8/1
1013 ---
1014expr.c
1015 - don't check for division by 0 when in a context where no evaluation
1016 is taking place. Fixes bug reported by dnade.ext@orange-ftgroup.com
1017
1018 8/6
1019 ---
1020execute_cmd.c
1021 - execute_command_internal: the parent branch of the subshell code
1022 (where the child calls execute_in_subshell) should not close all
1023 open FIFOs with unlink_fifo_list if it's part of a shell function
1024 that's still executing. Fixes bug reported by Maarten Billemont
1025 <lhunath@lyndir.com>
1026
1027 8/9
1028 ---
1029builtins/common.c
1030 - get_exitstat: return EX_BADUSAGE (2) on a non-numeric argument
1031
1032builtins/return.def
1033 - return_builtin: just call get_exitstat to get the return status,
1034 let it handle proper parsing and handling of arguments. Fixes
1035 issue most recently raised by Linda Walsh <bash@tlinx.org>.
1036 Reverses change from 9/11/2008 (see above)
1037
1038 8/16
1039 ----
1040doc/{bash.1,bashref.texi}
1041 - clean up `set -e' language to make it clearer that any failure of
1042 a compound command will cause the shell to exit, not just subshells
1043 and brace commands
1044
1045 8/17
1046 ----
1047configure.in
1048 - make the various XXX_FOR_BUILD variables `precious' to autoconf to
1049 avoid stale data
1050 - change how CC_FOR_BUILD is initialized when cross-compiling and not,
1051 but do not change behavior
1052 - initialize CFLAGS_FOR_BUILD to -g when cross-compiling
1053 - initialize LIBS_FOR_BUILD to $(LIBS) when not cross-compiling, empty
1054 when cross-compiling
1055 - create AUTO_CFLAGS variable to hold basic CFLAGS defaults; used when
1056 CFLAGS not inherited from environment (like effect of old
1057 auto_cflags variable)
1058 - substitute LIBS_FOR_BUILD into output Makefiles
1059 [changes inspired by bug report from Nathan Phillip Brink
1060 <ohnobinki@ohnopublishing.net> -- gentoo bug 378941]
1061
1062builtins/Makefile.in
1063 - substitute LIBS_FOR_BUILD from configure, not strictly initialized
1064 to $(LIBS)
1065
1066 8/27
1067 ----
1068doc/{bash.1,bashref.texi}
1069 - minor changes to the here string description to clarify the
1070 expansions performed on the word
1071
1072support/shobj-conf
1073 - handle compilation on Lion (Mac OS X 10.7/darwin11) with changes
1074 to darwin stanzas. Fixes readline bug reported by Vincent
1075 Sheffer <vince.sheffer@apisphere.com>
1076
1077lib/sh/strtrans.c
1078 - ansic_wshouldquote: check a string with multi-byte characters for
1079 characters that needs to be backslash-octal escaped for $'...'
1080 - ansic_shouldquote: if is_basic fails for one character, let
1081 ansic_wshouldquote examine the rest of the string and return what
1082 it returns. From a patch sent by Roman Rakus <rrakus@redhat.com>
1083
1084 8/30
1085 ----
1086lib/sh/strtrans.c
1087 - ansic_quote: changes to quote (or not) multibyte characters. New
1088 code converts them to wide characters and uses iswprint to check
1089 valid wide chars. From a patch sent by Roman Rakus
1090 <rrakus@redhat.com>
1091
1092 9/7
1093 ---
1094lib/sh/shquote.c
1095 - sh_backslash_quote: change to be table-driven so we can use a
1096 different table if we want to
1097 - sh_backslash_quote: takes a second char table[256] argument;
1098
1099externs.h
1100 - sh_backslash_quote: add second argument to function prototype
1101
1102bashline.c,braces.c,parse.y,builtins/printf.def
1103 - change callers of sh_backslash_quote to add second argument
1104
1105bashline.c
1106 - filename_bstab: table of characters to pass to sh_backslash_quote;
1107 characters with value 1 will be backslash-quoted
1108 - set_filename_bstab: turn on characters in filename backslash-quote
1109 table according to passed string argument
1110 - call set_filename_bstab every time rl_filename_quote_characters is
1111 assigned a value
1112 - bash_quote_filename: call sh_backslash_quote with filename_bstab
1113 as second argument. This allows other characters in filenames to
1114 be quoted without quoting, for instance, a dollar sign in a shell
1115 variable reference
1116
1117 9/8
1118 ---
1119bashline.c
1120 - complete_fullquote: new variable, controls table passed to
1121 sh_backslash_quote. If non-zero (the default), the standard set
1122 of shell metacharacters -- as in bash versions up to and including
1123 bash-4.2 -- gets backslash-quoted by the completion code. If zero,
1124 sh_backslash_quote gets the table with the characters in the
1125 variable reference removed, which means they are removed from the
1126 set of characters to be quoted in filenames
1127
1128 9/10
1129 ----
1130bashline.c
1131 - bash_filename_stat_hook: new function, designed to expand variable
1132 references in filenames before readline passes them to stat(2)
1133 to determine whether or not they are a directory
1134
1135 9/15
1136 ----
1137builtins/declare.def
1138 - if assign_array_element fails due to a bad (or empty) subscript, mark
1139 it as an assignment error and don't attempt any further processing
1140 of that declaration. Fixes segfault bug reported by Diego Augusto
1141 Molina <diegoaugustomolina@gmail.com>
1142
1143 9/19
1144 ----
1145expr.c
1146 - exppower: replace the simple exponentiation algorithm with an
1147 implementation of exponentiation by squaring. Inspired by report
1148 from Nicolas ARGYROU <nargy@yahoo.com>
1149
1150bashline.c
1151 - bash_quote_filename: check for rtext being non-null before
1152 dereferencing it
1153 - set_saved_history: operate_and_get_next assumes that the previous
1154 line was added to the history, even when the history is stifled and
1155 at the max number of entries. If it wasn't, make sure the history
1156 number is incremented properly. Partial fix for bug reported by
1157 gregrwm <backuppc-users@whitleymott.net>
1158
1159doc/{bash.1,bashref.texi},lib/readline/doc/{hsuser,rluser}.texi
1160 - minor editorial changes inspired by suggestions from
1161 Roger Zauner <rogerx.oss@gmail.com>
1162
1163 9/20
1164 ----
1165lib/intl/localealias.c
1166 - read_alias_file: close resource leak (fp) when returning on error
1167
1168 9/22
1169 ----
1170execute_command.c
1171 - execute_intern_function: implement Posix interpretation 383 by making
1172 it an error to define a function with the same name as a special
1173 builtin when in Posix mode.
1174 http://austingroupbugs.net/view.php?id=383#c692
1175
1176 9/25
1177 ----
1178doc/{bash.1,bashref.texi}
1179 - formatting and some content changes from Benno Schulenberg
1180 <bensberg@justemail.net>
1181 - document new posix-mode behavior from interp 383 change of 9/22
1182
1183 9/30
1184 ----
1185execute_cmd.c
1186 - shell_execve: add strerror to error message about executable file
1187 that shell can't execute as a shell script. From suggestion by
1188 daysleeper <daysleeper@centrum.cz>
1189
1190 10/1
1191 ----
1192bashhist.c
1193 - maybe_add_history: act as if literal_history is set when parser_state
1194 includes PST_HEREDOC, so we save the bodies of here-documents just
1195 as they were entered. Fixes bug reported by Jonathan Wakely
1196 <bugs@kayari.org>
1197 - bash_add_history: make sure that the second and subsequent lines of
1198 a here document don't have extra newlines or other delimiting
1199 chars added, since they have the trailing newline preserved, when
1200 `lithist' is set and history_delimiting_chars isn't called
1201
1202execute_cmd.c
1203 - execute_command_internal: avoid fd exhaustion caused by using
1204 process substitution in loops inside shell functions by using
1205 copy_fifo_list and close_new_fifos (). Fixes debian bash bug
1206 642504
1207
1208lib/readline/complete.c
1209 - new variable, rl_filename_stat_hook, used by append_to_match. If
1210 filename completion is desired, and rl_filename_stat_hook points
1211 to a function, call that function to expand the filename in an
1212 application-specific way before calling stat.
1213
1214bashline.c
1215 - bash_default_completion: if variable completion returns a single
1216 match, use bash_filename_stat_hook and file_isdir to determine
1217 whether or not the variable name expands to a directory. If it
1218 does, set the filename_append_character to `/'. This is not
1219 perfect, so we will see how it works out. Adds functionality
1220 requested by Peter Toft <pto@linuxbog.dk> and Patrick Pfeifer
1221 <patrick@pfeifer.de>
1222 - rl_filename_stat_hook: assigned bash_filename_stat_hook, so things
1223 like $HOME/Downloads (after completion) have a slash appended.
1224 In general, this causes the stat hook to be called whenever
1225 filename completion is appended. Adds functionality requested by
1226 Patrick Pfeifer <patrick@pfeifer.de>
1227
1228lib/readline/readline.h
1229 - new extern declaration for rl_filename_stat_hook
1230
1231lib/readline/doc/rltech.texi
1232 - rl_directory_rewrite_hook: now documented
1233 - rl_filename_stat_hook: document
1234
1235pcomplete.c
1236 - gen_action_completions: in the CA_DIRECTORY case, turn off
1237 rl_filename_completion_desired if it was off before we called
1238 rl_filename_completion_function and we didn't get any matches.
1239 Having it on causes readline to quote the matches as if they
1240 were filenames. Adds functionality requested by many,
1241 including Clark Wang <dearvoid@gmail.com>
1242
1243assoc.[ch]
1244 - assoc_replace: new function, takes the same arguments as
1245 assoc_insert, but returns the old data instead of freeing it
1246 - assoc_insert: if the object returned by hash_insert doesn't have
1247 the same value for its key as the key passed as an argument, we
1248 are overwriting an existing value. In this case, we can free the
1249 key. Fixes bug reported by David Parks <davidparks21@yahoo.com>
1250
1251 10/5
1252 ----
1253print_cmd.c
1254 - indirection_level_string: small change to only re-enable `x'
1255 option after calling decode_prompt_string if it was on before. In
1256 normal mode, it will be, but John Reiser <jreiser@bitwagon.com>
1257 has a novel use for that code in conjunction with a pre-loaded
1258 shared library that traces system call usage in shell scripts
1259
1260 10/10
1261 -----
1262Makefile.in
1263 - Fix from Mike Frysinger <vapier@gentoo.org> to avoid trying to
1264 build y.tab.c and y.tab.h with two separate runs of yacc if
1265 parse.y changes. Problem with parallel makes
1266 - Fix from Mike Frysinger <vapier@gentoo.org> to avoid subdirectory
1267 builds each trying to make version.h (and all its dependencies)
1268
1269lib/sh/Makefile.in
1270 - remove some dependencies on version.h where it doesn't make sense
1271
1272variables.c
1273 - initialize_shell_variables: while reading the environment, a shell
1274 running in posix mode now checks for SHELLOPTS being readonly (it
1275 gets set early on in main()) before trying to assign to it. It
1276 saves an error message and the variable gets parsed as it should.
1277 Fixes bug reported by Len Giambrone <Len.Giambrone@intersystems.com>
1278
1279 10/14
1280 -----
1281doc/{bash.1,bashref.texi}
1282 - add to the "duplicating file descriptors" description that >&word
1283 doesn't redirect stdout and stderr if word expands to `-'
1284 - add to the "appending standard output and standard error"
1285 description a note that >&word, where word is a number or `-',
1286 causes other redirection operators to apply for sh and Posix
1287 compatibility reasons. Suggested by Greg Wooledge
1288 <wooledg@eeg.ccf.org>
1289
1290 10/15
1291 -----
1292pcomplete.c
1293 - change pcomp_filename_completion_function to only run the filename
1294 dequoting function in the cases (as best as it can figure) where
1295 readline won't do it via rl_filename_completion_function. Based
1296 on reports from <lolilolicon@gmail.com>
1297
1298 10/19
1299 -----
1300bashline.c
1301 - attempt_shell_completion: add call to set_directory_hook() to make
1302 sure the rewrite functions are correct. It's cheap and doesn't
1303 hurt
1304 - command_word_completion_function: if completing a command name that
1305 starts with `.' or `..', temporarily suppress the effects of the
1306 `direxpand' option and restore the correct value after calling
1307 rl_filename_completion_function. If it's enabled, the directory
1308 name will be rewritten and no longer match `./' or `../'. Fixes
1309 problem reported by Michael Kalisz <michael@kalisz.homelinux.net>
1310
1311 10/22
1312 -----
1313builtins/history.def
1314 - push_history: make sure remember_on_history is enabled before we
1315 try to delete the last history entry -- the `history -s' command
1316 might not have been saved. Fixes bug reported by
1317 lester@vmw-les.eng.vmware.com
1318
1319lib/readline/complete.c
1320 - rl_callback_read_char: add calls to a macro CALLBACK_READ_RETURN
1321 instead of straight return; add same call at end of function.
1322 Placeholder for future work in deinstalling signal handlers when
1323 readline is not active
1324
1325 10/25
1326 -----
1327expr.c
1328 - exp2: catch arithmetic overflow when val1 == INTMAX_MIN and val2 == -1
1329 for DIV and MOD and avoid SIGFPE. Bug report and pointer to fix
1330 from Jaak Ristioja <jaak.ristioja@cyber.ee>
1331 - expassign: same changes for arithmetic overflow for DIV and MOD
1332
1333 10/28
1334 -----
1335subst.c
1336 - parameter_brace_expand: allow pattern substitution when there is an
1337 expansion of the form ${var/} as a no-op: replacing nothing with
1338 nothing
1339 - parameter_brace_patsub: don't need to check for PATSUB being NULL;
1340 it never is
1341
1342flags.c
1343 - if STRICT_POSIX is defined, initialize history_expansion to 0, since
1344 history expansion (and its treatment of ! within double quotes) is
1345 not a conforming posix environment. From austin-group issue 500
1346
1347lib/readline/histexpand.c
1348 - history_expand: when processing a string within double quotes
1349 (DQUOTE == 1), make the closing double quote inhibit history
1350 expansion, as if the word were outside double quotes. In effect,
1351 we assume that the double quote is followed by a character in
1352 history_no_expand_chars. tcsh and csh seem to do this. This
1353 answers a persistent complaint about history expansion
1354
1355 10/29
1356 -----
1357make_cmd.c
1358 - make_arith_for_command: use skip_to_delim to find the next `;'
1359 when breaking the string between the double parens into three
1360 separate components instead of a simple character loop. Fixes
1361 bug reported by Dan Douglas <ormaaj@gmail.com>
1362
1363 11/2
1364 ----
1365Makefile.in
1366 - make libbuiltins.a depend on builtext.h to serialize its creation
1367 and avoid conflict between multiple invocations of mkbuiltins.
1368 Fix from Mike Frysinger <vapier@gentoo.org>
1369
1370 11/5
1371 ----
1372findcmd.c
1373 - user_command_matches: if stat(".", ...) returns -1, set st_dev
1374 and st_ino fields in dotinfo to 0 to avoid same_file matches
1375 - find_user_command_in_path: check stat(2) return the same way
1376
1377lib/glob/glob.c
1378 - glob_vector: don't call strlen(pat) without checking pat == 0
1379 - glob_dir_to_array: make sure to free `result' and all allocated
1380 members before returning error due to malloc failure
1381 - glob_vector: make sure to free `nextname' and `npat' on errors
1382 (mostly when setting lose = 1)
1383 - glob_vector: if flags & GX_MATCHDIRS but not GX_ALLDIRS, make
1384 sure we free `subdir'
1385 - glob_filename: when expanding ** (GX_ALLDIRS), make sure we
1386 free temp_results (return value from glob_vector)
1387
1388lib/glob/xmbsrtowcs.c
1389 - xdupmbstowcs: fix call to realloc to use sizeof (char *) instead
1390 of sizeof (char **) when assigning idxtmp
1391
1392execute_cmd.c
1393 - print_index_and_element: return 0 right away if L == 0
1394 - is_dirname: fix memory leak by freeing `temp'
1395 - time_command: don't try to deref NULL `command' when assigning
1396 to `posix_time'
1397 - shell_execve: null-terminate `sample' after READ_SAMPLE_BUF so it's
1398 terminated for functions that expect that
1399
1400builtins/read.def
1401 - read_builtin: don't call bind_read_variable with a potentially-null
1402 string
1403
1404pcomplete.c
1405 - gen_command_matches: don't call dispose_word_desc with a NULL arg
1406 - gen_compspec_completions: fix memory leak by freeing `ret' before
1407 calling gen_action_completions (tcs, ...). happens when
1408 performing directory completion as default and no completions
1409 have been generated
1410 - gen_progcomp_completions: make sure to set foundp to 0 whenever
1411 returning NULL
1412 - it_init_aliases: fix memory leak by freeing alias_list before
1413 returning
1414
1415bashline.c
1416 - command_word_completion_function: don't call restore_tilde with a
1417 NULL directory_part argument
1418 - bash_directory_expansion: bugfix: don't throw away results of
1419 rl_directory_rewrite_hook if it's set and returns non-zero
1420 - bind_keyseq_to_unix_command: free `kseq' before returning error
1421
1422arrayfunc.c
1423 - assign_array_element_internal: make sure `akey' is freed if non-null
1424 before returning error
1425 - assign_compound_array_list: free `akey' before returning error
1426 - array_value_internal: free `akey' before returning error
1427 - unbind_array_element: free `akey' before returning error
1428
1429subst.c
1430 - array_length_reference: free `akey' before returning error in case
1431 of expand_assignment_string_to_string error
1432 - array_length_reference: free `akey' after call to assoc_reference
1433 - skip_to_delim: if skipping process and command substitution, free
1434 return value from extract_process_subst
1435 - parameter_brace_substring: free `val' (vtype == VT_VARIABLE) before
1436 returning if verify_substring_values fails
1437 - parameter_brace_expand: remove two duplicate lines that allocate
1438 ret in parameter_brace_substring case
1439 - parameter_brace_expand: convert `free (name); name = xmalloc (...)'
1440 to use `xrealloc (name, ...)'
1441 - parameter_brace_expand: free `name' before returning when handling
1442 ${!PREFIX*} expansion
1443 - split_at_delims: fix memory leak by freeing `d2' before returning
1444
1445redir.c
1446 - redirection_error: free `filename' if the redirection operator is
1447 REDIR_VARASSIGN by assigning allocname
1448
1449eval.c
1450 - send_pwd_to_eterm: fix memory leak by freeing value returned by
1451 get_working_directory()
1452
1453builtins/cd.def
1454 - change_to_directory: fix memory leak by freeing return value from
1455 resetpwd()
1456 - cd_builtin: fix memory leak by freeing value returned by dirspell()
1457 - cd_builtin: fix memory leak by freeing `directory' if appropriate
1458 before overwriting with return value from resetpwd()
1459
1460builtins/type.def
1461 - describe_command: free `full_path' before overwriting it with return
1462 value from sh_makepath
1463
1464builtins/complete.def
1465 - compgen_builtin: fix memory leak by calling strlist_dispose (sl)
1466 before overwriting sl with return value from completions_to_stringlist
1467
1468builtins/hash.def
1469 - list_hashed_filename_targets: fix memory leak by freeing `target'
1470
1471make_cmd.c
1472 - make_arith_for_command: free `init', `test', and `step' before
1473 returning error on parse error
1474
1475jobs.c
1476 - initialize_job_control: don't call move_to_high_fd if shell_tty == -1
1477
1478general.c
1479 - check_dev_tty: don't call close with an fd < 0
1480 - legal_number: deal with NULL `string' argument, return invalid
1481
1482lib/sh/fmtulong.c
1483 - fmtulong: if the `base' argument is invalid, make sure we index
1484 buf by `len-1' at maximum
1485
1486print_cmd.c
1487 - print_deferred_heredocs: don't try to dereference a NULL `cstring'
1488 - cprintf: make sure to call va_end (args)
1489
1490variables.c
1491 - push_dollar_vars: fix call to xrealloc to use sizeof (WORD_LIST *)
1492 instead of sizeof (WORD_LIST **)
1493
1494lib/sh/zmapfd.c
1495 - zmapfd: if read returns error, free result and return -1 immediately
1496 instead of trying to reallocate it
1497
1498 11/6
1499 ----
1500execute_cmd.c
1501 - cpl_reap: rewrote to avoid using pointer after freeing it; now builds
1502 new coproc list on the fly while traversing the old one and sets the
1503 right values for coproc_list when done
1504
1505 11/12
1506 -----
1507builtins/set.def
1508 - if neither -f nor -v supplied, don't allow a readonly function to
1509 be implicitly unset. Fixes bug reported by Jens Schmidt
1510 <jens.schmidt35@arcor.de>
1511
1512lib/readline/callback.c
1513 - change CALLBACK_READ_RETURN to clear signal handlers before returning
1514 from rl_callback_read_char so readline's signal handlers aren't
1515 installed when readline doesn't have control. Idea from Jan
1516 Kratochvil <jan.ktratochvil@redhat.com> and the GDB development
1517 team
1518
1519pcomplete.h
1520 - COPT_NOQUOTE: new complete/compgen option value
1521
1522builtins/complete.def
1523 - noquote: new complete/compgen option; will be used to disable
1524 filename completion quoting
1525
1526pcomplete.c
1527 - pcomp_set_readline_variables: pay attention to COPT_NOQUOTE; turns
1528 of rl_filename_quoting_desired if set; turns it on if unset (value
1529 is inverted, since default is on)
1530
1531doc/bash.1,lib/readline/doc/rluser.texi
1532 - document new -o noquote option to complete/compgen/compopt
1533
1534pathexp.c
1535 - quote_string_for_globbing: if QGLOB_REGEXP, make sure characters
1536 between brackets in an ERE bracket expression are not inappropriately
1537 quoted with backslashes. This is a pretty substantial change,
1538 should be stressed when opening bash up for alpha and beta tests.
1539 Fixes bug pointed out by Stephane Chazleas
1540 <stephane_chazelas@yahoo.fr>
1541
1542doc/{bash.1,bashref.texi}
1543 - document that regexp matches can be inconsistent when quoting
1544 characters in bracket expressions, since usual quoting characters
1545 lose their meaning within brackets
1546 - note that regular expression matching when the pattern is stored
1547 in a shell variable which is quoted for expansion causes string
1548 matching
1549
1550redir.h
1551 - RX_SAVEFD: new flag value; notes that a redirection denotes an
1552 fd used to save another even if it's not >= SHELL_FD_BASE
1553
1554redir.c
1555 - do_redirection_internal: when deciding whether or not to reset the
1556 close-on-exec flag on a restored file descriptor, trust the value
1557 of redirect->flags & RX_SAVCLEXEC even if the fd is < SHELL_FD_BASE
1558 if the RX_SAVEFD flag is set
1559 - add_undo_redirect: set the RX_SAVEFD flag if the file descriptor
1560 limit is such that the shell can't duplicate to a file descriptor
1561 >= 10. Fixes a limitation that tripped a coreutils test reported
1562 by Paul Eggert <eggert@cs.ucla.edu>
1563
1564 11/19
1565 -----
1566doc/{bash.1,bashref.texi},lib/readline/doc/hsuser.texi
1567 - make it clear that bash runs HISTFILESIZE=$HISTSIZE after reading
1568 the startup files
1569 - make it clear that bash runs HISTSIZE=500 after reading the
1570 startup files
1571 - make it clear that setting HISTSIZE=0 causes commands to not be
1572 saved in the history list
1573 - make it clear that setting HISTFILESIZE=0 causes the history file
1574 to be truncated to zero size
1575
1576variables.c
1577 - sv_histsize: change so setting HISTSIZE to a value less than 0
1578 causes the history to be `unstifled'
1579 - sv_histsize: change so setting HISTFILESIZE to a value less than 0
1580 results in no file truncation
1581 - make it clear that numeric values less than 0 for HISTFILESIZE or
1582 HISTSIZE inhibit the usual functions
1583
1584 11/23
1585 -----
1586parse.y
1587 - save_input_line_state: add missing `return ls' at the end, since the
1588 function is supposed to return its argument. Pointed out by
1589 Andreas Schwab <schwab@linux-m68k.org>
1590
1591builtins/read.def
1592 - skip over NUL bytes in input, as most modern shells seem to. Bug
1593 report by Matthew Story <matt@tablethotels.com>
1594
1595lib/readline/vi_mode.c
1596 - rl_vi_replace: set _rl_vi_last_key_before_insert to invoking key
1597
1598 11/25
1599 -----
1600builtins/read.def
1601 - read_builtin: if xrealloc returns same pointer as first argument,
1602 don't bother with the remove_unwind_protect/add_unwind_protect pair
1603 - read_builtin: set a flag (`reading') around calls to zread/zreadc
1604 and readline()
1605 - sigalrm: change to set flag (`sigalrm_seen') and only longjmp if
1606 currently in read(2) (reading != 0)
1607 - CHECK_ALRM: new macro, checks sigalrm_seen and longjmps if non-zero,
1608 behavior of old SIGALRM catching function
1609 - read_builtin: call CHECK_ALRM in appropriate places while reading
1610 line of input. Fixes bug reported by Pierre Gaston
1611 <pierre.gaston@gmail.com>
1612
1613lib/readline/vi_mode.c
1614 - rl_vi_replace: initialize characters before printing characters in
1615 vi_replace_keymap to their default values in vi_insertion_keymap,
1616 since we're supposed to be in insert mode replacing characters
1617 - rl_vi_replace: call rl_vi_start_inserting to set last command to
1618 `R' for undo
1619 - rl_vi_replace: set _rl_vi_last_key_before_insert to `R' for future
1620 use by _rl_vi_done_inserting
1621 - vi_save_insert_buffer: new function, broke out code that copies text
1622 into vi_insert_buffer from _rl_vi_save_insert
1623 - _rl_vi_save_replace: new function, saves text modified by
1624 rl_vi_replace (using current point and vi_replace_count to figure
1625 it out) to vi_replace_buffer
1626 - _rl_vi_save_insert: call vi_save_insert_buffer
1627 - _rl_vi_done_inserting: if _rl_vi_last_key_before_insert == 'R', call
1628 _rl_vi_save_replace to save text modified in replace mode (uses
1629 vi_save_insert_buffer)
1630 - _rl_vi_replace_insert: new function, replaces the number of chars
1631 in vi_insert_buffer after rl_point with contents ov vi_insert_buffer
1632 - rl_vi_redo: call _rl_vi_replace_insert if last command == 'R' and
1633 there's something in vi_insert_buffer. Fixes bug with `.' not
1634 redoing the most recent `R' command, reported by Geoff Clare
1635 <g.clare@opengroup.org> in readline area on savannah
1636
1637 11/26
1638 -----
1639lib/readline/rlprivate.h
1640 - RL_SIG_RECEIVED(): evaluate to non-zero if there is a pending signal
1641 to be handled
1642 - RL_SIGINT_RECEIVED(): evaluate to non-zero if there is a pending
1643 SIGINT to be handled
1644
1645lib/readline/complete.c
1646 - remove all mention of _rl_interrupt_immediately
1647 - rl_completion_matches: check RL_SIG_RECEIVED after each call to
1648 the entry function, call RL_CHECK_SIGNALS if true to handle the
1649 signal
1650 - rl_completion_matches: if RL_SIG_RECEIVED evaluates to true, free
1651 and zero out the match_list this function allocated
1652 - rl_completion_matches: if the completion entry function is
1653 rl_filename_completion_function, free the contents of match_list,
1654 because that function does not keep state and will not free the
1655 entries; avoids possible memory leak pointed out by
1656 Garrett Cooper <yanegomi@gmail.com>
1657 - gen_completion_matches: if RL_SIG_RECEIVED evalutes to true after
1658 calling rl_attempted_completion_function, free the returned match
1659 list and handle the signal with RL_CHECK_SIGNALS; avoids
1660 possible memory leak pointed out by Garrett Cooper
1661 <yanegomi@gmail.com>
1662 - gen_completion_matches: if RL_SIG_RECEIVED evaluates to true after
1663 calling rl_completion_matches, free the returned match list and
1664 handle the signal with RL_CHECK_SIGNALS
1665
1666lib/readline/util.c
1667 - rl_settracefp: new utility function to set the tracing FILE *
1668
1669lib/readline/signals.c
1670 - _rl_sigcleanup: pointer to a function that will be called with the
1671 signal and a void * argument from _rl_handle_signal
1672 - _rl_sigcleanarg: void * that the rest of the code can set to have
1673 passed to the signal cleanup function
1674 - _rl_handle_signal: if _rl_sigcleanup set, call as
1675 (*_rl_sigcleanup) (sig, _rl_sigcleanarg)
1676
1677lib/readline/rlprivate.h
1678 - extern declarations for _rl_sigcleanup and _rl_sigcleanarg
1679
1680lib/readline/complete.c
1681 - _rl_complete_sigcleanup: signal cleanup function for completion code;
1682 calls _rl_free_match_list on _rl_sigcleanarg if signal == SIGINT
1683 - rl_complete_internal: before calling display_matches if what_to_do
1684 == `?', set _rl_sigcleanup to _rl_complete_sigcleanup so the match
1685 list gets freed on SIGINT; avoids possible memory leak pointed out
1686 by Garrett Cooper <yanegomi@gmail.com>
1687 - rl_complete_internal: in default switch case, call _rl_free_match_list
1688 before returning to avoid memory leak
1689
1690doc/bashref.texi
1691 - start at a set of examples for the =~ regular expression matching
1692 operator, touching on keeping the pattern in a shell variable and
1693 quoting portions of the pattern to remove their special meaning
1694
1695 12/1
1696 ----
1697lib/glob/gmisc.c
1698 - extglob_pattern: new function, returns 1 if pattern passed as an
1699 argument looks like an extended globbing pattern
1700
1701lib/glob/glob.c
1702 - skipname: return 0 immediately if extglob_pattern returns non-zero,
1703 let the extended globbing code do the right thing with skipping
1704 names beginning with a `.'
1705 - mbskipname: return 0 immediately if extglob_pattern returns non-zero,
1706 let the extended globbing code do the right thing with skipping
1707 names beginning with a `.'. Fixes bug reported by Yongzhi Pan
1708 <panyongzhi@gmail.com>
1709
1710 12/2
1711 ----
1712lib/glob/smatch.c
1713 - patscan, patscan_wc: no longer static so other parts of the glob
1714 library can use them, renamed to glob_patscan, glob_patscan_wc
1715
1716lib/glob/glob.c
1717 - extern declarations for glob_patscan, glob_patscan_wc
1718 - wchkname: new function, does skipname on wchar_t pattern and dname,
1719 old body of mbskipname after converting to wide chars
1720 - extglob_skipname: new function, checks all subpatterns in an extglob
1721 pattern to determine whether or not a filename should be skipped.
1722 Calls skipname for each subpattern. Dname is only skipped if all
1723 subpatterns indicate it should be. Better fix for bug reported by
1724 Yongzhi Pan <panyongzhi@gmail.com>
1725 - wextglob_skipname: wide-char version of extglob_skipname, calls
1726 wchkname instead of calling back into mbskipname for each
1727 subpattern to avoid problems with char/wchar_t mismatch
1728 - skipname: call extglob_skipname if extglob_pattern returns non-zero
1729 - mbskipname: call wextglob_skipname if extglob_pattern returns non-zero
1730 - mbskipname: short-circuit immediately if no multibyte chars in
1731 pattern or filename
1732
1733execute_cmd.c
1734 - execute_cond_node: added parens to patmatch assignment statement to
1735 make intent clearer
1736
1737 12/3
1738 ----
1739configure.in,config.h.in
1740 - check for imaxdiv, define HAVE_IMAXDIV if present
1741
1742expr.c
1743 - expassign, exp2: use imaxdiv if available. Doesn't help with checks
1744 for overflow from 10/25
1745
1746 12/6
1747 ----
1748lib/readline/complete.c
1749 - compute_lcd_of_matches: if we're ignoring case in the matches, only
1750 use what the user typed as the lcd if it matches the first match
1751 (after sorting) up to the length of what was typed (if what the
1752 user typed is longer than the shortest of the possible matches, use
1753 the shortest common length of the matches instead). If it doesn't
1754 match, use the first of the list of matches, as if case were not
1755 being ignored. Fixes bug reported by Clark Wang
1756 <dearvoid@gmail.com>
1757
1758 12/7
1759 ----
1760builtins/cd.def
1761 - cd_builtin: add code to return error in case cd has more than one
1762 non-option argument, conditional on CD_COMPLAINS define (which is
1763 not defined anywhere)
1764
1765doc/{bash.1,bashref.texi}
1766 - note that additional arguments to cd following the directory name
1767 are ignored. Suggested by Vaclav Hanzl <hanzl@noel.feld.cvut.cz>
1768
1769 12/10
1770 -----
1771lib/readline/input.c
1772 - rl_read_key: don't need to increment key sequence length here; doing
1773 it leads to an off-by-one error
1774
1775lib/readline/macro.c
1776 - rl_end_kbd_macro: after off-by-one error with rl_key_sequence_length
1777 fixed, can decrement current_macro_index by rl_key_sequence_length
1778 (length of key sequence that closes keyboard macro)
1779
1780lib/readline/readline.c
1781 - _rl_dispatch_subseq: fix extra increment of rl_key_sequence_length
1782 when ESC maps to a new keymap and we're converting meta characters
1783 to ESC+key
1784 - _rl_dispatch_subseq: better increment of rl_key_sequence_length
1785 before we dispatch to a function in the ISFUNC case (where the
1786 second increment above should have happened)
1787 - rl_executing_keyseq: the full key sequence that ended up executing
1788 a readline command. Available to the calling application, maintained
1789 by _rl_dispatch_subseq, indexed by rl_key_sequence_length
1790 - rl_executing_key: the key that was bound to the currently-executing
1791 readline command. Same as the `key' argument to the function
1792
1793lib/readline/readline.h
1794 - rl_executing_keyseq: extern declaration
1795 - rl_executing_key: extern declaration
1796 - rl_key_sequence_length: declaration moved here from rlprivate.h,
1797 now part of public interface
1798
1799lib/readline/rlprivate.h
1800 - new extern declaration for _rl_executing_keyseq_size, buffer size
1801 for rl_executing_keyseq
1802
1803lib/readline/doc/rltech.texi
1804 - documented new variables: rl_executing_key, rl_executing_keyseq,
1805 rl_key_sequence_length
1806
1807 12/13
1808 -----
1809bashline.c
1810 - bash_execute_unix_command: replace ad-hoc code that searches
1811 cmd_xmap for correct command with call to rl_function_of_keyseq
1812 using rl_executing_keyseq; now supports key sequences longer
1813 than two characters. Fixes bug reported by Michael Kazior
1814 <kazikcz@gmail.com>
1815
1816 12/15
1817 -----
1818make_cmd.c
1819 - make_function_def: don't null out source_file before calling
1820 make_command so it can be used later on when the function definition
1821 is executed
1822
1823execute_cmd.c
1824 - execute_intern_function: second argument is now FUNCTION_DEF *
1825 instead of COMMAND *
1826 - execute_command_internal: call execute_intern_function with the
1827 new second argument (the entire FUNCTION_DEF instead of just the
1828 command member)
1829 - execute_intern_function: if DEBUGGER is defined, call
1830 bind_function_def before calling bind_function, just like
1831 make_function_def does (might be able to take out the call in
1832 make_function_def depending on what the debugger does with it).
1833 Fixes bug reported by <dethrophes@motd005>
1834
1835expr.c
1836 - more minor changes to cases of INTMAX_MIN % -1 and INTMAX_MIN / 1;
1837 fix typos and logic errors
1838
1839 12/16
1840 -----
1841bashline.c
1842 - find_cmd_start: change flags to remove SD_NOSKIPCMD so it skips over
1843 command substitutions and doesn't treat them as command separators
1844 - attempt_shell_completion: instead of taking first return from
1845 find_cmd_name as command name to use for programmable completion,
1846 use loop to skip over assignment statements. Fixes problem reported
1847 by Raphael Droz <raphael.droz+floss@gmail.com>
1848 - attempt_shell_completion: if we don't find a command name but the
1849 command line is non-empty, assume the other words are all assignment
1850 statements and flag that point is in a command position so we can
1851 do command name completion
1852 - attempt_shell_completion: if the word being completed is the first
1853 word following a series of assignment statements, and the
1854 command line is non-empty, flag that point is in a command position
1855 so we can do command name completion
1856
1857lib/readline/history.c
1858 - history_get_time: atol -> strtol
1859
1860 12/18
1861 -----
1862parse.y
1863 - parser_in_command_position: external interface to the
1864 command_token_position macro for use by other parts of the shell,
1865 like the completion mechanism
1866
1867externs.h
1868 - extern declaration for parser_in_command_position
1869
1870 12/19
1871 -----
1872
1873builtins/read.def
1874 - read_builtin: make sure all calls to bind_read_variable are passed
1875 a non-null string. Fixes bug reported by Dan Douglas
1876 <ormaaj@gmail.com>
1877
1878bashline.c
1879 - attempt_shell_completion: mark that we're in a command position if
1880 we're at the start of the line and the parser is ready to accept
1881 a reserved word or command name. Feature most recently suggested
1882 by Peng Yu <pengyu.ut@gmail.com>
1883
1884 12/21
1885 -----
1886lib/readline/bind.c
1887 - _rl_escchar: return the character that would be backslash-escaped
1888 to denote the control character passed as an argument ('\n' -> 'n')
1889 - _rl_isescape: return 1 if character passed is one that has a
1890 backslash escape
1891 - _rl_untranslate_macro_value: new second argument: use_escapes, if
1892 non-zero translate to backslash escapes where possible instead of
1893 using straight \C-x for control character `x'. Change callers
1894 - _rl_untranslate_macro_value: now global
1895
1896lib/readline/rlprivate.h
1897 - _rl_untranslate_macro_value: extern declaration
1898
1899lib/readline/{macro.c,readline.h}
1900 - rl_print_last_kbd_macro: new bindable function, inspired by patch
1901 from Mitchel Humpherys
1902
1903lib/readline/funmap.c
1904 - print-last-kbd-macro: new bindable command, bound to
1905 rl_print_last_kbd_macro
1906
1907lib/readline/doc/{rluser.texi,readline.3},doc/bash.1
1908 - print-last-kbd-macro: document.
1909
1910lib/readline/text.c
1911 - _rl_insert_next: if we're defining a macro, make sure the key gets
1912 added to the macro text (should really audit calls to rl_read_key()
1913 and make sure the right thing is happening for all of them)
1914
1915bashline.[ch]
1916 - print_unix_command_map: new function, prints all bound commands in
1917 cmd_xmap using rl_macro_dumper in a reusable format
1918
1919builtins/bind.def
1920 - new -X option: print all keysequences bound to Unix commands using
1921 print_unix_command_map. Feature suggested by Dennis Williamson
1922 (2/2011)
1923
1924doc/{bash.1,bashref.texi}
1925 - document new `bind -X' option
1926
1927 12/24
1928 -----
1929
1930doc/{bash.1,bashref.texi}
1931 - add a couple of sentences to the description of the case modification
1932 operators making it clearer that each character of parameter is
1933 tested against the pattern, and that the pattern should only attempt
1934 to match a single character. Suggested by Bill Gradwohl
1935 <bill@ycc.com>
1936
1937 12/28
1938 -----
1939shell.c
1940 - init_noninteractive: instead of calling set_job_control(0) to
1941 unconditionally turn off job control, turn on job control if
1942 forced_interactive or jobs_m_flag is set
1943 - shell_initialize: call initialize_job_control with jobs_m_flag as
1944 argument so `bash -m script' enables job control while running the
1945 script
1946
1947jobs.c
1948 - initialize_job_control: if the `force' argument is non-zero, turn on
1949 job control even if the shell is not currently interactive
1950 (interactive == 0)
1951
1952 12/29
1953 -----
1954
1955flags.h
1956 - new extern declaration for jobs_m_flag
1957
1958builtins/{cd,set}.def,doc/{bash.1,bashref.texi}
1959 - added text clarifying the descriptions of cd -L and -P, suggested by
1960 Padraig Brady <p@draigbrady.com>
1961 - slight change to the description of `set -P' about resolving symbolic
1962 links
1963
1964lib/readline/doc/rluser.texi
1965 - Added an example to the programmable completion section: _comp_cd,
1966 a completion function for cd, with additional verbiage. Text
1967 includes a reference to the bash_completion project
1968
1969 1/1/2012
1970 --------
1971jobs.c
1972 - set_job_status_and_cleanup: note that a job is stopped due to
1973 SIGTSTP (any_tstped) if job_control is set; there's no need to
1974 test interactive
1975
1976 1/5
1977 ---
1978quit.h
1979 - LASTSIG(): new macro, expands to signal number of last terminating
1980 signal received (terminating_signal or SIGINT)
1981
1982trap.c
1983 - first_pending_trap: returns lowest signal number with a trap pending
1984 - trapped_signal_received: set to the last trapped signal the shell
1985 received in trap_handler(); reset to 0 in run_pending_traps
1986
1987builtins/read.def
1988 - read_builtin: changes to posix-mode (posixly_correct != 0) to make
1989 `read' interruptible by a trapped signal. After the trap runs,
1990 read returns 128+sig and does not assign the partially-read line
1991 to the named variable(s). From an austin-group discussion started
1992 by David Korn
1993
1994 1/11
1995 ----
1996doc/{bash.1,bashref.texi}
1997 - slight changes to the descriptions of the compat32 and compat40 shell
1998 options to clarify their meaning
1999
2000 1/12
2001 ----
2002lib/readline/{colors.[ch],parse-colors.[ch]}
2003 - new files, part of color infrastructure support
2004
2005Makefile.in,lib/readline/Makefile.in
2006 - arrange to have colors.o and parse-colors.o added to readline
2007 library
2008
2009{configure,config.h}.in
2010 - check for stdbool.h, define HAVE_STDBOOL_H if found
2011
2012 1/14
2013 ----
2014lib/readline/bind.c
2015 - colored_stats: new bindable variable, enables using colors to
2016 indicate file type when listing completions
2017
2018lib/readline/complete.c
2019 - _rl_colored_stats: new variable, controlled by colored-stats bindable
2020 variable
2021 - colored_stat_start, colored_stat_end: new functions to set and reset
2022 the terminal color appropriately depending on the type of the
2023 filename to be printed
2024 - print_filename: changes to print colors if `colored-stats' variable
2025 set. Changes contributed by Raphael Droz
2026 <raphael.droz+floss@gmail.com>
2027
2028lib/readline/readline.c
2029 - rl_initialize_everything: add call to _rl_parse_colors to parse
2030 color values out of $LS_COLORS. May have to add to rl_initialize
2031 to make more dynamic if LS_COLORS changes (which doesn't happen
2032 very often, if at all)
2033
2034lib/readline/rlprivate.h
2035 - _rl_colored_stats: new extern declaration
2036
2037lib/readline/doc/{readline.3,rluser.texi},doc/bash.1
2038 - colored-stats: document new bindable readline variable
2039
2040lib/readline/colors.c
2041 - _rl_print_color_indicator: call rl_filename_stat_hook before calling
2042 lstat/stat so we can get color indicators for stuff like
2043 $HOME/Applications
2044
2045lib/readline/complete.c
2046 - stat_char: call rl_filename_stat_hook before calling lstat/stat
2047
2048findcmd.[ch],execute_cmd.c
2049 - search_for_command: now takes a second `flags' argument; changed
2050 header function prototype and callers
2051 - search_for_command: if (flags & 1), put the command found in $PATH
2052 into the command hash table (previous default behavior)
2053
2054execute_cmd.c
2055 - is_dirname: call search_for_command with flags argument of 0 so it
2056 doesn't try to put something in the command hash table
2057
2058bashline.c
2059 - bash_command_name_stat_hook: a hook function for readline's
2060 filename_stat_hook that does $PATH searching the same way that
2061 execute_cmd.c:execute_disk_command() does it, and rewrites the
2062 passed filename if found. Does not put names into command hash
2063 table. This allows command name completion to take advantage
2064 of `visible-stats' and `colored-stats' settings.
2065 - executable_completion: new function, calls the directory completion
2066 hook to expand the filename before calling executable_file or
2067 executable_or_directory; change command_word_completion_function to
2068 call executable_completion. This allows $HOME/bin/[TAB] to do
2069 command completion and display alternatives
2070
2071 1/17
2072 ----
2073pcomplete.c
2074 - gen_command_matches: now takes a new second argument: the command
2075 name as deciphered by the programmable completion code and used
2076 to look up the compspec; changed callers (gen_compspec_completions)
2077 - gen_shell_function_matches: now takes a new second argument: the
2078 command that originally caused the completion function to be
2079 invoked; changed callers (gen_compspec_completions))
2080 - build_arg_list: now takes a new second argument: the command name
2081 corresponding to the current compspec; changed callers
2082 (gen_command_matches, gen_shell_function_matches)
2083 - build_arg_list: now uses `cmd' argument to create $1 passed to
2084 invoked command or shell function
2085 - gen_compspec_completions: if we skipped a null command at the
2086 beginning of the line (e.g., for completing `>'), add a new word for
2087 it at the beginning of the word list and increment nw and cw
2088 appropriately. This is all a partial fix for the shortcoming
2089 pointed out by Sung Pae <sungpae@gmail.com>
2090
2091 1/18
2092 ----
2093
2094{configure,config.h}.in
2095 - new check: check for AUDIT_USER_TTY defined in <linux/audit.h>,
2096 define HAVE_DECL_AUDIT_USER_TTY if both are found
2097
2098lib/readline/rlconf.h
2099 - ENABLE_TTY_AUDIT_SUPPORT: new define, allows use of the Linux kernel
2100 tty auditing system if it's available and enabled
2101
2102lib/readline/util.c
2103 - _rl_audit_tty: new function, send a string to the kernel tty audit
2104 system
2105
2106lib/readline/rlprivate.h
2107 - _rl_audit_tty: new extern declaration
2108
2109lib/readline/readline.c
2110 - readline: call _rl_audit_tty with line to be returned before returning
2111 it if the Linux tty audit system is available and it's been enabled
2112 in rlconf.h Original patch from Miroslav Trmac; recent request
2113 from Miroslav Lichvar <mlichvar@redhat.com>
2114
2115 1/21
2116 ----
2117
2118lib/readline/readline.c:
2119 - _rl_dispatch_subseq: add an inter-character timeout for multi-char
2120 key sequences. Suggested by <rogerx.oss@gmail.com>. Still needs
2121 work to make a user-settable variable
2122
2123parse.y
2124 - shell_getc: make code that uses the pop_alias dependent on ALIAS
2125 define
2126
2127variables.h
2128 - sv_tz: extern define should only depend on HAVE_TZSET
2129
2130expr.c
2131 - expr_streval: if ARRAY_VARS is not defined, set lvalue->ind to -1;
2132 move assignment to `ind' inside define
2133 - expr_bind_array_element: declaration and uses need to be #ifdef
2134 ARRAY_VARS
2135
2136arrayfunc.h
2137 - AV_ALLOWALL, AV_QUOTED, AV_USEIND: define to 0 if ARRAY_VARS not
2138 defined; used in subst.c unconditionally
2139
2140sig.h
2141 - make the signal blocking functions not dependent on JOB_CONTROL
2142
2143sig.c
2144 - sigprocmask: make the replacement definition not dependent on
2145 JOB_CONTROL
2146
2147trap.c
2148 - use BLOCK_SIGNAL/UNBLOCK_SIGNAL instead of code dependent on
2149 HAVE_POSIX_SIGNALS and BSD signals
2150
2151 1/24
2152 ----
2153
2154print_cmd.c
2155 - print_redirection_list: change the conditions under which
2156 r_duplicating_output_word is mapped to r_err_and_out to more or
2157 less match those used in redir.c. Fixes bug pointed out by
2158 Dan Douglas <ormaaj@gmail.com>
2159
2160
2161 1/29
2162 ----
2163lib/readline/signals.c
2164 - _rl_block_sigwinch,_rl_release_sigwinch: don't compile in bodies
2165 unless SIGWINCH is defined. Fixes bug reported by Pierre Muller
2166 <pierre.muller@ics-cnrs.unistra.fr>
2167
2168doc/{bash.1,bashref.texi}
2169 - small modifications to the introduction to the REDIRECTION section
2170 to describe how redirections can modify file handles
2171 - small modification to the section describing base#n to make it
2172 clearer that n can be denoted using non-numerics. From a posting
2173 by Linda Walsh <bash@tlinx.org>
2174
2175 2/2
2176 ---
2177builtins/printf.def
2178 - printf_builtin: make sure vbuf is intialized and non-null when -v
2179 is supplied, since other parts of the code assume that it's not
2180 null (e.g., bind_printf_variable()). Fixes bug reported by Jim
2181 Avera <james_avera@yahoo.com>
2182
2183 2/4
2184 ---
2185lib/readline/undo.c
2186 - _rl_free_undo_list: new function, old body of rl_free_undo_list,
2187 frees undo entries in UNDO_LIST * passed as argument
2188 - rl_free_undo_list: call _rl_free_undo_list
2189
2190lib/readline/rlprivate.h
2191 - _rl_free_undo_list: new extern declaration
2192 - _rl_keyseq_timeout: new extern declaration (see below)
2193
2194lib/readline/misc.c
2195 - rl_clear_history: new function. Clears the history list and frees
2196 all associated data similar to history.c:clear_history(), but
2197 takes rl_undo_list into account and frees and UNDO_LISTs saved as
2198 `data' members of a history list entry
2199
2200lib/readline/doc/rltech.texi
2201 - rl_clear_history: documented
2202
2203lib/readline/readline.c
2204 - _rl_keyseq_timeout: new variable to hold intra-key timeout value
2205 from 1/21 fix; specified in milliseconds. Default value is 500
2206 - _rl_dispatch_subseq: change to use _rl_keyseq_timeout as intra-key
2207 timeout if it's greater than 0; no timeout if <= 0
2208 - _rl_dispatch_subseq: don't check for queued keyboard input if we have
2209 pushed or pending input, or if we're reading input from a macro
2210
2211lib/readline/bind.c
2212 - keyseq-timeout: new bindable variable, shadows _rl_keyseq_timeout
2213 - string_varlist: add keyseq-timeout
2214 - sv_seqtimeout: new function to modify value of _rl_keyseq_timeout;
2215 clamps negative values at 0 for now
2216 - _rl_get_string_variable_value: return value for keyseq-timeout
2217
2218doc/bash.1,lib/readline/doc/{rluser.texi,readline.3}
2219 - keyseq-timeout: documented
2220
2221lib/readline/isearch.c
2222 - _rl_isearch_dispatch: modification to fix from 7/18 to not use
2223 cxt->keymap and cxt->okeymap, since by the time this code is
2224 executed, they are equal. Use `f' to check for rl_insert or
2225 unbound func
2226 - _rl_isearch_dispatch: if we're switching keymaps, not in
2227 callback mode, and don't have pending or pushed input, use
2228 _rl_input_queued to resolve a potentially ambiguous key sequence.
2229 Suggested by Roger Zauner <rogerx.oss@gmail.com>
2230 - _rl_isearch_dispatch: if we have changed keymaps and resolved to
2231 an editing function (not self-insert), make sure we stuff the
2232 right characters back onto the input after changing the keymap
2233 back so the right editing function is executed after the search
2234 is terminated. Rest of fix for bug reported by Roger Zauner
2235 <rogerx.oss@gmail.com>
2236
2237 2/5
2238 ---
2239builtins/gen-helpfiles.c
2240 - new file: reads struct builtin and writes the long docs to files
2241 in the `helpdirs' subdirectory. The filename is given in the
2242 previously-unused `handle' member of the struct builtin. Links
2243 with `tmpbuiltins.o', which is created by Makefile to have the
2244 right long documentation. When not cross-compiling, gets the
2245 right #defines based on configuration options from config.h instead
2246 of trying to parse conditional parts of def files. Fixes
2247 shortcoming pointed out by Andreas Schwab <schwab@linux-m68k.org>
2248
2249builtins/Makefile.in
2250 - tmpbuiltins.c: new generated file, created to enable creation of
2251 separate helpfiles based on correct #defines instead of trying to
2252 parse conditional parts of def files
2253 - gen-helpfiles: new program to generate helpfiles, links with
2254 tmpbuiltins.o
2255 - HELPFILES_TARGET: new target, substituted by configure to `helpdoc'
2256 if separate helpfiles requested
2257 - targets: new target, libbuiltins.a and $(HELPFILES_TARGET)
2258 - CREATED_OBJECTS: new variable, holds created object files for
2259 make clean; changed make clean to remove created objects
2260 - helpdoc: changed to call gen-helpfiles instead of mkbuiltins
2261
2262Makefile.in
2263 - when building libbuiltins.a, recursively call make with `targets'
2264 argument to make sure separate helpfiles get built
2265
2266configure.in
2267 - substitute `helpdoc' as value of HELPFILES_TARGET if
2268 --enable-separate-helpfiles supplied as configure argument
2269
2270builtins/mkbuiltins.c
2271 - `-nofunctions': new argument, causes mkbuiltins to not write value
2272 for function implementing a particular builtin to struct builtin
2273 and to write document file name to `handle' member of struct builtin
2274 - no longer writes separate helpfiles; that is left to gen-helpfiles
2275
2276 2/8
2277 ---
2278subst.c
2279 - make sure last_command_exit_value is set to a non-zero value before
2280 any calls to report_error, since `-e' set will short-circuit
2281 report_error. Fixes bug reported by Ewan Mellor
2282 <Ewan.Mellor@eu.citrix.com>
2283
2284variables.c
2285 - make_local_array_variable: added second argument; if non-zero,
2286 function will return an existing local associative array variable
2287 instead of insisting on an indexed array
2288
2289variable.h,subst.c
2290 - make_local_array_variable: changed prototype and caller
2291
2292builtins/declare.def
2293 - declare_internal: add second arg to call to make_local_array_variable;
2294 making_array_special, which indicates we're processing an
2295 assignment like declare a[b]=c. Fixes seg fault resulting from
2296 a being an already-declared local associative array variable in a
2297 function. Ubuntu bash bug 928900.
2298
2299 2/14
2300 ----
2301
2302execute_cmd.c
2303 - execute_command_internal: if redirections into or out of a loop fail,
2304 don't try to free ofifo_list unless saved_fifo is non-zero. It's
2305 only valid if saved_fifo is set
2306
2307 2/15
2308 ----
2309{arrayfunc,braces,variables}.c
2310 - last_command_exit_value: make sure it's set before any calls to
2311 report_error, since -e will cause that to exit the shell
2312
2313builtins/common.c
2314 - get_job_by_name: call internal_error instead of report_error so this
2315 doesn't exit the shell
2316
2317 2/18
2318 ----
2319builtins/evalstring.c
2320 - parse_and_execute: make sure the file descriptor to be redirected to
2321 is 1 before calling cat_file. One fix for bug reported by Dan Douglas
2322 <ormaaj@gmail.com>
2323
2324parse.y
2325 - read_token_word: don't return NUMBER if a string of all digits
2326 resolves to a number that overflows the bounds of an intmax_t.
2327 Other fix for bug reported by Dan Douglas <ormaaj@gmail.com>
2328
2329 2/19
2330 ----
2331lib/sh/strtrans.c
2332 - ansicstr: use 0x7f as the boundary for characters that translate
2333 directly from ASCII to unicode (\u and \U escapes) instead of
2334 UCHAR_MAX, since everything >= 0x80 requires more than one byte.
2335 Bug and fix from John Kearney <dethrophes@web.de>
2336
2337builtins/printf.def
2338 - tescape: ditto for printf \u and \U escape sequences
2339
2340 2/20
2341 ----
2342lib/sh/unicode.c
2343 - u32toutf8: fix to handle encodings up to six bytes long correctly
2344 (though technically UTF-8 only has characters up to 4 bytes long).
2345 Report and fix from John Kearney <dethrophes@web.de>
2346 - u32toutf8: first argument is now an unsigned 32-bit quantity,
2347 changed callers (u32cconv) to pass c instead of wc
2348 - u32reset: new function, resets local static state to uninitialized
2349 (locale information, currently)
2350
2351locale.c
2352 - call u32reset whenever LC_CTYPE/LC_ALL/LANG is changed to reset the
2353 cached locale information used by u32cconv. From a report from
2354 John Kearney <dethrophes@web.de>
2355
2356 2/21
2357 ----
2358doc/{bash,builtins}.1
2359 - minor changes from Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
2360
2361lib/sh/unicode.c
2362 - u32cconv: only assume you can directly call wctomb on the passed
2363 value if __STDC_ISO_10646__ is defined and the value is <=
2364 0x7fffffff
2365 - stub_charset: return locale as default instead of "ASCII", let
2366 rest of code decide what to do with it
2367
2368lib/readline/parens.c
2369 - _rl_enable_paren_matching: make paren matching work in vi insert
2370 mode. Bug report from <derflob@derflob.de>
2371
2372 2/22
2373 ----
2374lib/sh/shquote.c
2375 - sh_backslash_quote: quote tilde in places where it would be
2376 expanded. From a report from John Kearney <dethrophes@web.de>
2377
2378 2/23
2379 ----
2380execute_cmd.c
2381 - execute_pipeline: wrap the discard_unwind_frame call in #ifdef
2382 JOB_CONTROL, since the frame is only created if JOB_CONTROL is
2383 defined. Bug and fix from Doug Kehn <rdkehn@yahoo.com>
2384
2385 2/25
2386 ----
2387error.c
2388 - report_error: make sure last_command_exit_value is non-zero before
2389 we call exit_shell, since the exit trap may reference it. Call
2390 exit_shell with last_command_exit_value to allow exit statuses
2391 other than 1
2392
2393unicode.c
2394 - stub_charset: use local static buffer to hold charset, don't change
2395 value returned by get_locale_var. Based on idea and code from
2396 John Kearney <dethrophes@web.de>
2397 - u32toutf16: function to convert unsigned 32-bit value (unicode) to
2398 UTF-16. From John Kearney <dethrophes@web.de>
2399 - u32cconv: call u32toutf16 if __STDC_ISO_10646__ defined and wchar_t
2400 is two bytes, send result to wcstombs, return if not encoding error.
2401 From John Kearney <dethrophes@web.de>
2402 - u32cconv: return UTF-8 conversion if iconv conversion to local
2403 charset is unsupported
2404
2405 3/2
2406 ---
2407lib/readline/complete.c
2408 - print_filename: if there is no directory hook, but there is a stat
2409 hook, and we want to append a slash to directories, call the stat
2410 hook before calling path_isdir on the expanded directory name.
2411 Report and pointer to fix from Steve Rago <sar@nec-labs.com>
2412
2413 3/3
2414 ---
2415builtins/evalstring.c
2416 - parse_and_execute: fix to change of 2/18: make sure the file
2417 descriptor being redirected to is 0 before calling cat_file when
2418 we see something like $(< file). Real fix for bug reported by
2419 Dan Douglas <ormaaj@gmail.com>
2420
2421subst.c
2422 - parameter_brace_patsub: run the replacement string through quote
2423 removal even if the expansion is within double quotes, because
2424 the parser and string extract functions treat the quotes and
2425 backslashes as special. If they're treated as special, quote
2426 removal should remove them (this is the Posix position and
2427 compatible with ksh93). THIS IS NOT BACKWARDS COMPATIBLE.
2428
2429 3/4
2430 ---
2431lib/readline/complete.c
2432 - rl_menu_complete: fix to make show-all-if-ambiguous and
2433 menu-complete-display-prefix work together if both are set. Fix
2434 from Sami Pietila <sami.pietila@gmail.com>
2435
2436 3/5
2437 ---
2438bashline.c
2439 - dircomplete_expand_relpath: new variable, if non-zero, means that
2440 `shopt -s direxpand' should expand relative pathnames. Zero by
2441 default, not user-settable yet
2442 - bash_directory_completion_hook: if we have a relative pathname that
2443 isn't changed by canonicalization or spell checking after being
2444 appended to $PWD, then don't change what the user typed. Controlled
2445 by dircomplete_expand_relpath
2446
2447 3/7
2448 ---
2449m4/timespec.m4
2450 - new macros, cribbed from gnulib and coreutils: find out whether we
2451 have `struct timespec' and what file includes it
2452
2453m4/stat-time.m4
2454 - new macros, cribbed from gnulib and coreutils: find out whether the
2455 mtime/atime/ctime/etctime fields of struct stat are of type
2456 struct timespec, and what the name is
2457
2458include/stat-time.h
2459 - new file, cribbed from gnulib, with additions from coreutils: include
2460 the right file to get the struct timespec define, or provide our own
2461 replacement. Provides a bunch of inline functions to turn the
2462 appropriate members of struct stat into `struct timespec' values,
2463 zeroing out the tv_nsec field if necessary
2464
2465test.c
2466 - include "stat-time.h" for the nanosecond timestamp resolution stuff
2467 - stat_mtime: new function, returns struct stat and the mod time
2468 normalized into a `struct timespec' for the filename passed as the
2469 first argument
2470 - filecomp: call stat_mtime instead of sh_stat for each filename
2471 argument to get the mtime as a struct timespec
2472 - filecomp: call timespec_cmp instead of using a straight arithmetic
2473 comparison for the -nt and -ot operators, using timespec returned by
2474 stat_mtime. Added functionality requested by by Werner Fink
2475 <werner@suse.de> for systems that can support it
2476
2477 3/10
2478 ----
2479include/posixdir.h
2480 - REAL_DIR_ENTRY: remove dependency on _POSIX_SOURCE, only use feature
2481 test macros to decide whether dirent.d_ino is present and usable;
2482 define D_INO_AVAILABLE. Report and fix from Fabrizion Gennari
2483 <fabrizio.ge@tiscali.it>
2484 - D_FILENO_AVAILABLE: define if we can use dirent.d_fileno
2485
2486lib/sh/getcwd.c
2487 - use D_FILENO_AVAILABLE to decide whether or not to compile in
2488 _path_checkino and whether or not to call it. Report and initial
2489 fix from Fabrizion Gennari <fabrizio.ge@tiscali.it>
2490
2491lib/readline/signals.c
2492 - make sure all occurrences of SIGWINCH are protected by #ifdef
2493
2494sig.c
2495 - make sure all occurrences of SIGCHLD are protected by #ifdef
2496
2497nojobs.c
2498 - make sure SA_RESTART is defined to 0 if the OS doesn't define it
2499
2500version.c
2501 - show_shell_version: don't use string literals in printf, use %s.
2502 Has added benefit of removing newline from string to be translated
2503
2504trap.c
2505 - queue_sigchld_trap: new function, increments the number of pending
2506 SIGCHLD signals by the argument, which is by convention the number
2507 of children reaped in a call to waitchld()
2508
2509trap.h
2510 - queue_sigchld_trap: new extern declaration
2511
2512jobs.c
2513 - waitchld: if called from the SIGCHLD signal handler (sigchld > 0),
2514 then call queue_sigchld_trap to avoid running the trap in a signal
2515 handler context. Report and original fix from Siddhesh Poyarekar
2516 <siddhesh@redhat.com>
2517
2518lib/sh/unicode.c
2519 - u32tocesc: take an unsigned 32-bit quantity and encode it using
2520 ISO C99 string notation (\u/\U)
2521 - u32cconv: call u32tocesc as a fallback instead of u32cchar
2522 - u32cconv: call u32tocesc if iconv cannot convert the character.
2523 Maybe do the same thing if iconv_open fails
2524 - u32reset: call iconv_close on localconv if u32init == 1
2525
2526 3/11
2527 ----
2528config-top.h
2529 - CHECKWINSIZE_DEFAULT: new define, set to initial value of
2530 check_window_size (shopt checkwinsize): 0 for off, 1 for on.
2531 Default is 0
2532
2533{jobs,nojobs}.c
2534 - check_window_size: default initial value to CHECKWINSIZE_DEFAULT
2535
2536 3/13
2537 ----
2538doc/bashref.texi
2539 - change text referring to the copying restrictions to that
2540 recommended by the FSF (no Front-Cover Texts and no Back-Cover
2541 Texts)
2542
2543lib/readline/doc/{history,rlman,rluserman}.texi
2544 - change text referring to the copying restrictions to that
2545 recommended by the FSF (no Front-Cover Texts and no Back-Cover
2546 Texts)
2547
2548 3/15
2549 ----
2550array.c
2551 - LASTREF_START: new macro to set the starting position for an array
2552 traversal to `lastref' if that's valid, and to the start of the array
2553 if not. Used in array_reference, array_insert, array_remove
2554 - array_remove: try to be a little smarter with lastref instead of
2555 unconditionally invalidating it
2556
2557 3/16
2558 ----
2559array.c
2560 - array_insert: fix memory leak by deleting element to be added in the
2561 case of an error
2562
2563 3/18
2564 ----
2565lib/sh/mbschr.c
2566 - mbschr: don't call mbrlen unless is_basic is false; devolves to a
2567 straight character-by-character run through the string
2568
2569 3/19
2570 ----
2571stringlib.c
2572 - substring: use memcpy instead of strncpy, since we know the length
2573 and are going to add our own NUL terminator
2574
2575 3/20
2576 ----
2577subst.c
2578 - parameter_brace_expand_rhs: if expand_string_for_rhs returns a quoted
2579 null string (a list with one element for which
2580 QUOTED_NULL(list->word->word) returns true), return the quoted null
2581 and set the flags in the returned word to indicate it. Fixes bug
2582 reported by Mark Edgar <medgar123@gmail.com>
2583
2584lib/sh/tmpfile.c
2585 - use random(3) instead of get_random_number to avoid perturbing the
2586 random sequence you get using $RANDOM. Bug report and fix from
2587 Jurij Mihelic <jurij.mihelic@fri.uni-lj.si>
2588
2589 3/21
2590 ----
2591config-top.h
2592 - OPTIMIZE_SEQUENTIAL_ARRAY_ASSIGNMENT: define to 1 to optimize
2593 sequential indexed array assignment patterns. Defined to 1 by
2594 default
2595
2596array.c
2597 - array_insert: if OPTIMIZE_SEQUENTIAL_ARRAY_ASSIGNMENT is defined,
2598 start the search at lastref (see change from 3/15)
2599
2600 3/27
2601 ----
2602print_cmd.c
2603 - debug_print_word_list: new debugging function, prints a word list
2604 preceded by an optional string and using a caller-specified
2605 separator
2606
2607 4/1
2608 ---
2609command.h
2610 - W_ASSNGLOBAL: new flag, set to indicate declare -g
2611
2612execute_cmd.c
2613 - fix_assignment_words: note that we have a -g argument to an assignment
2614 builtin and set the W_ASSNGLOBAL flag in the variable word
2615
2616subst.c
2617 - dump_word_flags: print out W_ASSNGLOBAL if present
2618 - do_assignment_internal: only set ASS_MKLOCAL if W_ASSIGNARG is set
2619 and W_ASSNGLOBAL is not. Don't want to create a local variable even
2620 if variable_context is non-zero if ASSNGLOBAL is set. Fixes bug
2621 reported by Bill Gradwohl <bill@ycc.com>
2622
2623 4/7
2624 ---
2625lib/readline/readline.c
2626 - _rl_dispatch_subseq: make the `keyseq-timeout' variable apply to
2627 ESC processing when in vi mode. After hitting ESC, readline will
2628 wait up to _rl_keyseq_timeout*1000 microseconds (if set) for
2629 additional input before dispatching on the ESC and switching to
2630 command/movement mode. Completes timeout work suggested by
2631 <rogerx.oss@gmail.com>; this prompted by report from Barry Downes
2632 <barry.downes@gmail.com>
2633
2634lib/sh/shmbchar.c
2635 - sh_mbsnlen: new function, returns the number of (possibly multibyte)
2636 characters in a passed string with a passed length, examining at most
2637 maxlen (third argument) bytes
2638
2639externs.h
2640 - sh_mbsnlen: extern declaration for new function
2641
2642shell.c
2643 - exit_shell: call maybe_save_shell_history if remember_on_history is
2644 set, not just in interactive shells. That means the history is
2645 saved if history is enabled, regardless of whether or not the shell
2646 is interactive
2647
2648doc/{bash.1,bashref.texi}
2649 - TMOUT: fix description to make it explicit that TMOUT is the timeout
2650 period for a complete line of input, not just any input. Fixes
2651 problem reported in Ubuntu bug 957303:
2652 https://bugs.launchpad.net/ubuntu/+source/bash/+bug/957303
2653 - HISTFILE: document change to write history list to history file in
2654 any shell with history enabled, not just interactive shells. This
2655 seems to be more logical behavior. Suggested by Greg Wooledge
2656 <wooledg@eeg.ccf.org>
2657
2658 4/12
2659 ----
2660lib/readline/colors.h
2661 - only include stdbool.h if HAVE_STDBOOL_H is defined
2662 - if HAVE_STDBOOL_H is not defined, provide enough definition for the
2663 library to use `bool', `true', and `false'
2664
2665lib/readline/parse-colors.[ch]
2666 - don't try to include <stdbool.h> at all; rely on colors.h to do it
2667
2668lib/sh/snprintf.c
2669 - vsnprintf_internal: only treat '0' as a flag to indicate zero padding
2670 if `.' hasn't been encountered ((flags&PF_DOT) == 0); otherwise treat
2671 it as the first digit of a precision specifier. Fixes bug reported
2672 by Petr Sumbera <petr.sumbera@sun.com>
2673
2674 4/15
2675 ----
2676lib/sh/snprintf.c
2677 - vsnprintf_internal: if the '0' and '-' flags both occur, the '0'
2678 flag is ignored -- Posix. Start of a series of fixes based on
2679 tests and patches from Petr Sumbera <petr.sumbera@sun.com>
2680 - PUT_PLUS: make sure PF_PLUS flag is specified before putting the `+'
2681 - vsnprintf_internal: when '+' is read as a flag, don't set right-
2682 justify flag if the LADJUST (`-') flag has already been supplied
2683 - floating: make sure to output space padding before the `+', zero
2684 padding after
2685 - exponent: make sure to output space padding before the `+', zero
2686 padding after
2687 - exponent: only subtract one from the width for the decimal point
2688 if we're really going to print one
2689 - floating: use presence of PF_PLUS flag to decide whether to account
2690 for the `+' in the padded field width. Ditto for exponent()
2691
2692 4/16
2693 ----
2694lib/sh/snprintf.c
2695 - vsnprint_internal: only reduce precision by 1 when processing the `g'
2696 format if it's > 0. A precision of 0 should stay 0; otherwise it
2697 gets set to -1 (NOT_FOUND) and converted to the default
2698 - number, lnumber: if an explicit precision is supplied, turn off the
2699 zero-padding flag and set the pad character back to space
2700 - number, lnumber: only account for a `+' when performing the field
2701 width calculation if the coversion is base 10; we don't add a `+'
2702 for other bases
2703
2704 4/18
2705 ----
2706tests/printf3.sub
2707 - try using "perl -e 'print time'" to get the current time in seconds
2708 since the epoch if "date +%s" is not available (solaris 8-10)
2709
2710 4/19
2711 ----
2712tests/run-printf
2713 - use cat -v instead of relying on diff -a being available to convert
2714 control characters to ascii and avoid the dreaded "Binary files
2715 /tmp/xx and printf.right differ"
2716
2717 4/20
2718 ----
2719lib/sh/strftime.c
2720 - incoporated new version from Aharon Robbins <arnold@skeeve.com>
2721
2722 4/22
2723 ----
2724doc/{bash.1,bashref.texi}
2725 - slight change to the description of /dev/tcp and /dev/udp
2726
2727subst.c
2728 - match_wpattern: logic fix to the calculation of `simple' (was |=,
2729 needs to be &=). Bug report from Mike Frysinger <vapier@gentoo.org>,
2730 fix from Andreas Schwab <schwab@linux-m68k.org>
2731
2732bashline.c
2733 - bash_filename_stat_hook: add code from bash_directory_completion_hook
2734 that performs pathname canonicalization in the same way that cd and
2735 other builtins will do
2736
2737 4/25
2738 ----
2739execute_cmd.c
2740 - execute_pipeline: change the call to move_to_high_fd to make it use
2741 getdtablesize() and to not stomp on existing open file descriptors,
2742 like the fd the shell is using to read a script. Bug report from
2743 Greg Wooledge <wooledg@eeg.ccf.org>
2744
2745 5/6
2746 ---
2747subst.c
2748 - expand_word_internal: case '$': after calling param_expand and
2749 setting had_quoted_null, set TEMP to null. The code that builds the
2750 returned string at the end of the function will take care of making
2751 and returning a quoted null string if there's nothing else in
2752 ISTRING. If there is, the quoted null should just go away. Part of
2753 fix for bug reported by Ruediger Kuhlmann <RKuhlmann@orga-systems.com>
2754 - expand_word_internal: when processing ISTRING to build return value,
2755 only set W_HASQUOTEDNULL in the returned word flags if the word is
2756 a quoted null string AND had_quoted_null is set. Rest of fix
2757
2758 5/9
2759 ---
2760variables.c
2761 - bind_variable_internal: if we get an array variable here (implicit
2762 assignment to index 0), call make_array_variable_value, which
2763 dummies up a fake SHELL_VAR * from array[0]. This matters when
2764 we're appending and have to use the current value
2765 - bind_variable_internal: after computing the new value, treat assoc
2766 variables with higher precedence than simple array variables; it
2767 might be that a variable has both attributes set
2768
2769arrayfunc.c
2770 - bind_array_var_internal: break code out that handles creating the
2771 new value to be assigned to an array variable index into a new
2772 function, make_array_variable_value. This handles creating a
2773 dummy SHELL_VAR * for implicit array[0] assignment. Fixes bug
2774 reported by Dan Douglas <ormaaj@gmail.com>
2775
2776arrayfunc.h
2777 - make_array_variable_value: new extern declaration
2778
2779 5/19
2780 ----
2781variables.c
2782 - bind_int_variable: if an assignment statement like x=y comes in
2783 from the expression evaluator, and x is an array, handle it like
2784 x[0]=y. Fixes bug reported by Dan Douglas <ormaaj@gmail.com>
2785
2786 5/24
2787 ----
2788
2789braces.c
2790 - mkseq: handle possible overflow and break the sequence generating
2791 loop if it occurs. Fixes OpenSUSE bug 763591:
2792 https://bugzilla.novell.com/show_bug.cgi?id=763591
2793
2794 5/25
2795 ----
2796Makefile.in
2797 - LDFLAGS_FOR_BUILD: add to compilation recipes for build tools
2798 buildversion, mksignames, mksyntax
2799 - LDFLAGS_FOR_BUILD: add to compilation recipes for test tools
2800 recho, zecho, printenv, xcase
2801
2802builtins/Makefile.in
2803 - LDFLAGS_FOR_BUILD: add to compilation recipes for build tools
2804 gen-helpfiles, psize.aux
2805
2806variables.c
2807 - bind_int_variable: if LHS is a simple variable name without an array
2808 reference, but resolves to an array variable, call
2809 bind_array_variable with index 0 to make x=1 equivalent to x[0]=1.
2810 Fixes bug reported by Dan Douglas <ormaaj@gmail.com>
2811
2812 5/27
2813 ----
2814subst.c
2815 - expand_word_internal: make sure has_dollar_at doesn't get reset before
2816 recursive calls to param_expand or expand_word_internal, since it has
2817 to save state of what came before. Use temp variable and make sure
2818 has_dollar_at is incremented if recursive call processes "$@".
2819 Fixes bug reported by gregrwm <backuppc-users@whitleymott.net> and
2820 supplemented by Dan Douglas <ormaaj@gmail.com>
2821
2822doc/{bash.1,bashref.texi}
2823 - changes to the description of substring expansion inspired by
2824 suggestions from Bill Gradwohl <bill@ycc.com>
2825
2826doc/bashref.texi
2827 - added substring expansion examples inspired by suggestions from
2828 Bill Gradwohl <bill@ycc.com>
2829
2830variables.c
2831 - find_shell_variable: search for a variable in the list of shell
2832 contexts, ignore the temporary environment
2833 - find_variable_tempenv: search for a variable in the list of shell
2834 contexts, force search of the temporary environment
2835 - find_variable_notempenv: search for a variable in the list of shell
2836 contexts, don't force search of the temporary environment
2837
2838variables.h
2839 - find_shell_variable: extern declaration
2840 - find_variable_tempenv: extern declaration
2841 - find_variable_notempenv: extern declaration
2842
2843arrayfunc.c
2844 - bind_array_variable: call find_shell_variable instead of calling
2845 var_lookup directly
2846
2847findcmd.c
2848 - search_for_command: call find_variable_tempenv instead of
2849 find_variable_internal directly
2850 - _find_user_command_internal: call find_variable_tempenv instead of
2851 find_variable_internal directly
2852
2853builtins/setattr.def
2854 - set_var_attribute: call find_variable_notempenv instead of
2855 find_variable_internal directly
2856 - show_name_attributes: call find_variable_tempenv instead of
2857 find_variable_internal directly
2858
2859 6/1
2860 ---
2861sig.c
2862 - termsig_handler: don't try to save the shell history on a terminating
2863 signal any more, since it just causes too many problems on Linux
2864 systems using glibc and glibc malloc
2865
2866lib/readline/vi_mode.c
2867 - rl_vi_change_to: change to correctly redo `cc', since `c' is not a vi
2868 motion character. From Red Hat bug 813289
2869 - rl_vi_delete_to: change to correctly redo `dd', since `d' is not a vi
2870 motion character
2871 - rl_vi_yank_to: change to correctly redo `yy', since `y' is not a vi
2872 motion character
2873
2874 6/4
2875 ---
2876lib/sh/mktime.c
2877 - current versions of VMS do not need to include <stddef.h>. Fix from
2878 John E. Malmberg <wb8tyw@qsl.net>
2879
2880 6/5
2881 ---
2882lib/sh/eaccess.c
2883 - sh_stat: instead of using a static buffer to do the DEV_FD_PREFIX
2884 translation, use a dynamically-allocated buffer that we keep
2885 resizing. Fixes potential security hole reported by David Leverton
2886 <levertond@googlemail.com>
2887
2888 6/5
2889 ---
2890braces.c
2891 - expand_seqterm: check errno == ERANGE after calling strtoimax for
2892 rhs and incr. Part of a set of fixes from Scott McMillan
2893 <scotty.mcmillan@gmail.com>
2894 - expand_seqterm: incr now of type `intmax_t', which changes
2895 arguments to mkseq
2896 - mkseq: a better fix for detecting overflow and underflow since it's
2897 undefined in C and compilers `optimize' out overflow checks. Uses
2898 ADDOVERFLOW and SUBOVERFLOW macros
2899 - mkseq: use sh_imaxabs (new macro) instead of abs() for intmax_t
2900 variables
2901 - mkseq: don't allow incr to be converted to -INTMAX_MIN
2902 - mkseq: make sure that strvec_create isn't called with a size argument
2903 greater than INT_MAX, since it only takes an int
2904
2905 6/6
2906 ---
2907braces.c
2908 - mkseq: try and be smarter about not overallocating elements in
2909 the return array if the increment is not 1 or -1
2910
2911 6/7
2912 ---
2913parse.y
2914 - history_delimiting_chars: if the parser says we're in the middle of
2915 a compound assignment (PST_COMPASSIGN), just return a space to avoid
2916 adding a stray semicolon to the history entry. Fixes bug reported
2917 by "Davide Brini" <dave_br@gmx.com>
2918
2919 6/8
2920 ---
2921bashline.c
2922 - bash_directory_completion_hook: don't attempt spelling correction
2923 on the directory name unless the direxpand option is set and we are
2924 going to replace the directory name with the corrected one in the
2925 readline line. Suggested by Linda Walsh <bash@tlinx.org>
2926
2927lib/sh/shquote.c
2928 - sh_backslash_quote: now takes a third argument: flags. If non-zero,
2929 tildes are not backslash-escaped. Have to handle both printf %q,
2930 where they should be escaped, and filename completion, where they
2931 should not when used as usernames
2932
2933externs.h
2934 - sh_backslash_quote: declaration now takes a third argument
2935
2936builtins/printf.def
2937 - printf_builtin: call sh_backslash_quote with 1 as third argument
2938 so tildes get escaped
2939
2940{bashline,bracecomp}.c
2941 - call sh_backslash_quote with 0 as third argument so tildes are not
2942 escaped in completed words
2943
2944doc/bash.1
2945 - add `coproc' to the list of reserved words. From a report by
2946 Jens Schweikhardt <schweikh@schweikhardt.net>
2947
2948 6/10
2949 ----
2950execute_cmd.c
2951 - line_number_for_err_trap: now global, so parse_and_execute can save
2952 and restore it with unwind-protect
2953
2954builtins/evalstring.c
2955 - parse_prologue: save and restore line_number_for_err_trap along
2956 with line_number
2957 - restore_lastcom: new function, unwind-protect to restore
2958 the_printed_command_except_trap
2959 - parse_prologue: use restore_lastcom to save and restore the value
2960 of the_printed_command_except_trap around calls to parse_and_execute
2961 (eval/source/.)
2962
2963 6/15
2964 ----
2965lib/readline/complete.c
2966 - complete_fncmp: change filename comparison code to understand
2967 multibyte characters, even when doing case-sensitive or case-mapping
2968 comparisons. Fixes problem reported by Nikolay Shirokovskiy
2969 <nshyrokovskiy@gmail.com>
2970
2971 6/20
2972 ----
2973builtins/mapfile.def
2974 - mapfile: move the line count increment and check for having read
2975 the specified number of lines to the end of the loop to avoid
2976 reading an additional line with zgetline. Fixes bug reported by
2977 Dan Douglas <ormaaj@gmail.com>
2978
2979 6/21
2980 ----
2981
2982execute_cmd.c
2983 - execute_pipeline: make sure `lastpipe_flag' is initialized to 0 on
2984 all systems, since it's tested later in the function. Fixes bug
2985 reported by John E. Malmberg <wb8tyw@qsl.net>
2986
2987 6/22
2988 ----
2989mailcheck.c
2990 - file_mod_date_changed: return 0 right away if mailstat() does not
2991 return success. Fixes bug with using uninitialized values reported
2992 by szymon.kalasz@uj.edu.pl
2993
2994builtins/set.def
2995 - the `monitor' option is not available when the shell is compiled
2996 without job control, since the underlying `m' flag is not available
2997
2998nojobs.c
2999 - job_control: now declared as int variable, initialized to 0, never
3000 modified
3001
3002jobs.h
3003 - job_control: extern declaration no longer dependent on JOB_CONTROL
3004
3005execute_cmd.c
3006 - execute_pipeline: made necessary changes so `lastpipe' shell option
3007 is now available in all shells, even those compiled without
3008 JOB_CONTROL defined
3009
3010 6/23
3011 ----
3012lib/glob/glob.c
3013 - glob_filename: check for interrupts before returning if glob_vector
3014 returns NULL or an error. Bug reported by Serge van den Boom
3015 <svdb@stack.nl>, fix from Andreas Schwab <schwab@linux-m68k.org>
3016 - call run_pending_traps after each call to QUIT or test of
3017 interrupt_state, like we do in mainline shell code
3018 - glob_vector: don't call QUIT; in `if (lose)' code block; just free
3019 memory, return NULL, and let callers deal with interrupt_state or
3020 other signals and traps
3021
3022 6/25
3023 ----
3024lib/readline/input.c
3025 - rl_read_key: restructure the loop that calls the event hook a little,
3026 so that the hook is called only after rl_gather_tyi returns no input,
3027 and any pending input is returned first. This results in better
3028 efficiency for processing pending input without calling the hook
3029 on every input character as bash-4.1 did. From a report from
3030 Max Horn <max@quendi.de>
3031
3032 6/26
3033 ----
3034trap.c
3035 - signal_is_pending: return TRUE if SIG argument has been received and
3036 a trap is waiting to execute
3037
3038trap.h
3039 - signal_is_pending: extern declaration
3040
3041lib/glob/glob.c
3042 - glob_vector: check for pending SIGINT trap each time through the loop,
3043 just like we check for interrupt_state or terminating_signal, and
3044 set `lose = 1' so we clean up after ourselves and interrupt the
3045 operation before running the trap. This may require a change later,
3046 maybe call run_pending_traps and do that if run_pending_traps returns?
3047
3048variables.c
3049 - sv_histtimefmt: set history_comment_character to default (`#') if
3050 it's 0 when we're turning on history timestamps. The history code
3051 uses the history comment character to prefix timestamps, and
3052 leaving it at 0 effectively removes them from the history. From a
3053 report to help-bash by Dennis Williamson <dennistwilliamson@gmail.com>
3054
3055 6/27
3056 ----
3057lib/readline/signals.c
3058 - rl_maybe_restore_sighandler: new function, sets handler for SIG to
3059 HANDLER->sa_handler only if it's not SIG_IGN. Needs to be called
3060 on same signals set using rl_maybe_set_sighandler, which does not
3061 override an existing SIG_IGN handler (SIGALRM is ok since it does
3062 the check inline; doesn't mess with SIGWINCH)
3063
3064 6/30
3065 ----
3066variables.h
3067 - additional defines for the new `nameref' variable attribute
3068 (att_nameref): nameref_p, nameref_cell, var_setref
3069
3070variables.c
3071 - find_variable_nameref: resolve SHELL_VAR V through chain of namerefs
3072 - find_variable_last_nameref: resolve variable NAME until last in a
3073 chain of possibly more than one nameref starting at shell_variables
3074 - find_global_variable_last_nameref: resolve variable NAME until last
3075 in a chain of possibly more than one nameref starting at
3076 global_variables
3077 - find_nameref_at_context: resolve SHELL_VAR V through chain of namerefs
3078 in a specific variable context (usually a local variable hash table)
3079 - find_variable_nameref_context: resolve SHELL_VAR V through chain of
3080 namerefs following a chain of varible contexts
3081 - find_variable_last_nameref_context: resolve SHELL_VAR V as in
3082 find_variable_last_context, but return the final nameref instead of
3083 what the final nameref resolves to
3084 - find_variable_tempenv, find_variable_notempenv, find_global_variable,
3085 find_shell_variable, find_variable: modified to follow namerefs
3086 - find_global_variable_noref: look up a global variable without following
3087 any namerefs
3088 - find_variable_noref: look up a shell variable without following any
3089 namerefs
3090 - bind_variable_internal: modify to follow a chain of namerefs in the
3091 global variables table; change to handle assignments to a nameref by
3092 following nameref chain
3093 - bind_variable: modify to follow chain of namerefs when binding to a
3094 local variable
3095 - unbind_variable: changes to unset nameref variables (unsets both
3096 nameref and variable it resolves to)
3097
3098subst.c
3099 - parameter_brace_expand_word: change to handle expanding nameref whose
3100 value is x[n]
3101 - parameter_brace_expand_indir: change to expand in ksh93-compatible
3102 way if variable to be indirected is nameref and a simple (non-array)
3103 expansion
3104 - param_expand: change to expand $foo where foo is a nameref whose value
3105 is x[n]
3106
3107execute_cmd.c
3108 - execute_for_command: changes to implement ksh93 semantics when index
3109 variable is a nameref
3110
3111builtins/setattr.def
3112 - show_var_attributes: change to add `n' to flags list if att_nameref
3113 is set
3114
3115builtins/set.def
3116 - unset_builtin: changes to error messages to follow nameref variables
3117
3118builtins/declare.def
3119 - document new -n option
3120 - declare_internal: new `-n' and `+n' options
3121 - declare_internal: handle declare -n var[=value] and
3122 declare +n var[=value] for existing and non-existant variables.
3123 Enforce restriction that nameref variables cannot be arrays.
3124 Implement semi-peculiar ksh93 semantics for typeset +n ref=value
3125
3126 7/5
3127 ---
3128variables.c
3129 - unbind_variable: unset whatever a nameref resolves to, leaving the
3130 nameref variable itself alone
3131 - unbind_nameref: new function, unsets a nameref variable, not the
3132 variable it references
3133
3134variables.h
3135 - unbind_nameref: extern declaration
3136
3137builtins/set.def
3138 - unset_builtin: modify to add -n option, which calls unbind_nameref
3139 leaving unbind_variable for the usual case. This required slight
3140 changes and additions to the test suite
3141
3142doc/{bash.1,bashref.texi}
3143 - document namerefs and typeset/declare/local/unset -n
3144
3145 7/13
3146 ----
3147lib/sh/casemod.c
3148 - include shmbchar.h for is_basic and supporting pieces
3149 - sh_casemod: use _to_wupper and _to_wlower to convert wide character
3150 case instead of TOUPPER and TOLOWER. Fixes bug reported by
3151 Dennis Williamson <dennistwilliamson@gmail.com>, fix from
3152 Andreas Schwab <schwab@linux-m68k.org>
3153 - cval: short-circuit and return ascii value if is_basic tests true
3154 - sh_casemod: short-circuit and use non-multibyte case modification
3155 and toggling code if is_basic tests true
3156
3157lib/readline/signals.c
3158 - _rl_{block,release}_sigint: remove the code that actually blocks and
3159 releases the signals, since we defer signal handling until calls to
3160 RL_CHECK_SIGNALS()
3161
3162lib/readline/{callback,readline,util}.c
3163 - if HAVE_POSIX_SIGSETJMP is defined, use sigsetjmp/siglongjmp without
3164 saving and restoring the signal mask instead of setjmp/longjmp
3165
3166lib/readline/rltty.c
3167 - prepare_terminal_settings: don't mess with IXOFF setting if
3168 USE_XON_XOFF defined
3169
3170doc/{bash.1,bashref.texi}
3171 - add some text to the description of set -e clarifying its effect
3172 on shell functions and shell function execution. Suggested by
3173 Rainer Blome <rainer.blome@gmx.de>
3174
3175bashline.c
3176 - edit_and_execute_command: increment current_command_line_count before
3177 adding partial line to command history (for command-oriented-history
3178 because of rl_newline at beginning of function), then reset it to 0
3179 before adding the dummy history entry to make sure the dummy entry
3180 doesn't get added to previous incomplete command. Partial fix for
3181 problem reported by Peng Yu <pengyu.ut@gmail.com>
3182
3183 7/24
3184 ----
3185configure.in
3186 - interix: define RECYCLES_PIDS. Based on a report from Michael
3187 Haubenwallner <michael.haubenwallner@salomon.at>
3188
3189 7/26
3190 ----
3191jobs.c
3192 - make_child: call bgp_delete on the newly-created pid unconditionally.
3193 Some systems reuse pids before cycling through an entire set of
3194 CHILD_MAX/_SC_CHILD_MAX unique pids. This is no longer dependent
3195 on RECYCLES_PIDS. Based on a report from Michael Haubenwallner
3196 <michael.haubenwallner@salomon.at>
3197
3198support/shobj-conf
3199 - Mac OS X: drop MACOSX_DEPLOYMENT_TARGET=10.3 from the LDFLAGS. We
3200 can finally kill Panther
3201
3202 7/28
3203 ----
3204subst.c
3205 - command_substitute: make sure last_made_pid gets reset if make_child
3206 fails
3207
3208execute_cmd.c
3209 - execute_command_internal: case cm_simple: decide whether or not to
3210 wait_for a child if already_making_children is non-zero, indicates
3211 that there is an unwaited-for child. More of fix for bug report
3212 from Michael Haubenwallner <michael.haubenwallner@salomon.at>
3213
3214jobs.c
3215 - make_child: call delete_old_job (new_pid) unconditionally, don't
3216 bother to check whether or not pid wrap occurred. Rest of fix for
3217 bug report from Michael Haubenwallner
3218 <michael.haubenwallner@salomon.at>
3219
3220 7/29
3221 ----
3222shell.c
3223 - subshell_exit: new function, exits the shell (via call to sh_exit())
3224 after calling any defined exit trap
3225
3226externs.h
3227 - subshell_exit: new extern declaration
3228
3229execute_cmd.c
3230 - execute_command_internal: make sure to call subshell_exit for
3231 {} group commands executed asynchronously (&). Part of fix for
3232 EXIT trap bug reported by Maarten Billemont <lhunath@lyndir.com>
3233
3234sig.c
3235 - reset_terminating_signals: make sure to set termsigs_initialized back
3236 to 0, so a subsequent call to initialize_terminating_signals works
3237 right. Rest of fix for bug reported by Maarten Billemont
3238 <lhunath@lyndir.com>
3239
3240{execute_cmd,general,jobs,mailcheck,mksyntax,test}.c
3241builtins/{cd,fc,pushd,ulimit}.def
3242lib/malloc/getpagesize.h
3243lib/sh/{clktck,fpurge,inet_aton,mailstat,oslib,pathcanon,pathphys,spell,strerror}.c
3244 - make inclusion of <sys/param.h> dependent on HAVE_SYS_PARAM_H
3245 consistently
3246
3247 8/6
3248 ---
3249lib/readline/histexpand.c
3250 - history_expand_internal: now takes an additional argument saying
3251 whether the history expansion occurs within a quoted string, set to
3252 the open quote character
3253 - history_expand_internal: use new argument instead of checking prev
3254 char and initializing quoted_search_delimiter, pass qc directly to
3255 get_history_event, where it allows a matching quote to terminate a
3256 string defining an event
3257 - history_expand: change single-quote handling code so that if
3258 history_quotes_inhibit_expansion is 0, single quotes are treated
3259 like double quotes
3260 - history_expand: change call to history_expand_internal to pass new
3261 argument of `"' if double-quoted string, `'' if single-quoted string;
3262 this lets history_expand decide what is a quoted string and what
3263 is not
3264
3265 8/7
3266 ---
3267configure.in
3268 - AC_CANONICAL_BUILD: invoke for later use
3269
3270lib/readline/macro.c
3271 - _rl_prev_macro_key: new function, inverse of _rl_next_macro_key:
3272 backs up the index into the current macro by 1
3273
3274lib/readline/rlprivate.h
3275 - _rl_prev_macro_key: extern declaration
3276
3277
3278lib/readline/readline.c
3279 - _rl_dispatch_subseq, _rl_subseq_result: don't call _rl_unget_char
3280 if we're currently reading from a macro; call _rl_prev_macro_key
3281 instead. Fixes bug reported by Clark Wang <clark.wang@oracle.com>
3282
3283 8/13
3284 ----
3285builtins/evalstring.c
3286 - evalstring(): new function, wrapper around parse_and_execute.
3287 make sure we handle cases where parse_and_execute can call `return'
3288 and short-circuit without cleaning up properly. We call
3289 parse_and_execute_cleanup() then jump to the previous-saved return
3290 location
3291
3292builtins/common.h
3293 - extern declaration for evalstring()
3294
3295builtins/eval.def
3296 - eval_builtin: make sure we handle `eval " ... return"' in contexts
3297 where `return' is valid by calling evalstring(). Fixes bug with
3298 `eval return' in sourced files reported by Clark Wang
3299 <dearvoid@gmail.com>
3300
3301trap.c
3302 - run_pending_traps: call evalstring instead of parse_and_execute.
3303 XXX - still needs to handle saving and restoring token state in the
3304 presence of `return'; could use unwind_protects for that
3305
3306builtins/mapfile.def
3307 - run_callback: call evalstring instead of parse_and_execute
3308
3309 8/15
3310 ----
3311bashline.c
3312 - bash_filename_stat_hook: make sure we don't free local_dirname
3313 before using it to canonicalize any expanded filename. Make sure
3314 it always points to *dirname and only free it if we're replacing
3315 it.
3316
3317lib/readline/complete.c
3318 - append_to_match: make sure we call rl_filename_stat_hook with
3319 newly-allocated memory to avoid problems with freeing it twice
3320
3321 8/17
3322 ----
3323variables.c,config-top.h
3324 - if ARRAY_EXPORT is defined to 1 when variables.c is compiled, the
3325 code that allows indexed arrays to be exported is enabled and
3326 included
3327
3328 8/19
3329 ----
3330shell.c
3331 - call start_debugger from main() only if dollar_vars[1] != 0 (close
3332 enough to a non-interactive shell, since we can be interactive with
3333 -i while running a shell script). Fixes oddity reported by
3334 Techlive Zheng <techlivezheng@gmail.com>
3335
3336 8/20
3337 ----
3338arrayfunc.c
3339 - quote_array_assignment_chars: don't bother quoting if the word has
3340 not been marked as an assignment (W_ASSIGNMENT)
3341 - quote_array_assignment_chars: turn on W_NOGLOB in the word flags
3342 so assignment statements don't undergo globbing. Partial fix for
3343 problems reported by Dan Douglas <ormaaj@gmail.com>
3344
3345 8/21
3346 ----
3347command.h
3348 - W_NOBRACE: new word flag that means to inhibit brace expansion
3349
3350subst.c
3351 - brace_expand_word_list: suppress brace expansion for words with
3352 W_NOBRACE flag
3353
3354 8/22
3355 ----
3356builtins/read.def
3357 - read_builtin: don't call dequote_string on what we've read, even if
3358 we saw an escape character, unless (input_string && *input_string).
3359 We may have escaped an IFS whitespace character. Fixes seg fault
3360 reported by <armandsl@gmail.com>
3361
3362execute_cmd.c
3363 - execute_command_internal: set the_printed_command_except trap when
3364 about to execute a ( ... ) user subshell. For now, set it only if
3365 ERR is trapped; can relax that later. Fixes bug reported by
3366 Mike Frysinger <vapier@gentoo.org>
3367
3368 8/23
3369 ----
3370jobs.c
3371 - remove references to first_pid and pid_wrap, since we're not using
3372 them for anything anymore
3373
3374 8/24
3375 ----
3376subst.c
3377 - changes for W_NOBRACE everywhere appropriate: so it can be displayed
3378 for debugging, and passed out of expand_word_internal
3379
3380doc/{bash.1,bashref.texi}
3381 - small changes to make it clearer that the = and == operators are
3382 equivalent, and will cause pattern matching when used with [[.
3383 From a question from Michal Soltys <soltys@ziu.info>
3384
3385doc/bashref.texi
3386 - some small formatting changes from Karl Berry <karl@freefriends.org>
3387
3388 8/27
3389 ----
3390lib/readline/doc/{history,rlman,rluserman}.texi
3391 - some small formatting changes from Karl Berry <karl@freefriends.org>
3392
3393arrayfunc.c
3394 - assign_array_element_internal, assign_compound_array_list,
3395 unbind_array_element, array_value_internal: changes to make
3396 assignment statements to negative indices (a[-1]=2) and unsetting
3397 array elements using negative indices (unset 'a[-1]') work.
3398 From suggestions by Dennis Williamson <dennistwilliamson@gmail.com>
3399 and Chris F. A. Johnson <chris@cfajohnson.com>
3400
3401subst.c
3402 - array_length_reference: changes to make length references to array
3403 elements using negative indices (${#a[-1]}) work
3404
3405 8/28
3406 ----
3407doc/{bash.1,bashref.texi}
3408 - document new treatment of negative indices to indexed arrays when
3409 assigning, referencing, calculating length, and unsetting
3410
3411 8/29
3412 ----
3413shell.c
3414 - show_shell_usage: add -l to list of shell invocation options (short
3415 for --login). From Red Hat bug 852469
3416
3417configure.ac
3418 - renamed from configure.in, as latest autoconf versions want. Patches
3419 Stefano Lattarini <stefano.lattarini@gmail.com>
3420
3421MANIFEST,Makefile.in,doc/bashref.texi,support/mkconffiles
3422 - configure.in -> configure.ac
3423
3424 9/1
3425 ---
3426
3427parse.y
3428 - read_token_word: allow words like {array[ind]} to be valid redirection
3429 words for constructs like {x}<file
3430
3431redir.c
3432 - redir_varassign: bind_var_to_int already handles array assignments,
3433 so don't need to do anything more for things like {a[i]}<file
3434 - redir_varvalue: changes to allow references to {a[i]} when
3435 performing redirections using valid_array_reference and
3436 get_array_value. Adds functionality requested most recently by
3437 <unknown@vmw-les.eng.vmware.com>
3438
3439lib/readline/display.c
3440 - update_line: if the first difference between the old and new lines
3441 is completely before any invisible characters in the prompt, we
3442 should not adjust _rl_last_c_pos, since it's before any invisible
3443 characters. Fixed in two places
3444 - prompt_modechar: return a character indicating the editing mode:
3445 emacs (@), vi command (:), or vi insert (+)
3446 - _rl_reset_prompt: new function, just calls rl_expand_prompt. Will be
3447 inlined, placeholder for more changes
3448 - expand_prompt: if show-mode-in-prompt is enabled, add a character to
3449 the front of the prompt indicating the editing mode, adjusting the
3450 various variables as appropriate to keep track of the number of
3451 visible characters and number of screen positions
3452
3453lib/readline/bind.c
3454 - show-mode-in-prompt: new bindable boolean variable, shadowed by
3455 _rl_show_mode_in_prompt variable
3456 - hack_special_boolean_var: call _rl_reset_prompt when toggling or
3457 setting show-mode-in-prompt
3458
3459lib/readline/readline.c
3460 - readline_internal_setup: make sure the correct vi mode keymap is set
3461 before expanding the prompt string for the first time
3462
3463lib/readline/misc.c
3464 - rl_emacs_editing_mode: make sure to call _rl_reset_prompt if we're
3465 showing the editing mode in the prompt
3466
3467lib/readline/rlprivate.h
3468 - _rl_reset_prompt, _rl_show_mode_in_prompt: extern declarations
3469
3470lib/readline/vi_mode.c
3471 - rl_vi_insertion_mode: call _rl_reset_prompt
3472 - rl_vi_movement_mode: call _rl_reset_prompt. Finishes changes for
3473 showing mode in prompt string, originally requested by Miroslav
3474 Koskar <mkoskar@gmail.com> and most recently by Jordan Michael
3475 Ziegler <jziegler@bnl.gov>
3476
3477doc/bash.1,lib/readline/doc/{readline.3,rluser.texi}
3478 - document new show-mode-in-prompt variable, off by default
3479
3480 9/3
3481 ---
3482
3483jobs.c
3484 - set_childmax: new function, external mechanism for other parts of
3485 the shell to set js.c_childmax, the number of saved exited child
3486 statuses to remember
3487jobs.h
3488 - set_childmax: extern declaration
3489
3490variables.c
3491 - CHILD_MAX: new special variable, with sv_childmax function to
3492 run when it changes. Setting CHILD_MAX to a value greater than
3493 zero but less than some maximum (currently 8192) sets the number of
3494 exited child statuses to remember. set_childmax (jobs.c) ensures
3495 that the number does not drop below the posix-mandated minimum
3496 (CHILD_MAX)
3497
3498doc/{bash.1,bashref.texi}
3499 - CHILD_MAX: document new meaning and action when variable is set
3500
3501 9/5
3502 ---
3503redir.c
3504 - redir_varassign: call stupidly_hack_special_variables after
3505 assigning fd number to specified variable, so we can use constructs
3506 like {BASH_XTRACEFD}>foo. Suggested by Pierre Gaston
3507 <pierre.gaston@gmail.com>
3508
3509 9/8
3510 ---
3511expr.c
3512 - readtok: invalidate previous contents of `curlval' before freeing
3513 and reallocating tokstr (which, chances are, will get the same
3514 pointer as before and render curlval inconsistent). Fixes other
3515 bug reported by Dan Douglas <ormaaj@gmail.com>
3516
3517 9/9
3518 ---
3519lib/readline/complete.c
3520 - rl_username_completion_function: protect call to setpwent() with
3521 #ifdef (HAVE_GETPWENT)/#endif. Fixes bug reported by
3522 Gerd Hofmann <gerd.hofmann.nbg@googlemail.com>
3523
3524lib/readline/display.c
3525 - rl_message: second and subsequent calls to rl_message can result in
3526 local_prompt being overwritten with new values (e.g., from the
3527 successive calls displaying the incremental search string). Need
3528 to free before overwriting if it's not the same as the value saved
3529 in saved_local_prompt. Fixes memory leak reported by
3530 Wouter Vermaelen <vermaelen.wouter@gmail.com>
3531
3532lib/readline/{terminal.c,rlprivate.h}
3533 - move CUSTOM_REDISPLAY_FUNC and CUSTOM_INPUT_FUNC defines from
3534 terminal.c to rlprivate.h so other files can use them
3535
3536expr.c
3537 - expr_streval: if noeval is non-zero, just return 0 right away,
3538 short-circuiting evaluation completely. readtok will leave curtok
3539 set correctly without re-entering the evaluator at all. Rest of
3540 fix for bug reported by Dan Douglas <ormaaj@gmail.com>
3541
3542 9/11
3543 ----
3544
3545parse.y
3546 - parse_comsub: make sure the `reserved word ok in this context' flag
3547 is preserved after we read `do' followed by whitespace. Fixes bug
3548 reported by Benoit Vaugon <benoit.vaugon@gmail.com>
3549
3550 9/13
3551 ----
3552configure.ac,config.h.in
3553 - enable-direxpand-default: new configure option, turns the `direxpand'
3554 shell option on by default
3555
3556bashline.c
3557 - dircomplete_expand, dircomplete_expand_relpath: initialize to 1 if
3558 DIRCOMPLETE_EXPAND_DEFAULT is defined and non-zero
3559
3560doc/bashref.texi
3561 - enable-direxpand-default: document new configure option
3562
3563 9/14
3564 ----
3565shell.c
3566 - --protected: make option valid only when wordexp is compiled into
3567 the shell. Fix from Roman Rakus <rrakus@redhat.com>
3568
3569configure.ac
3570 - HP NonStop (*-nsk*): compile --without-bash-malloc. Change from
3571 Joachim Schmitz <jojo@schmitz-digital.de>
3572
3573 9/16
3574 ----
3575subst.c,execute_cmd.c,lib/glob/sm_loop.c,lib/sh/shquote.c
3576 - minor code cleanups from Joachim Schmitz <jojo@schmitz-digital.de>
3577
3578lib/readline/colors.h
3579 - workaround for HP NonStop compiler issue with <stdbool.h> from
3580 Joachim Schmitz <jojo@schmitz-digital.de>
3581
3582 9/17
3583 ----
3584builtins/printf.def
3585 - printf_builtin: handle localtime returning NULL, as can happen when
3586 encountering overflow. Bug report and initial fix from
3587 Eduardo A. Bustamante López <dualbus@gmail.com>
3588
3589doc/{bash.1,bashref.texi}
3590 - emphasize that brace expansion using character ranges ({a..c}) acts
3591 as if the C locale were in use. Prompted by message from
3592 Marcel Giannelia <info@skeena.net>
3593
3594 9/20
3595 ----
3596lib/sh/wcsnwidth.c
3597 - wcsnwidth: new function, variant of wcwidth, returns the number of
3598 wide characters from a string that will be displayed to not exceed
3599 a specified max column position
3600
3601 9/21
3602 ----
3603builtins/help.def
3604 - show_builtin_command_help: break code that displays the short-doc
3605 for each builtin in two columns into a new function: dispcolumn
3606 - wdispcolumn: multibyte-char version of dispcolumn; uses wide
3607 chars and printf "%ls" format. Fixes problem reported by
3608