]>
Commit | Line | Data |
---|---|---|
b721485f CR |
1 | 2/14/2011 |
2 | --------- | |
3 | [bash-4.2 released] | |
4 | ||
5 | 2/15 | |
6 | ---- | |
7 | lib/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 | ---- | |
14 | subst.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 | ||
19 | subst.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 | ||
29 | doc/{bash.1,bashref.texi} | |
30 | - document the exact expansions here strings undergo | |
31 | ||
32 | 2/17 | |
33 | ---- | |
34 | lib/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 | ||
39 | lib/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 | ||
44 | doc/{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 | ---- | |
51 | lib/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 | ||
57 | subst.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 | ---- | |
66 | variables.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 | ||
74 | variables.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 | ||
83 | execute_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 | ||
88 | support/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 | --- | |
99 | variables.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 | --- | |
106 | parse.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 | ||
112 | execute_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 | ||
118 | parse.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 | ||
136 | subst.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 | --- | |
148 | lib/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 | --- | |
154 | lib/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 | --- | |
160 | lib/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 | --- | |
167 | jobs.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 | --- | |
188 | shell.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 | ---- | |
194 | lib/readline/signals.c | |
195 | - add SIGHUP to the set of signals readline handles | |
196 | ||
197 | lib/readline/doc/rltech.texi | |
198 | - document that SIGHUP is now part of the set of signals readline | |
199 | handles | |
200 | ||
201 | lib/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 | ||
209 | execute_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 | ||
214 | input.c | |
215 | - rearrange getc_with_restart so that the return values from read() | |
216 | are handled right | |
217 | ||
218 | parse.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 | ||
225 | bashline.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 | ||
230 | builtins/read.def | |
231 | - take out setting terminate_immediately; add calls to CHECK_TERMSIG | |
232 | after read calls | |
233 | ||
234 | doc/{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 | ||
240 | arrayfunc.[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 | ---- | |
247 | lib/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 | ||
253 | lib/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 | ---- | |
260 | bashline.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 | ---- | |
269 | lib/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 | ||
273 | lib/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 | ---- | |
285 | doc/{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 | ---- | |
291 | trap.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 | ---- | |
298 | lib/readline/rltypedefs.h | |
299 | - remove old Function/VFunction/CPFunction/CPPFunction typedefs as | |
300 | suggested by Tom Tromey <tromey@redhat.com> | |
301 | ||
302 | lib/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 | ---- | |
312 | print_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 | ||
317 | lib/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 | ||
321 | lib/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 | ||
327 | lib/readline/rlprivate.h | |
328 | - new external declaration for _rl_sigwinch_resize_terminal() (currently | |
329 | unused) | |
330 | ||
331 | lib/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 | ---- | |
341 | lib/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 | ||
346 | configure.in | |
347 | - don't check for isinf or isnan; c99 says they're macros anyway | |
348 | ||
349 | config.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 | --- | |
355 | braces.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 | ||
360 | lib/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 | ||
366 | lib/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 | ||
377 | config-top.h | |
378 | - change DEFAULT_PATH_VALUE to something more useful and modern | |
379 | ||
380 | 4/8 | |
381 | --- | |
382 | tests/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 | ---- | |
388 | include/chartypes.h | |
389 | - fix a couple of dicey defines (though ones that don't cause any | |
390 | compiler warnings) in IN_CTYPE_DOMAIN | |
391 | ||
392 | doc/{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 | ||
397 | pcomplete.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 | ||
404 | pcomplete.h | |
405 | - new extern declaration for it_helptopics | |
406 | ||
407 | builtins/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 | ---- | |
414 | print_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 | ||
420 | execute_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 | ---- | |
428 | print_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 | ---- | |
439 | print_cmd.c | |
440 | - change overlapping strcpy in named_function_string to memmove | |
441 | ||
442 | sig.h | |
443 | - UNBLOCK_SIGNAL: convenience define, same as UNBLOCK_CHILD, just | |
444 | restores an old signal mask | |
445 | ||
446 | trap.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 | ---- | |
454 | doc/{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 | ---- | |
460 | builtins/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 | ---- | |
468 | builtins/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 | ---- | |
475 | lib/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 | ||
481 | lib/readline/rlprivate.h | |
482 | - extern declaration for _rl_disable_meta_key | |
483 | ||
484 | configure.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 | ---- | |
491 | config-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 | ---- | |
497 | lib/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 | --- | |
506 | doc/{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 | --- | |
512 | pcomplib.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 | ||
517 | pathexp.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 | --- | |
525 | builtins/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 | --- | |
534 | doc/{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 | ---- | |
541 | subst.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 | ---- | |
549 | subst.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 | ---- | |
557 | configure.in | |
558 | - set the prefer_shared and prefer_static variables appropriately | |
559 | depending on the value of $opt_static_link | |
560 | ||
561 | aclocal.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 | ---- | |
568 | lib/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 | ||
576 | builtins/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 | ||
580 | config.h.in | |
581 | - add define for GLIBC21, checked using jm_GLIBC21 as part of the tests | |
582 | for libintl | |
583 | ||
584 | lib/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 | ||
591 | aclocal.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 | ---- | |
597 | bashline.[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 | ||
602 | sig.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 | ---- | |
610 | lib/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 | ---- | |
618 | lib/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 | ||
622 | lib/readline/{complete,display,mbutil}.c | |
623 | - use WCWIDTH instead of wcwidth | |
624 | ||
625 | 5/17 | |
626 | ---- | |
627 | lib/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 | ||
634 | lib/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 | ||
641 | lib/readline/rlprivate.h | |
642 | - extern declaration for _rl_utf8locale | |
643 | ||
644 | locale.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 | ||
651 | aclocal.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 | ||
656 | config.h.in | |
657 | - WCWIDTH_BROKEN: new define | |
658 | ||
659 | lib/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 | ---- | |
665 | lib/readline/rlprivate.h | |
666 | - _rl_search_context: new member, prevc, will hold character read | |
667 | prior to lastc | |
668 | ||
669 | lib/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 | ---- | |
683 | expr.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 | ||
692 | lib/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 | ||
710 | lib/readline/readline.h | |
711 | - extern declarations for rl_history_substr_search_{for,back}ward | |
712 | ||
713 | lib/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 | ||
719 | lib/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 | ||
731 | config-top.h | |
732 | - DONT_REPORT_SIGTERM: new user-modifiable setting. Commented out | |
733 | by default | |
734 | ||
735 | 5/28 | |
736 | ---- | |
737 | lib/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 | ---- | |
751 | doc/{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 | ---- | |
759 | doc/{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 | ||
765 | arrayfunc.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 | ---- | |
781 | doc/{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 | ---- | |
788 | builtins/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 | ||
800 | doc/{bash.1,bashref.texi} | |
801 | - checkwinsize: remove language saying that only interactive shells | |
802 | check the window size after each command | |
803 | ||
804 | lib/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 | ||
811 | bashline.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 | ||
826 | subst.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 | ||
832 | locale.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 | ||
836 | shell.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 | ||
842 | parse.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 | ||
852 | include/shmbutil.h | |
853 | - use locale_mb_cur_max instead of MB_CUR_MAX in ADVANCE_CHAR and | |
854 | similar macros | |
855 | ||
856 | lib/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 | ---- | |
866 | execute_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 | --- | |
873 | lib/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 | ||
879 | lib/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 | --- | |
885 | bashline.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 | ||
897 | bashline.h | |
898 | - extern declaration for set_directory_hook so shopt code can use it | |
899 | ||
900 | 7/6 | |
901 | --- | |
902 | builtins/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 | --- | |
909 | doc/{bash.1,bashref.texi} | |
910 | - document new `globasciiranges' shopt option | |
911 | ||
912 | 7/8 | |
913 | --- | |
914 | builtins/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 | ||
920 | doc/{bash.1,bashref.texi} | |
921 | - document new `direxpand' shopt option | |
922 | ||
923 | 7/15 | |
924 | ---- | |
925 | lib/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 | ---- | |
932 | lib/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 | ||
936 | lib/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 | ---- | |
949 | lib/readline/isearch.c | |
950 | - _rl_isearch_dispatch: save and restore cxt->mb and cxt->pmb | |
951 | appropriately when in a multibyte locale | |
952 | ||
953 | doc/{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 | ||
959 | lib/readline/signals.c | |
960 | - rl_signal_handler: don't interrupt immediately if in callback mode | |
961 | ||
962 | lib/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 | ||
974 | execute_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 | ||
982 | doc/{bash.1,bashref.texi} | |
983 | - document new Posix-mode behavior of `command' when preceding builtins | |
984 | that take assignment statements as arguments | |
985 | ||
986 | builtins/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 | ---- | |
994 | lib/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 | ||
999 | builtins/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 | ---- | |
1005 | doc/{bash.1,bashref.texi} | |
1006 | - minor changes to the descriptions of the cd and pushd builtins | |
1007 | ||
1008 | lib/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 | --- | |
1014 | expr.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 | --- | |
1020 | execute_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 | --- | |
1029 | builtins/common.c | |
1030 | - get_exitstat: return EX_BADUSAGE (2) on a non-numeric argument | |
1031 | ||
1032 | builtins/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 | ---- | |
1040 | doc/{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 | ---- | |
1047 | configure.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 | ||
1062 | builtins/Makefile.in | |
1063 | - substitute LIBS_FOR_BUILD from configure, not strictly initialized | |
1064 | to $(LIBS) | |
1065 | ||
1066 | 8/27 | |
1067 | ---- | |
1068 | doc/{bash.1,bashref.texi} | |
1069 | - minor changes to the here string description to clarify the | |
1070 | expansions performed on the word | |
1071 | ||
1072 | support/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 | ||
1077 | lib/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 | ---- | |
1086 | lib/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 | --- | |
1094 | lib/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 | ||
1099 | externs.h | |
1100 | - sh_backslash_quote: add second argument to function prototype | |
1101 | ||
1102 | bashline.c,braces.c,parse.y,builtins/printf.def | |
1103 | - change callers of sh_backslash_quote to add second argument | |
1104 | ||
1105 | bashline.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 | --- | |
1119 | bashline.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 | ---- | |
1130 | bashline.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 | ---- | |
1137 | builtins/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 | ---- | |
1145 | expr.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 | ||
1150 | bashline.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 | ||
1159 | doc/{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 | ---- | |
1165 | lib/intl/localealias.c | |
1166 | - read_alias_file: close resource leak (fp) when returning on error | |
1167 | ||
1168 | 9/22 | |
1169 | ---- | |
1170 | execute_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 | ---- | |
1178 | doc/{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 | ---- | |
1185 | execute_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 | ---- | |
1192 | bashhist.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 | ||
1202 | execute_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 | ||
1208 | lib/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 | ||
1214 | bashline.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 | ||
1228 | lib/readline/readline.h | |
1229 | - new extern declaration for rl_filename_stat_hook | |
1230 | ||
1231 | lib/readline/doc/rltech.texi | |
1232 | - rl_directory_rewrite_hook: now documented | |
1233 | - rl_filename_stat_hook: document | |
1234 | ||
1235 | pcomplete.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 | ||
1243 | assoc.[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 | ---- | |
1253 | print_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 | ----- | |
1262 | Makefile.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 | ||
1269 | lib/sh/Makefile.in | |
1270 | - remove some dependencies on version.h where it doesn't make sense | |
1271 | ||
1272 | variables.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 | ----- | |
1281 | doc/{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 | ----- | |
1292 | pcomplete.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 | ----- | |
1300 | bashline.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 | ----- | |
1313 | builtins/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 | ||
1319 | lib/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 | ----- | |
1327 | expr.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 | ----- | |
1335 | subst.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 | ||
1342 | flags.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 | ||
1347 | lib/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 | ----- | |
1357 | make_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 | ---- | |
1365 | Makefile.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 | ---- | |
1372 | findcmd.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 | ||
1377 | lib/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 | ||
1388 | lib/glob/xmbsrtowcs.c | |
1389 | - xdupmbstowcs: fix call to realloc to use sizeof (char *) instead | |
1390 | of sizeof (char **) when assigning idxtmp | |
1391 | ||
1392 | execute_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 | ||
1400 | builtins/read.def | |
1401 | - read_builtin: don't call bind_read_variable with a potentially-null | |
1402 | string | |
1403 | ||
1404 | pcomplete.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 | ||
1415 | bashline.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 | ||
1422 | arrayfunc.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 | ||
1429 | subst.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 | ||
1445 | redir.c | |
1446 | - redirection_error: free `filename' if the redirection operator is | |
1447 | REDIR_VARASSIGN by assigning allocname | |
1448 | ||
1449 | eval.c | |
1450 | - send_pwd_to_eterm: fix memory leak by freeing value returned by | |
1451 | get_working_directory() | |
1452 | ||
1453 | builtins/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 | ||
1460 | builtins/type.def | |
1461 | - describe_command: free `full_path' before overwriting it with return | |
1462 | value from sh_makepath | |
1463 | ||
1464 | builtins/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 | ||
1468 | builtins/hash.def | |
1469 | - list_hashed_filename_targets: fix memory leak by freeing `target' | |
1470 | ||
1471 | make_cmd.c | |
1472 | - make_arith_for_command: free `init', `test', and `step' before | |
1473 | returning error on parse error | |
1474 | ||
1475 | jobs.c | |
1476 | - initialize_job_control: don't call move_to_high_fd if shell_tty == -1 | |
1477 | ||
1478 | general.c | |
1479 | - check_dev_tty: don't call close with an fd < 0 | |
1480 | - legal_number: deal with NULL `string' argument, return invalid | |
1481 | ||
1482 | lib/sh/fmtulong.c | |
1483 | - fmtulong: if the `base' argument is invalid, make sure we index | |
1484 | buf by `len-1' at maximum | |
1485 | ||
1486 | print_cmd.c | |
1487 | - print_deferred_heredocs: don't try to dereference a NULL `cstring' | |
1488 | - cprintf: make sure to call va_end (args) | |
1489 | ||
1490 | variables.c | |
1491 | - push_dollar_vars: fix call to xrealloc to use sizeof (WORD_LIST *) | |
1492 | instead of sizeof (WORD_LIST **) | |
1493 | ||
1494 | lib/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 | ---- | |
1500 | execute_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 | ----- | |
1507 | builtins/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 | ||
1512 | lib/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 | ||
1519 | pcomplete.h | |
1520 | - COPT_NOQUOTE: new complete/compgen option value | |
1521 | ||
1522 | builtins/complete.def | |
1523 | - noquote: new complete/compgen option; will be used to disable | |
1524 | filename completion quoting | |
1525 | ||
1526 | pcomplete.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 | ||
1531 | doc/bash.1,lib/readline/doc/rluser.texi | |
1532 | - document new -o noquote option to complete/compgen/compopt | |
1533 | ||
1534 | pathexp.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 | ||
1542 | doc/{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 | ||
1550 | redir.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 | ||
1554 | redir.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 | ----- | |
1566 | doc/{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 | ||
1576 | variables.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 | ----- | |
1586 | parse.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 | ||
1591 | builtins/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 | ||
1595 | lib/readline/vi_mode.c | |
1596 | - rl_vi_replace: set _rl_vi_last_key_before_insert to invoking key | |
1597 | ||
1598 | 11/25 | |
1599 | ----- | |
1600 | builtins/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 | ||
1613 | lib/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 | ----- | |
1639 | lib/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 | ||
1645 | lib/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 | ||
1666 | lib/readline/util.c | |
1667 | - rl_settracefp: new utility function to set the tracing FILE * | |
1668 | ||
1669 | lib/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 | ||
1677 | lib/readline/rlprivate.h | |
1678 | - extern declarations for _rl_sigcleanup and _rl_sigcleanarg | |
1679 | ||
1680 | lib/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 | ||
1690 | doc/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 | ---- | |
1697 | lib/glob/gmisc.c | |
1698 | - extglob_pattern: new function, returns 1 if pattern passed as an | |
1699 | argument looks like an extended globbing pattern | |
1700 | ||
1701 | lib/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 | ---- | |
1712 | lib/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 | ||
1716 | lib/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 | ||
1733 | execute_cmd.c | |
1734 | - execute_cond_node: added parens to patmatch assignment statement to | |
1735 | make intent clearer | |
1736 | ||
1737 | 12/3 | |
1738 | ---- | |
1739 | configure.in,config.h.in | |
1740 | - check for imaxdiv, define HAVE_IMAXDIV if present | |
1741 | ||
1742 | expr.c | |
1743 | - expassign, exp2: use imaxdiv if available. Doesn't help with checks | |
1744 | for overflow from 10/25 | |
1745 | ||
1746 | 12/6 | |
1747 | ---- | |
1748 | lib/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 | ---- | |
1760 | builtins/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 | ||
1765 | doc/{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 | ----- | |
1771 | lib/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 | ||
1775 | lib/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 | ||
1780 | lib/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 | ||
1793 | lib/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 | ||
1799 | lib/readline/rlprivate.h | |
1800 | - new extern declaration for _rl_executing_keyseq_size, buffer size | |
1801 | for rl_executing_keyseq | |
1802 | ||
1803 | lib/readline/doc/rltech.texi | |
1804 | - documented new variables: rl_executing_key, rl_executing_keyseq, | |
1805 | rl_key_sequence_length | |
1806 | ||
1807 | 12/13 | |
1808 | ----- | |
1809 | bashline.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 | ----- | |
1818 | make_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 | ||
1823 | execute_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 | ||
1835 | expr.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 | ----- | |
1841 | bashline.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 | ||
1857 | lib/readline/history.c | |
1858 | - history_get_time: atol -> strtol | |
1859 | ||
1860 | 12/18 | |
1861 | ----- | |
1862 | parse.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 | ||
1867 | externs.h | |
1868 | - extern declaration for parser_in_command_position | |
1869 | ||
1870 | 12/19 | |
1871 | ----- | |
1872 | ||
1873 | builtins/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 | ||
1878 | bashline.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 | ----- | |
1886 | lib/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 | ||
1896 | lib/readline/rlprivate.h | |
1897 | - _rl_untranslate_macro_value: extern declaration | |
1898 | ||
1899 | lib/readline/{macro.c,readline.h} | |
1900 | - rl_print_last_kbd_macro: new bindable function, inspired by patch | |
1901 | from Mitchel Humpherys | |
1902 | ||
1903 | lib/readline/funmap.c | |
1904 | - print-last-kbd-macro: new bindable command, bound to | |
1905 | rl_print_last_kbd_macro | |
1906 | ||
1907 | lib/readline/doc/{rluser.texi,readline.3},doc/bash.1 | |
1908 | - print-last-kbd-macro: document. | |
1909 | ||
1910 | lib/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 | ||
1915 | bashline.[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 | ||
1919 | builtins/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 | ||
1924 | doc/{bash.1,bashref.texi} | |
1925 | - document new `bind -X' option | |
1926 | ||
1927 | 12/24 | |
1928 | ----- | |
1929 | ||
1930 | doc/{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 | ----- | |
1939 | shell.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 | ||
1947 | jobs.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 | ||
1955 | flags.h | |
1956 | - new extern declaration for jobs_m_flag | |
1957 | ||
1958 | builtins/{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 | ||
1964 | lib/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 | -------- | |
1971 | jobs.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 | --- | |
1978 | quit.h | |
1979 | - LASTSIG(): new macro, expands to signal number of last terminating | |
1980 | signal received (terminating_signal or SIGINT) | |
1981 | ||
1982 | trap.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 | ||
1987 | builtins/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 | ---- | |
1996 | doc/{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 | ---- | |
2002 | lib/readline/{colors.[ch],parse-colors.[ch]} | |
2003 | - new files, part of color infrastructure support | |
2004 | ||
2005 | Makefile.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 | ---- | |
2014 | lib/readline/bind.c | |
2015 | - colored_stats: new bindable variable, enables using colors to | |
2016 | indicate file type when listing completions | |
2017 | ||
2018 | lib/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 | ||
2028 | lib/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 | ||
2034 | lib/readline/rlprivate.h | |
2035 | - _rl_colored_stats: new extern declaration | |
2036 | ||
2037 | lib/readline/doc/{readline.3,rluser.texi},doc/bash.1 | |
2038 | - colored-stats: document new bindable readline variable | |
2039 | ||
2040 | lib/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 | ||
2045 | lib/readline/complete.c | |
2046 | - stat_char: call rl_filename_stat_hook before calling lstat/stat | |
2047 | ||
2048 | findcmd.[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 | ||
2054 | execute_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 | ||
2058 | bashline.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 | ---- | |
2073 | pcomplete.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 | ||
2098 | lib/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 | ||
2102 | lib/readline/util.c | |
2103 | - _rl_audit_tty: new function, send a string to the kernel tty audit | |
2104 | system | |
2105 | ||
2106 | lib/readline/rlprivate.h | |
2107 | - _rl_audit_tty: new extern declaration | |
2108 | ||
2109 | lib/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 | ||
2118 | lib/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 | ||
2123 | parse.y | |
2124 | - shell_getc: make code that uses the pop_alias dependent on ALIAS | |
2125 | define | |
2126 | ||
2127 | variables.h | |
2128 | - sv_tz: extern define should only depend on HAVE_TZSET | |
2129 | ||
2130 | expr.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 | ||
2136 | arrayfunc.h | |
2137 | - AV_ALLOWALL, AV_QUOTED, AV_USEIND: define to 0 if ARRAY_VARS not | |
2138 | defined; used in subst.c unconditionally | |
2139 | ||
2140 | sig.h | |
2141 | - make the signal blocking functions not dependent on JOB_CONTROL | |
2142 | ||
2143 | sig.c | |
2144 | - sigprocmask: make the replacement definition not dependent on | |
2145 | JOB_CONTROL | |
2146 | ||
2147 | trap.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 | ||
2154 | print_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 | ---- | |
2163 | lib/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 | ||
2168 | doc/{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 | --- | |
2177 | builtins/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 | --- | |
2185 | lib/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 | ||
2190 | lib/readline/rlprivate.h | |
2191 | - _rl_free_undo_list: new extern declaration | |
2192 | - _rl_keyseq_timeout: new extern declaration (see below) | |
2193 | ||
2194 | lib/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 | ||
2200 | lib/readline/doc/rltech.texi | |
2201 | - rl_clear_history: documented | |
2202 | ||
2203 | lib/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 | ||
2211 | lib/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 | ||
2218 | doc/bash.1,lib/readline/doc/{rluser.texi,readline.3} | |
2219 | - keyseq-timeout: documented | |
2220 | ||
2221 | lib/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 | --- | |
2239 | builtins/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 | ||
2249 | builtins/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 | ||
2262 | Makefile.in | |
2263 | - when building libbuiltins.a, recursively call make with `targets' | |
2264 | argument to make sure separate helpfiles get built | |
2265 | ||
2266 | configure.in | |
2267 | - substitute `helpdoc' as value of HELPFILES_TARGET if | |
2268 | --enable-separate-helpfiles supplied as configure argument | |
2269 | ||
2270 | builtins/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 | --- | |
2278 | subst.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 | ||
2284 | variables.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 | ||
2289 | variable.h,subst.c | |
2290 | - make_local_array_variable: changed prototype and caller | |
2291 | ||
2292 | builtins/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 | ||
2302 | execute_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 | ||
2313 | builtins/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 | ---- | |
2319 | builtins/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 | ||
2324 | parse.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 | ---- | |
2331 | lib/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 | ||
2337 | builtins/printf.def | |
2338 | - tescape: ditto for printf \u and \U escape sequences | |
2339 | ||
2340 | 2/20 | |
2341 | ---- | |
2342 | lib/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 | ||
2351 | locale.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 | ---- | |
2358 | doc/{bash,builtins}.1 | |
2359 | - minor changes from Bjarni Ingi Gislason <bjarniig@rhi.hi.is> | |
2360 | ||
2361 | lib/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 | ||
2368 | lib/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 | ---- | |
2374 | lib/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 | ---- | |
2380 | execute_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 | ---- | |
2387 | error.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 | ||
2393 | unicode.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 | --- | |
2407 | lib/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 | --- | |
2415 | builtins/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 | ||
2421 | subst.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 | --- | |
2431 | lib/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 | --- | |
2438 | bashline.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 | --- | |
2449 | m4/timespec.m4 | |
2450 | - new macros, cribbed from gnulib and coreutils: find out whether we | |
2451 | have `struct timespec' and what file includes it | |
2452 | ||
2453 | m4/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 | ||
2458 | include/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 | ||
2465 | test.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 | ---- | |
2479 | include/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 | ||
2486 | lib/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 | ||
2491 | lib/readline/signals.c | |
2492 | - make sure all occurrences of SIGWINCH are protected by #ifdef | |
2493 | ||
2494 | sig.c | |
2495 | - make sure all occurrences of SIGCHLD are protected by #ifdef | |
2496 | ||
2497 | nojobs.c | |
2498 | - make sure SA_RESTART is defined to 0 if the OS doesn't define it | |
2499 | ||
2500 | version.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 | ||
2504 | trap.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 | ||
2509 | trap.h | |
2510 | - queue_sigchld_trap: new extern declaration | |
2511 | ||
2512 | jobs.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 | ||
2518 | lib/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 | ---- | |
2528 | config-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 | ---- | |
2538 | doc/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 | ||
2543 | lib/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 | ---- | |
2550 | array.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 | ---- | |
2559 | array.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 | ---- | |
2565 | lib/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 | ---- | |
2571 | stringlib.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 | ---- | |
2577 | subst.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 | ||
2584 | lib/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 | ---- | |
2591 | config-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 | ||
2596 | array.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 | ---- | |
2602 | print_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 | --- | |
2609 | command.h | |
2610 | - W_ASSNGLOBAL: new flag, set to indicate declare -g | |
2611 | ||
2612 | execute_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 | ||
2616 | subst.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 | --- | |
2625 | lib/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 | ||
2634 | lib/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 | ||
2639 | externs.h | |
2640 | - sh_mbsnlen: extern declaration for new function | |
2641 | ||
2642 | shell.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 | ||
2648 | doc/{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 | ---- | |
2660 | lib/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 | ||
2665 | lib/readline/parse-colors.[ch] | |
2666 | - don't try to include <stdbool.h> at all; rely on colors.h to do it | |
2667 | ||
2668 | lib/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 | ---- | |
2676 | lib/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 | ---- | |
2694 | lib/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 | ---- | |
2706 | tests/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 | ---- | |
2712 | tests/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 | ---- | |
2719 | lib/sh/strftime.c | |
2720 | - incoporated new version from Aharon Robbins <arnold@skeeve.com> | |
2721 | ||
2722 | 4/22 | |
2723 | ---- | |
2724 | doc/{bash.1,bashref.texi} | |
2725 | - slight change to the description of /dev/tcp and /dev/udp | |
2726 | ||
2727 | subst.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 | ||
2732 | bashline.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 | ---- | |
2739 | execute_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 | --- | |
2747 | subst.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 | --- | |
2760 | variables.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 | ||
2769 | arrayfunc.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 | ||
2776 | arrayfunc.h | |
2777 | - make_array_variable_value: new extern declaration | |
2778 | ||
2779 | 5/19 | |
2780 | ---- | |
2781 | variables.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 | ||
2789 | braces.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 | ---- | |
2796 | Makefile.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 | ||
2802 | builtins/Makefile.in | |
2803 | - LDFLAGS_FOR_BUILD: add to compilation recipes for build tools | |
2804 | gen-helpfiles, psize.aux | |
2805 | ||
2806 | variables.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 | ---- | |
2814 | subst.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 | ||
2822 | doc/{bash.1,bashref.texi} | |
2823 | - changes to the description of substring expansion inspired by | |
2824 | suggestions from Bill Gradwohl <bill@ycc.com> | |
2825 | ||
2826 | doc/bashref.texi | |
2827 | - added substring expansion examples inspired by suggestions from | |
2828 | Bill Gradwohl <bill@ycc.com> | |
2829 | ||
2830 | variables.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 | ||
2838 | variables.h | |
2839 | - find_shell_variable: extern declaration | |
2840 | - find_variable_tempenv: extern declaration | |
2841 | - find_variable_notempenv: extern declaration | |
2842 | ||
2843 | arrayfunc.c | |
2844 | - bind_array_variable: call find_shell_variable instead of calling | |
2845 | var_lookup directly | |
2846 | ||
2847 | findcmd.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 | ||
2853 | builtins/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 | --- | |
2861 | sig.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 | ||
2866 | lib/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 | --- | |
2876 | lib/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 | --- | |
2882 | lib/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 | --- | |
2890 | braces.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 | --- | |
2907 | braces.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 | --- | |
2913 | parse.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 | --- | |
2921 | bashline.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 | ||
2927 | lib/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 | ||
2933 | externs.h | |
2934 | - sh_backslash_quote: declaration now takes a third argument | |
2935 | ||
2936 | builtins/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 | ||
2944 | doc/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 | ---- | |
2950 | execute_cmd.c | |
2951 | - line_number_for_err_trap: now global, so parse_and_execute can save | |
2952 | and restore it with unwind-protect | |
2953 | ||
2954 | builtins/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 | ---- | |
2965 | lib/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 | ---- | |
2973 | builtins/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 | ||
2982 | execute_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 | ---- | |
2989 | mailcheck.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 | ||
2994 | builtins/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 | ||
2998 | nojobs.c | |
2999 | - job_control: now declared as int variable, initialized to 0, never | |
3000 | modified | |
3001 | ||
3002 | jobs.h | |
3003 | - job_control: extern declaration no longer dependent on JOB_CONTROL | |
3004 | ||
3005 | execute_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 | ---- | |
3012 | lib/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 | ---- | |
3024 | lib/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 | ---- | |
3034 | trap.c | |
3035 | - signal_is_pending: return TRUE if SIG argument has been received and | |
3036 | a trap is waiting to execute | |
3037 | ||
3038 | trap.h | |
3039 | - signal_is_pending: extern declaration | |
3040 | ||
3041 | lib/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 | ||
3048 | variables.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 | ---- | |
3057 | lib/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 | ---- | |
3066 | variables.h | |
3067 | - additional defines for the new `nameref' variable attribute | |
3068 | (att_nameref): nameref_p, nameref_cell, var_setref | |
3069 | ||
3070 | variables.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 | ||
3098 | subst.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 | ||
3107 | execute_cmd.c | |
3108 | - execute_for_command: changes to implement ksh93 semantics when index | |
3109 | variable is a nameref | |
3110 | ||
3111 | builtins/setattr.def | |
3112 | - show_var_attributes: change to add `n' to flags list if att_nameref | |
3113 | is set | |
3114 | ||
3115 | builtins/set.def | |
3116 | - unset_builtin: changes to error messages to follow nameref variables | |
3117 | ||
3118 | builtins/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 | --- | |
3128 | variables.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 | ||
3134 | variables.h | |
3135 | - unbind_nameref: extern declaration | |
3136 | ||
3137 | builtins/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 | ||
3142 | doc/{bash.1,bashref.texi} | |
3143 | - document namerefs and typeset/declare/local/unset -n | |
3144 | ||
3145 | 7/13 | |
3146 | ---- | |
3147 | lib/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 | ||
3157 | lib/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 | ||
3162 | lib/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 | ||
3166 | lib/readline/rltty.c | |
3167 | - prepare_terminal_settings: don't mess with IXOFF setting if | |
3168 | USE_XON_XOFF defined | |
3169 | ||
3170 | doc/{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 | ||
3175 | bashline.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 | ---- | |
3185 | configure.in | |
3186 | - interix: define RECYCLES_PIDS. Based on a report from Michael | |
3187 | Haubenwallner <michael.haubenwallner@salomon.at> | |
3188 | ||
3189 | 7/26 | |
3190 | ---- | |
3191 | jobs.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 | ||
3198 | support/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 | ---- | |
3204 | subst.c | |
3205 | - command_substitute: make sure last_made_pid gets reset if make_child | |
3206 | fails | |
3207 | ||
3208 | execute_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 | ||
3214 | jobs.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 | ---- | |
3222 | shell.c | |
3223 | - subshell_exit: new function, exits the shell (via call to sh_exit()) | |
3224 | after calling any defined exit trap | |
3225 | ||
3226 | externs.h | |
3227 | - subshell_exit: new extern declaration | |
3228 | ||
3229 | execute_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 | ||
3234 | sig.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 | |
3241 | builtins/{cd,fc,pushd,ulimit}.def | |
3242 | lib/malloc/getpagesize.h | |
3243 | lib/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 | --- | |
3249 | lib/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 | --- | |
3267 | configure.in | |
3268 | - AC_CANONICAL_BUILD: invoke for later use | |
3269 | ||
3270 | lib/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 | ||
3274 | lib/readline/rlprivate.h | |
3275 | - _rl_prev_macro_key: extern declaration | |
3276 | ||
3277 | ||
3278 | lib/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 | ---- | |
3285 | builtins/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 | ||
3292 | builtins/common.h | |
3293 | - extern declaration for evalstring() | |
3294 | ||
3295 | builtins/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 | ||
3301 | trap.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 | ||
3306 | builtins/mapfile.def | |
3307 | - run_callback: call evalstring instead of parse_and_execute | |
3308 | ||
3309 | 8/15 | |
3310 | ---- | |
3311 | bashline.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 | ||
3317 | lib/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 | ---- | |
3323 | variables.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 | ---- | |
3330 | shell.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 | ---- | |
3338 | arrayfunc.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 | ---- | |
3347 | command.h | |
3348 | - W_NOBRACE: new word flag that means to inhibit brace expansion | |
3349 | ||
3350 | subst.c | |
3351 | - brace_expand_word_list: suppress brace expansion for words with | |
3352 | W_NOBRACE flag | |
3353 | ||
3354 | 8/22 | |
3355 | ---- | |
3356 | builtins/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 | ||
3362 | execute_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 | ---- | |
3370 | jobs.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 | ---- | |
3376 | subst.c | |
3377 | - changes for W_NOBRACE everywhere appropriate: so it can be displayed | |
3378 | for debugging, and passed out of expand_word_internal | |
3379 | ||
3380 | doc/{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 | ||
3385 | doc/bashref.texi | |
3386 | - some small formatting changes from Karl Berry <karl@freefriends.org> | |
3387 | ||
3388 | 8/27 | |
3389 | ---- | |
3390 | lib/readline/doc/{history,rlman,rluserman}.texi | |
3391 | - some small formatting changes from Karl Berry <karl@freefriends.org> | |
3392 | ||
3393 | arrayfunc.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 | ||
3401 | subst.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 | ---- | |
3407 | doc/{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 | ---- | |
3413 | shell.c | |
3414 | - show_shell_usage: add -l to list of shell invocation options (short | |
3415 | for --login). From Red Hat bug 852469 | |
3416 | ||
3417 | configure.ac | |
3418 | - renamed from configure.in, as latest autoconf versions want. Patches | |
3419 | Stefano Lattarini <stefano.lattarini@gmail.com> | |
3420 | ||
3421 | MANIFEST,Makefile.in,doc/bashref.texi,support/mkconffiles | |
3422 | - configure.in -> configure.ac | |
3423 | ||
3424 | 9/1 | |
3425 | --- | |
3426 | ||
3427 | parse.y | |
3428 | - read_token_word: allow words like {array[ind]} to be valid redirection | |
3429 | words for constructs like {x}<file | |
3430 | ||
3431 | redir.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 | ||
3439 | lib/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 | ||
3453 | lib/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 | ||
3459 | lib/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 | ||
3463 | lib/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 | ||
3467 | lib/readline/rlprivate.h | |
3468 | - _rl_reset_prompt, _rl_show_mode_in_prompt: extern declarations | |
3469 | ||
3470 | lib/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 | ||
3477 | doc/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 | ||
3483 | jobs.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 | |
3487 | jobs.h | |
3488 | - set_childmax: extern declaration | |
3489 | ||
3490 | variables.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 | ||
3498 | doc/{bash.1,bashref.texi} | |
3499 | - CHILD_MAX: document new meaning and action when variable is set | |
3500 | ||
3501 | 9/5 | |
3502 | --- | |
3503 | redir.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 | --- | |
3511 | expr.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 | --- | |
3519 | lib/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 | ||
3524 | lib/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 | ||
3532 | lib/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 | ||
3536 | expr.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 | ||
3545 | parse.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 | ---- | |
3552 | configure.ac,config.h.in | |
3553 | - enable-direxpand-default: new configure option, turns the `direxpand' | |
3554 | shell option on by default | |
3555 | ||
3556 | bashline.c | |
3557 | - dircomplete_expand, dircomplete_expand_relpath: initialize to 1 if | |
3558 | DIRCOMPLETE_EXPAND_DEFAULT is defined and non-zero | |
3559 | ||
3560 | doc/bashref.texi | |
3561 | - enable-direxpand-default: document new configure option | |
3562 | ||
3563 | 9/14 | |
3564 | ---- | |
3565 | shell.c | |
3566 | - --protected: make option valid only when wordexp is compiled into | |
3567 | the shell. Fix from Roman Rakus <rrakus@redhat.com> | |
3568 | ||
3569 | configure.ac | |
3570 | - HP NonStop (*-nsk*): compile --without-bash-malloc. Change from | |
3571 | Joachim Schmitz <jojo@schmitz-digital.de> | |
3572 | ||
3573 | 9/16 | |
3574 | ---- | |
3575 | subst.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 | ||
3578 | lib/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 | ---- | |
3584 | builtins/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 | ||
3589 | doc/{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 | ---- | |
3596 | lib/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 | ---- | |
3603 | builtins/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 |