]> git.ipfire.org Git - thirdparty/bash.git/blame - CWRU/changelog
Imported from ../bash-2.0.tar.gz.
[thirdparty/bash.git] / CWRU / changelog
CommitLineData
726f6388
JA
1 6/2
2 ---
3lib/readline/readline.c
4 - fixed an off-by-one error in the kill ring reallocation code
5 in rl_kill_text
6
7Makefile
8 - replaced instances of /bin/sh with $(SHELL)
9
10Makefile, cpp-Makefile, documentation/Makefile
11 - added a working `uninstall' target
12
13[1.14.0 FCS release made available for FTP]
14
15 6/3
16 ---
17README
18 - added note about building with gcc, same as in Makefile
19
20documentation/Makefile
21 - some versions of make don't understand `$*' in a regular recipe;
22 replace with features.dvi in the recipe for features.ps
23
24 6/4
25 ---
26subst.c
27 - fix up the calls to string_extract_double_quoted and
28 string_extract_single_quoted in char_is_quoted so the initial
29 value of the index is *after* the opening quote character
30 - make sure we only return 1 from char_is_quoted if the index
31 into the string after a call to string_extract_double_quoted or
32 string_extract_single_quoted is *greater than* `eindex'
33
34lib/readline/complete.c
35 - change the order and sense of the quoting tests in
36 rl_complete_internal so that the expensive char_is_quoted
37 is only called if `scan' actually is a word break character
38
39shell.c
40 - fixed a typo in the test for a restricted shell
41
42builtins/exec.def
43 - need to include flags.h
44
45 6/6
46 ---
47make_cmd.c
48 - make sure that we don't try to walk down a null command tree
49 in connect_async_list (tickled by `(command &) &')
50 - if a command has the CMD_WANT_SUBSHELL bit set in its flags,
51 don't even try to walk the command tree and move the `&';
52 just connect the command with a null command using `&'
53
54execute_cmd.c
55 - make sure we don't try to reference a command struct without
56 first checking it (case '&')
57
58 6/7
59 ---
60machines.h
61 - fix a typo in the NeXT/i386 description; change the NeXT description
62 to #define HAVE_RESOURCE if not already defined rather than putting
63 -DHAVE_RESOURCE into the SYSDEP_CFLAGS
64
65 6/9
66 ---
67Makefile
68 - make sure all of the rules that reinvoke `make' have the
69 `-f bash-Makefile' before the assignment statements; some
70 versions of make like it that way
71
72variables.c
73 - make sure that `interactive' is set to 0 before evaluating the
74 string containing an exported function obtained from the
75 environment, so that it does not try to execute PROMPT_COMMAND
76 (this may not be the best fix)
77
78 6/13
79 ----
80documentation/Makefile
81 - make sure all of the directories exist before trying to install
82 doc files into them
83
84lib/readline/history.c
85 - add a missing O_TRUNC to the open call for writing in
86 history_truncate_file
87
88trap.c
89 - run_interrupt_trap should only try to run the trap command if
90 the value is not IMPOSSIBLE_TRAP_HANDLER
91
92Makefile
93 - add `realclean'
94
95lib/readline/complete.c
96 - do the same kind of double-quoting a replacement string if the
97 user supplies the opening double quote as we would if we were
98 adding both quotes ourselves
99
100variables.c
101 - fixed the variable initialization so that history_control/HISTCONTROL
102 can be inherited from a parent shell
103
104INSTALL, README, cpp-Makefile, documentation/bash.1, documentation/readline.3
105 - ai.mit.edu -> prep.ai.mit.edu
106
107shell.c
108 - fixed a problem with setting no_line_editing to the result of the
109 check for running inside emacs, thereby losing any value
110 initialized by the `-nolineediting' flag
111
112cpp-Makefile
113 - `make distclean' will now remove the `installed-bash' link
114
115print_cmd.c
116 - fixed a problem with undefined variables when HAVE_VARARGS_H is
117 not defined
118
119 6/14
120 ----
121lib/readline/history.c
122 - fixed an error in the csh history expansion code so that the
123 `-y' word designator now expands to `0-y' rather than `1-y'
124
125lib/readline/isearch.c
126 - changed an absolute check for a character falling within the
127 ASCII 32-126 range (printable chars) with checks for CTRL_P
128 and META_CHAR and a check against the value RUBOUT
129 - changed a `break' to a `continue' so that the first non-matching
130 character in the search string does not cause the search to
131 end abruptly
132 - initialize prev_line_found to 0 at the top of rl_search_history
133 to avoid duplicate history lines being saved across searches
134
135lib/readline/rltty.c
136 - consolidated repeated code for setting special characters into
137 `SET_SPECIAL' defines
138
139lib/readline/readline.c
140 - include <sys/ioctl.h> if VSTATUS is defined
141 - add bindable command rl_tty_status (unbound by default)
142
143lib/readline/funmap.c
144 - assign bindable command name `tty-status' to rl_tty_status
145
146INSTALL
147 - add note about compiling with gcc, same text as README
148
149lib/readline/display.c
150 - many changes and tweaks to make redisplay work better when the
151 prompt has invisible characters. These changes are non-optimal
152 in that the prompt is redrawn more than it needs to be, but
153 things are a hell of a lot better than they were
154
155 6/15
156 ----
157documentation/Makefile
158 - make a variable NROFF that people can set to `groff -Tascii' if
159 they don't have real nroff
160 - changed the suffix rules to use $<
161
162support/bashbug.sh
163 - if rmail doesn't exist or fails, save the bug report in
164 ~/dead.bashbug
165
166execute_cmd.c
167 - in setup_async_signals, only ignore SIGINT and SIGQUIT if job
168 control is not active. If it is active and the job is restarted,
169 SIGINT remains ignored, and the now-foregrounded job is not
170 interruptible
171
172subst.c
173 - fixed up a problem with char_is_quoted that caused backslash-
174 escaped characters to cause incorrect results
175
176tests/run-dollars, tests/dollar-at.sh, tests/dollar-star.sh
177 - since the error messages produced by `cat' vary, changed `cat'
178 to `recho' and updated the correct answers file
179
180machines.h
181 - fixes to CRAY_STACKSEG_END definitions for different versions of
182 Unicos on the YMP (from Bill Jones)
183 - Motorola SVR4 machines have getcwd() and should not undef
184 HAVE_GETCWD
185 - on hpux 9.x, don't try to link with -lPW if compiling with gcc
186 (for alloca)
187
188parse.y
189 - an ugly fix for a compiler problem with structure assignment on
190 the cray
191
192 6/16
193 ----
194builtins/wait.def
195 - replaced a call to sscanf with a validity check using all_digits()
196 and a call to atoi, since a pid_t is not necessarily an int, and
197 the sscanf clobbered the stack frame on systems where it is shorter
198 than an int (e.g., SCO)
199
200lib/readline/display.c
201 - since META_CHAR and the other macros only work with unsigned
202 chars, make rl_character_len convert its argument to an unsigned
203 char before testing it
204
205documentation/Makefile
206 - use $(INSTALL_DATA) instead of $(CP) to install the man pages and
207 info files
208
209cpp-Makefile
210 - use INSTALL_PROGRAM and INSTALL_DATA to install binaries and
211 documentation; pass both values to installs in subdirectories
212
213 6/18
214 ----
215builtins/ulimit.def
216 - compensate for systems which define RLIMIT_OFILE instead of
217 RLIMIT_NOFILE, or don't provide such a compatibility define
218 themselves
219
220shell.c
221 - make maybe_execute_file check for directories and print an
222 appropriate error message, since it's doing an fstat anyway
223
224support/mksysdefs
225 - added support for a `-s srcdir' option so it can find
226 cpp-Makefile if ansi-Makefile is to be created
227
228Makefile
229 - call mksysdefs with -s $(srcdir)
230
231jobs.c
232 - add the magic #undef lines to avoid redefinition warnings on
233 SunOS 4 only
234
235 6/20
236 ----
237cpp-Makefile
238 - install `bashbug' with `make install'
239
240trap.c
241 - make sure that `interactive' is set to 0 when running trap
242 commands
243
244builtins/umask.c
245 - fixed typo in usage error message
246
247subst.c
248 - fix process_substitute to set subshell_environment
249
250jobs.c, nojobs.c
251 - only mess with the terminal settings for an interactive shell
252 that is not in a subshell environment
253
254 6/21
255 ----
256lib/readline/history.h
257 - add extern declaration of history_get
258
259builtins/fc.def
260 - make history replacement when using `r' or `fc -s' obey the
261 setting of HISTCONTROL
262
263general.c
264 - in canonicalize_pathname, preserve a double // at the start
265 of an absolute pathname, since that means something special
266 for the network directory system
267
268README, INSTALL
269 - updated information about submitting bug reports
270
271lib/readline/vi_mode.c, lib/readline/isearch.c
272 - make sure unistd.h is included before rldefs.h, if
273 HAVE_UNISTD_H is defined
274
275 6/24
276 ----
277lib/readline/complete.c
278 - add `#' to the list of characters which cause a completed filename
279 to be quoted
280
281execute_cmd.c
282 - be more careful about closing pipe file descriptors in do_piping;
283 don't want to have `dup2(i, i); close(i);' problem
284
285lib/readline/{keymaps,readline}.h
286 - include local copies of include files if READLINE_LIBRARY is
287 defined, otherwise include the `official, installed' versions
288 using #include <readline/xxx.h>
289
290lib/readline/*.c
291 - define READLINE_LIBRARY before including any files
292 - include only `local' copies of include files using #include "xxx.h"
293 rather than #include <readline/xxx.h>
294
295 6/26
296 ----
297execute_cmd.c
298 - check for clobbering the bash input stream before closing a file
299 descriptor due to an r_close_this redirection
300
301lib/readline/history.c
302 - made history_expand inhibit history expansion if the history
303 expansion char is set to 0
304
305lib/readline/chardefs.h
306 - moved savestring() definition to rldefs.h
307 - changed lowercase_p, uppercase_p, to_lower, to_upper defines to
308 use <ctype.h> macros rather than assume ASCII
309
310lib/readline/bind.c, general.c, general.h
311 - use strcasecmp, strncasecmp instead of str[n]icmp if
312 HAVE_STRCASECMP is defined
313
314cpp-Makefile
315 - pass -DHAVE_STRCASECMP to builds in the libraries, primarily
316 readline
317
318machines.h
319 - add HAVE_STRCASECMP to the entries for BSD/386, NetBSD, FreeBSD,
320 and 4.4 BSD
321
322builtins/hash.def
323 - add a fourth parameter to remember_filename, the initial value
324 of times_found (0 if we're just looking it up for `hash', 1
325 for the command execution code)
326
327execute_cmd.c
328 - call remember_filename with an initial value of 1 for times_found
329
330builtins/wait.def
331 - handle a null argument with an error message
332
333builtins/common.c
334 - parse_and_execute now takes a third parameter: the value for
335 `interactive' while it is executing commands
336
337bashline.c, jobs.c, parse.y, shell.c, subst.c, trap.c, variables.c
338 - set the new third argument to parse_and_execute appropriately
339
340builtins/eval.def, builtins/fc.def, builtins/source.def
341 - set the new third argument to parse_and_execute appropriately
342
343builtins/help.def
344 - changed a call to strnicmp to strncmp when trying to find what
345 to give help on; it seems more correct
346
347 6/27
348 ----
349machines.h
350 - cleaned up the SunOS section so it no longer relies on
351 HAVE_SHARED_LIBS being defined; it uses SunOS4 and SunOS5
352 instead
353
354support/mksysdefs
355 - define SYSDEF to be SunOS4 or SunOS5 depending on the output
356 of uname rather than looking for ld.so
357
358 6/29
359 ----
360machines.h
361 - minor change to the ardent titan machine description
362 - move the ardent and stardent descriptions before the
363 mips riscos description
364
365print_cmd.c
366 - ardent machines also need the extern declaration for printf
367
368make_cmd.c
369 - connect_async_list should do its work only if the lists to be
370 backgrounded are connected with `;'. This makes `;' bind tighter
371 than `&', so only the last job in the list is backgrounded. All
372 other lists should have the entire thing put in the background
373
374parse.y
375 - added a function `print_prompt' to take care of displaying the
376 prompt string if readline is not being used. This fixes problems
377 with the prompt being displayed before the status of completed
378 jobs is printed
379
380 6/30
381 ----
382builtins/fg_bg.def
383 - `fg' and `bg' now print error messages if invoked when job control
384 is disabled
385
386lib/readline/rltty.c
387 - if not compiled into the shell, make get_tty_settings get and set
388 the window size. This noop stops the process if it is started in
389 the background
390
391lib/readline/readline.c
392 - provide a function version of savestring, if not being compiled
393 into the shell, since the macro has been removed from the
394 `public' header files
395
396lib/readline/readline.h
397 - provide all extern function declarations without checking whether
398 VI_MODE or PAREN_MATCHING are defined. It does not hurt to define
399 them if they are not used and not in the library, and other
400 applications using readline can't tell whether or not VI_MODE was
401 defined when the library was compiled anyway
402
403 7/1
404 ---
405machines.h
406 - add #undef HAVE_DIRENT_H to the ardent titan description
407
408 7/2
409 ---
410lib/readline/chardefs.h
411 - removed META_P define, renamed CTRL_P to CTRL_CHAR
412
413lib/readline/bind.c, lib/readline/isearch.c
414 - changed instances of CTRL_P to CTRL_CHAR
415
416lib/readline/search.c
417 - include <unistd.h> before rldefs.h, if HAVE_UNISTD_H is defined
418
419lib/readline/readline.c
420 - declare PC, UP, and BC as extern rather than `local' to the
421 readline library
422
423 7/5
424 ---
425bashline.c
426 - implement command word completion inside of command substitution
427 with a new function: `command_subst_completion_function'
428
429subst.c
430 - new function to help with command subst completion: unclosed_pair
431
432lib/readline/complete.c
433 - new variable rl_filename_quoting_desired, which can be set to 0
434 to inhibit the quoting of filenames after completion
435
436lib/readline/readline.h
437 - declare rl_filename_completion_desired and
438 rl_filename_quoting_desired
439
440builtins/bind.def
441 - don't save the old value of rl_outstream before initializing
442 readline -- it saves garbage values and screws up readline
443
444parse.y
445 - don't have private state telling whether or not readline has
446 been initialized -- use bash_readline_initialized like other
447 functions in bashline.c
448
449lib/readline/readline.c
450 - make the default 8-bit behavior be based on whether LC_CTYPE is
451 defined and its value (accept iso-8859-1 or iso_8859_1)
452
453 7/6
454 ---
455variables.c
456 - fix up the declaration of getenv() for convex machines
457
458 7/7
459 ---
460lib/readline/readline.c
461 - fixed up typos in the declaration of `savestring'
462
463lib/readline/history.c
464 - fixed an off-by-one error in the ADD_CHAR macro which caused one
465 extra character to be overwritten, causing the gnu malloc to abort
466 when that one character was at the end of an allocated block
467 - changed the ADD_STRING macro to avoid some unnecessary xreallocs
468
469lib/readline/display.c
470 - fixed a problem with move_cursor_relative -- function now returns
471 immediately if it has nothing to do
472 - fixed another problem with displaying prompts with invisible chars
473
474lib/readline/chardefs.h
475 - fixed the CTRL macro to be right (agree with the BSD kernel, for
476 example)
477
478cpp-Makefile
479 - fixed typo in the `install' recipe
480
481 7/8
482 ---
483support/srcdir
484 - fixed to handle srcdir when it begins with ./ or ../ to handle
485 $(srcdir) being a relative path better
486
487cpp-Makefile
488 - changed some include paths to $(BUILTIN_ABSSRC) when building in
489 `builtins' to handle $(srcdir) being a relative path
490 - change the `chmod' on bashbug to turn on read and execute for all
491 - added a couple of definitions to make it easier for a later
492 `configure' program
493
494support/mksysdefs
495 - added a -i option to specify an alternate set of directories to
496 search for include files
497
498lib/readline/bind.c
499 - in rl_read_init_file, when skipping whitespace at the start of
500 the line, decrement `i' so that we don't jump past the start
501 of the next line
502
503machines.h
504 - SCOv4 has a `robust' opendir that checks that you're actually
505 opening a directory
506
507 7/11
508 ----
509lib/readline/complete.c
510 - make sure a word break character is unquoted before using it to
511 separate out the current word for completing
512
513machines.h
514 - new machine description: NetBSD on motorola m68k machines like
515 the hp300
516 - undef HAVE_GETWD in the generic svr4 machine description, like
517 other svr4 descriptions
518
519lib/readline/rltty.c
520 - make sure to fflush (rl_outstream) after toggling the setting
521 of the keypad and meta key
522
523portbash/libc.sh
524 - add a test for OPENDIR_NOT_ROBUST
525
526support/getcppsyms.c
527 - output __svr4__ if we find __uxps__ (this makes the Fujitsu port of
528 SVR4 to the sparc build OK)
529
530 7/12
531 ----
532lib/readline/display.c
533 - more display-related fixes when the prompt has invisible chars;
534 this time for screen updates when moving between screen lines
535
536lib/readline/readline.c, lib/readline/display.c
537 - changes to make readline work with terminals that have auto-wrap
538 from Per Bothner (new function _rl_update_final, term_xn changes,
539 some efficiency speedups, new function space_to_eol)
540
541 7/13
542 ----
543lib/readline/display.c
544 - after moving up screen lines using term_up in _rl_move_vert, if
545 the new screen line is 0, _rl_last_c_pos needs to be adjusted
546 to take invisible characters into account. This was the source
547 of many bugs
548
549
550 7/14
551 ----
552documentation/Makefile
553 - change instances of `groff' to `${GROFF}', GROFF is set to
554 `groff' by default
555
556general.c, variables.c
557 - moved `qsort_string_compare' from variables.c to general.c
558
559general.h, variables.h
560 - moved declaration of `qsort_string_compare' from variables.h
561 to general.h
562
563alias.c, lib/readline/funmap.c
564 - moved qsort auxiliary functions after their use and added
565 forward declarations to avoid warnings from ANSI C compilers
566
567memalloc.h
568 - hpux_9 needs alloca declared as `extern void *' if __STDC__
569 is defined
570
571support/mksysdefs
572 - removed HAVE_SHARED_LIBS entirely
573 - make a call to /bin/uname -X for SCO machines to avoid running
574 a different uname from the $PATH
575
576machines.h
577 - new descriptions: Intel i860 running SVR4, Tahoe running 4.3 BSD
578 - changed descriptions: Mips/RiscOS, DG AViiON, unknown machine
579
580jobs.c
581 - changes to how the shell handles foreground jobs dying of SIGINT:
582 an interactive shell using job control will no longer
583 act as if it received a SIGINT if the foreground job
584 dies from a SIGINT
585
586 a non-interactive shell or shell without job control tries
587 to differentiate between SIGINTs it has seen (in
588 wait_sigint_handler) and a foreground job dying of a SIGINT
589 not sent from the keyboard, and runs the normal SIGINT code
590 only in the former case
591
592 7/15
593 ----
594support/mksysdefs
595 - check for ${UNAME}${RELEASE} expanding to `SunOS4*' or `SunOS5*'
596 to set SYSDEF to SunOS4 or SunOS5, respectively. Apparently
597 this does not work for Solbourne
598
599 7/18
600 ----
601
602lib/readline/rltty.c
603 - if output is being flushed on termios systems, loop until the
604 FLUSHO bit is no longer set in the termios struct
605
606support/mksysdefs
607 - added a -A flag to force creation of ansi-Makefile
608
609machines.h
610 - new entry for Tandem machines running SVR3
611
612 7/19
613 ----
614lib/readline/rldefs.h
615 - include <termcap.h> if HAVE_TERMCAP_H is defined
616 - use <termio.h> stuff if HAVE_TERMIO_H is defined and _POSIX_VERSION
617 is not defined
618
619lib/readline/rldefs.h, lib/readline/history.c
620 - include "config.h" if HAVE_CONFIG_H is defined
621
622lib/readline/{rldefs.h,signals.c,readline.c}
623 - WINSIZE_IN_IOCTL_H -> GWINSZ_IN_SYS_IOCTL for compatibility with
624 other GNU programs
625
626lib/readline/doc/Makefile
627 - fixed up to create the readline and history manuals in dvi and
628 ps format
629
630lib/readline/Makefile
631 - changes inspired by the standalone readline-2.0 distribution
632
633 7/20
634 ----
635lib/readline/history.c
636 - new function, history_is_stifled (), returns history_stifled
637 - set history_state flags member in the history state functions
638
639lib/readline/history.h
640 - reorganized the function declarations, added missing declarations
641 - history_stifled is no longer exported by the library
642 - added a `flags' member to the HISTORY_STATE structure
643
644bashline.c
645 - use history_is_stifled () instead of history_stifled
646
647lib/readline/readline.c, lib/readline/vi_mode.c
648 - filled in correct argument declarations for functions called via
649 keymaps (count, key)
650
651lib/readline/complete.c
652 - efficiency improvement for compare_strings
653
654 7/21
655 ----
656examples/dirfuncs
657 - new directory functions from ksh book, contributed by
658 Ken Konecki (kenk@wfg.com)
659
660machines.h
661 - hpux_8 and hpux_9 should both #undef HAVE_ALLOCA unless gcc is
662 being used
663
664 7/22
665 ----
666bashline.c
667 - fixed up command_word_completion_function so that filenames with
668 leading tildes are completed correctly
669
670 7/26
671 ----
672builtins/read.def
673 - if -r not given, make sure CTLESC is removed from input string
674 when reading \<newline>
675
676lib/readline/readline.c
677 - new function bind_arrow_keys, which binds vt100/ansi arrow key
678 escape sequences after reading the termcap definition and the
679 inputrc file
680 - new function rl_yank_last_arg, which does what insert-last-arg
681 does in bash
682
683lib/readline/emacs_keymap.c
684 - remove default bindings to rl_arrow_keys for M-[ and M-O
685 - rl_yank_last_arg is now bound to `M-.' and `M-_' in
686 emacs_meta_keymap
687
688subst.c
689 - when performing process substitution on systems with /dev/fd,
690 make sure the child clears the slot in dev_fd_list it gets
691 from its parent so the file descriptor does not get closed
692 inappropriately if reallocated by, e.g., pipe(2)
693
694bashline.c
695 - removed insert_last_arg and the calls to bind in to `M-.' and `M-_'.
696 `insert-last-argument' is now bound to rl_yank_last_arg for
697 backwards compatibility
698
699lib/readline/funmap.c
700 - `yank-last-arg' is now a named command for rl_yank_last_arg
701
702
703documentation/bash.1, documentation/readline.3
704 - add description of yank-last-arg as one of the readline user
705 commands
706
707lib/readline/doc/rluser.texinfo
708 - added description of yank-last-arg
709
710builtins/getopts.def
711 - fixed a typo in the int-to-string code computing the value to set
712 OPTIND to: had '\0' instead of '0'
713 - made getopts handle the case where there are more than 9 dollar
714 variables (where rest_of_args is non-null) correctly
715
716 7/28
717 ----
718lib/readline/display.c
719 - fixes to the display code for single-line-display in the presence
720 of prompts containing invisible characters
721
722lib/readline/readline.c
723 - if we are using horizontal scrolling and we have term_xn, decrement
724 the screenwidth by 1, since we won't be doing any line wrapping
725
726 7/31
727 ----
728jobs.c
729 - new variable `freeze_jobs_list' to set when changes to the jobs
730 list or status of jobs in the list (other than calling something
731 like `jobs -n') are undesirable. This is set when execuing traps
732 on SIGCHLD
733
734 8/1
735 ---
736subst.c
737 - check that `~' is unquoted before performing tilde expansion in
738 an assignment statement
739
740 8/3
741 ---
742bracecomp.c
743 - keep brace completion from dumping core if there is only one
744 match
745
746lib/readline/chardefs.h
747 - add a define for digit_p, which returns the value of isdigit()
748
749lib/readline/readline.c
750 - added function equivalents for uppercase_p, lowercase_p, to_upper,
751 to_lower, pure_alphabetic, digit_p, and digit_value
752 - replaced calls to numeric () with calls to digit_p, removed
753 definition of numeric ()
754
755lib/readline/history.c
756 - digit -> digit_p
757
758lib/readline/vi_mode.c
759 - replaced uses of the `isletter' define to use pure_alphabetic
760 from chartypes.h
761 - replaced uses of `numeric' with calls to digit_p
762 - added do...while(0) to `exchange' define
763
764
765 8/4
766 ---
767execute_cmd.c
768 - make sure execute_function saves and restores the current loop
769 count with unwind_protect_int
770
771documentation/features.texi
772 - change the `Shell Command Line Options' section to `Invoking
773 Bash' to be closer to the GNU coding standards
774
775 8/5
776 ---
777builtins/read.def
778 - fixed up a memory leak and made behavior correct when no
779 variables given and backslash escaped at least one input char
780 - if we added CTLESC anywhere while reading the input string,
781 make sure we call dequote_string on each word of the input
782 before calling bind_variable with that string
783
ccc6cda3
JA
784 8/6
785 ---
786lib/readline/readline.h
787 - removed definition of rl_show_star -- the variable no longer
788 exists
789
790lib/readline/readline.h, lib/readline/history.h
791 - reorganized to follow texinfo manual structure
792
793lib/readline/bind.c
794 - rl_function_dumper is now static
795 - rl_list_funmap names does not take any arguments
796
797builtins/bind.def
798 - rl_list_funmap names does not take any arguments
799
800lib/readline/readline.c, lib/readline/signals.c
801 - rl_init_argument ->_rl_init_argument
802
803lib/readline/rltty.c
804 - remove declaration and references to output_was_flushed
805
806support/getcppsyms.c
807 - if __uxps__ is defined, define __uxps__ and __svr4__
808
809 8/9
810 ---
811support/mkdist
812 - added a -r option to set the `root name' of the distribution
813 (e.g., `bash' or `readline')
814
815 8/10
816 ----
817input.c
818 - if check_bash_input sees that default_buffered_input is about
819 to be the target of a redirection, but the buffered input stream
820 is not the current input stream (e.g. as the result of an
821 `eval' while in a script, change default_buffered_input to a
822 new fd and use a new variable `bash_input_fd_changed' to note
823 the change
824
825parse.y
826 - if pop_stream sees that default_buffered_input has changed while
827 a buffered stream was on the save stack (because
828 bash_input_fd_changed is non-zero), then make the popped stream
829 and the corresponding buffer use the new fd
830
831test.c
832 - fixed an off-by-one error in test_stat when testing /dev/fd/n.
833
834cpp-Makefile
835 - add -I$(incdir) to CPPFLAGS
836 - add `incdir = $(prefix)/include' assignment
837
838 8/11
839 ----
840lib/readline/signals.c
841 - changed some calls to signal () to call rl_set_sighandler()
842 - call _rl_redisplay_after_sigwinch from the sigwinch handler
843 to do better redisplay of wrapped command lines and multi-line
844 prompts
845
846builtins/suspend.def
847 - changed some calls to signal () to call set_signal_handler()
848
849lib/readline/*.c
850 - include config.h before anything else if HAVE_CONFIG_H is defined
851
852lib/readline/readline.c
853 - renamed rl_set_mark to _rl_set_mark_at_pos
854 - call _rl_vi_initialize_line from rl_initialize if the current
855 editing mode is vi mode
856 - only output a term_cr in crlf if term_cr is non-null
857
858lib/readline/readline.h
859 - added declarations for rl_vi_set_mark and rl_vi_goto_mark
860
861lib/readline/readline.c, lib/readline/readline.h
862 - added a new bindable command to set the mark, rl_set_mark
863
864lib/readline/funmap.c
865 - new bindable function with name `set-mark', bound to rl_set_mark
866 - new bindable vi-mode functions with names `vi-set-mark' and
867 `vi-goto-mark'
868
869documentation/{bash.1,readline.3}, lib/readline/doc/rluser.texinfo
870 - added documentation for `set-mark' (unbound)
871
872lib/readline/vi_mode.c
873 - new vi-command mode commands to save marks (the vi `m' command)
874 and go to saved marks (the ``' command)
875 - new function _rl_vi_initialize_line called from rl_initialize
876 to set up the line state in vi mode. Right now this just resets
877 all the marks
878
879lib/readline/vi_keymap.c
880 - new vi command-mode bindings to set the mark (`m') and to go to
881 a saved mark (``')
882
883documentation/readline.3
884 - added vi-set-mark and vi-goto-mark to list of key bindings for
885 vi command mode
886
887lib/readline/{readline.c,display.c}
888 - renamed term_xn to _rl_term_autowrap
889
890lib/readline/display.c
891 - new function _rl_redisplay_after_sigwinch to encapsulate the
892 necessary redisplay code after a SIGWINCH is received
893
894variables.c
895 - only call find_user_command on the shell name in shell_initialize
896 if shell_name is not an absolute program name
897 - call canonicalize_pathname on the full shell pathname after
898 calling make_absolute on it if the shell name starts with a `.'
899
900siglist.h
901 - FreeBSD does not need a definition of sys_siglist[]
902
903 8/12
904 ----
905lib/readline/rltty.c
906 - don't try to use FLUSHO unless FLUSHO is defined
907
908cpp-Makefile
909 - make sure to pass $(CC) to the make in the lib/malloc subdirectory
910
911lib/readline/readline.c
912 - don't declare PC, UP, and BC as extern; it causes too many problems
913
914 8/13
915 ----
916machines.h
917 - add -DNO_SBRK_DECL to SYSDEP_CFLAGS for SVR4.2 on i386
918
919support/mksysdefs
920 - new variable UNAME_S for the output of `uname -s'
921 - if uname -s does not output the same thing as uname, and uname -s
922 outputs UNIX_SV, then set UNAME to UNIX_SV. Some versions of i386
923 SVR4.2 make `uname' equivalent to `uname -n'
924
925lib/readline/memalloc.h
926 - removed from the library; not needed since readline does not use
927 alloca
928
929lib/readline/{history.c,isearch.c,search.c,rldefs.h}, lib/tilde/tilde.c
930 - no longer include memalloc.h
931
932lib/readline/Makefile
933 - remove dependencies on memalloc.h
934
935lib/readline/signals.c
936 - overhauled signal handling based on ideas from Bruno Haible
937 (haible@ma2s2.mathematik.uni-karlsruhe.de) so that readline
938 saves and restores the signal mask and flags on Posix systems
939 - don't include fcntl.h, sys/file.h, errno.h, or stdlib.h
940 - ignore SIGALRM during rl_signal_handler like SIGINT until the
941 old handler is installed, on non-Posix or non-BSD systems
942 - new define SIGHANDLER_RETURN, dependent on the value of
943 VOID_SIGHANDLER
944 - use RETSIGTYPE instead of `sighandler' as the signal handler
945 return type; it's the name autoconf uses. If not defined,
946 set up from VOID_SIGHANDLER
947
948lib/readline/rltty.c
949 - call control_meta_key and control_keypad from rl_deprep_terminal
950 before putting the terminal back into ICANON mode to avoid
951 messing up the tty driver
952
953 8/15
954 ----
955cpp-Makefile
956 - changes so that fewer -Idir arguments are passed to the make
957 in ./builtins
958
959 8/16
960 ----
961lib/readline/bind.c
962 - use KEYMAP_SIZE instead of 128 in rl_invoking_keyseqs_in_map
963
964lib/readline/complete.c
965 - qsort the array of matches omitting matches[0], which must stay
966 in place no matter what, even if strcmp doesn't compare unsigned
967 chars correctly
968 - some fixes to the loop that prints the list of completions
969
970lib/readline/keymaps.c
971 - run the loop up to 127 when creating a new keymap in rl_make_keymap
972
973input.h, general.h, lib/readline/keymaps.h, lib/readline/tilde.h
974 - use _FUNCTION_DEF instead of __FUNCTION_DEF
975
976lib/readline/parens.c
977 - include "config.h" if HAVE_CONFIG_H is defined
978 - include <sys/select.h> if HAVE_SYS_SELECT_H is defined
979 - use HAVE_SELECT instead of FD_SET as the `configuring define';
980 define HAVE_SELECT if it is not already defined but FD_SET is
981
982lib/readline/readline.c, lib/readline/rltty.c
983 - the __GO32__ include file is <pc.h>
984
985lib/tilde/tilde.c
986 - rewrote tilde_expand_word, eliminated static u_name array in
987 favor of using xmalloc
988
989lib/tilde/tilde.h
990 - use single leading underscore for file inclusion guard
991
992lib/readline/vi_mode.c
993 - use KEYMAP_SIZE rather than a literal 127 as the loop limit when
994 creating the overstrike keymap
995
996support/install.sh
997 - new file, from the make-3.71 distribution
998
999 8/17
1000 ----
1001lib/readline/complete.c, lib/readline/readline.h
1002 - new variable, rl_basic_quote_characters, used to see
1003 if a word break character was a quoting character, so we can
1004 do appropriate quoting after the completion
1005
1006lib/readline/parens.c
1007 - use rl_basic_quote_characters when trying to find a matching
1008 open paren
1009
1010lib/readline/doc/rltech.texinfo
1011 - description of rl_basic_quote_characters
1012
1013 8/18
1014 ----
1015newversion.c
1016 - renamed to support/mkversion.c, which builds to mkversion
1017
1018cpp-Makefile
1019 - changed to use support/mkversion
1020 - removed instances of $< except in suffix rules -- some makes don't
1021 handle those right
1022
1023lib/readline/rldefs.h
1024 - make sure to #undef HAVE_DIRENT_H on NeXT machines
1025
1026
1027 8/19
1028 ----
1029lib/readline/readline.h
1030 - removed some duplicate function declarations
1031
1032trap.h
1033 - define DEBUG_TRAP as NSIG for the last slot in trap_list
1034 - define EXIT_TRAP as 0
1035 - declare trap_list as array of unknown size, since this is just a
1036 header file
1037
1038trap.c
1039 - extend trap_list and sigmodes to NSIG+1
1040 - initialize DEBUG_TRAP to do nothing; changes to functions to handle
1041 DEBUG_TRAP
1042 - let decode_signal return OK if NSIG is given, even though this will
1043 vary between systems, for DEBUG_TRAP
1044 - make reset_signal_handlers and restore_original_signals loop from
1045 1 to NSIG, not 0 to NSIG
1046 - change GET_ORIGINAL_SIGNAL to try to get the original signal handler
1047 only if `sig' is less than NSIG
1048 - restore_default_signal just frees the trap string for both EXIT_TRAP
1049 and DEBUG_TRAP
1050 - run_debug_trap: new function to run traps on DEBUG
1051 - free_trap_command: new function to free a trap string if it is
1052 really a command and not one of the special trap values
1053 - if a SIGINT trap resets the SIGINT trap string, free the old string
1054 - new function: set_debug_trap(char *), which will reset the DEBUG
1055 trap string, suitable for calling from an unwind-protect handler
1056
1057signames.c
1058 - arrange things so that signal_names[NSIG] == "DEBUG"
1059
1060builtins/trap.def
1061 - make sure traps on DEBUG are printed
1062
1063execute_cmd.c
1064 - call run_debug_trap at the end of the `cm_simple' case in
1065 execute_command_internal
1066 - change execute_function so that traps on DEBUG do not propagate
1067 into the function
1068
1069documentation/bash.1, documentation/features.texi
1070 - documented the new DEBUG trap
1071
1072 8/20
1073 ----
1074shell.c, config.h
1075 - made the name of the restricted shell configurable in config.h;
1076 the option is RESTRICTED_SHELL_NAME
1077
1078shell.c
1079 - if the shell is invoked as `sh', enter Posix.2 mode after running
1080 /etc/profile and ~/.profile
1081
1082builtins/read.def
1083 - added a -p option for a prompt string, which is displayed before
1084 trying to read anything
1085
1086documentation/bash.1
1087 - description of `read -p'
1088 - description of new -r and -s options to `jobs'
1089
1090documentation/features.texi
1091 - description of new -r and -s options to `jobs'
1092
1093jobs.c
1094 - new functions: list_running_jobs, list_stopped_jobs
1095 - list_jobs -> list_all_jobs
1096 - new function `print_job' to do the work for all of the list*jobs
1097 functions
1098 - list_one_job type now void, calls print_job to do the work
1099
1100jobs.h
1101 - new declarations for list_running_jobs, list_stopped_jobs
1102 - list_one_job now void
1103 - list_jobs -> list_all_jobs
1104
1105builtins/jobs.def
1106 - new options: -r to print only running jobs, -s to print only
1107 stopped jobs
1108
1109 8/22
1110 ----
1111lib/readline/readline.c
1112 - don't try to expand a null prompt string
1113
1114subst.c
1115 - remove special handling of hostname_completion_file and
1116 history_control; HOSTFILE and HISTCONTROL are the acceptable
1117 names
1118 - new function sv_histignore; call if HISTIGNORE variable is
1119 assigned to
1120
1121bashhist.c
1122 - new functions and declarations for handling HISTIGNORE variable
1123 and its specifications for command lines to ignore
1124 - change maybe_add_history to call history_should_ignore if the
1125 HISTCONTROL tests are passed
1126
1127documentation/bash.1, documentation/features.texi
1128 - removed mention of history_control and hostname_completion_file
1129 - added description of HISTIGNORE
1130
1131 8/23
1132 ----
1133array.c, array.h
1134 - promoted to the shell mainline code; the `array' subdir is now
1135 gone
1136
1137variables.h
1138 - include `array.h' for the ARRAY typedef
1139
1140variables.c
1141 - changes to assignment() to handle array assignments a[x]=b
1142 - split off the creation of new variables into a new function:
1143 make_new_variable
1144 - split off the construction of variable values for assignments and
1145 bindings into a new function: make_variable_value
1146 - new function: bind_array_variable, to handle the addition of
1147 new array variables and indices
1148
1149subst.c
1150 - changes to do_assignment_internal to handle a[x]=b:
1151 parse the subscript out of the name and call evalexp() on it
1152 call bind_array_variable to do the value assignment
1153 - change the printing of assignment statements when -x is in effect
1154 to before the variable binding is attempted, so any error messages
1155 look better
1156 - new functions for referencing indexed arrays and to find the length
1157 of arrays or array indices
1158
1159 8/24
1160 ----
1161expr.c
1162 - fixed up error reporting to use get_name_for_error if not executing
1163 a builtin
1164
1165subst.c
1166 - everywhere evalexp() is called, use maybe_expand_string to expand
1167 the expression (calls expand_string if necessary)
1168
1169subst.h
1170 - extern declarations for array convenience functions exported to the
1171 rest of the shell
1172
1173variables.c
1174 - more new convenience array functions: make_new_array_variable and
1175 convert_var_to_array
1176
1177builtins/declare.def
1178 - additions to declare_internal to add a -a flag which makes array
1179 variables, and the requisite semantics (declare +a does not work,
1180 declare -a name=value does not work, etc.)
1181 - code to support the ksh-like declare a[] syntax to make array
1182 variables
1183
1184builtins/setattr.def
1185 - made set_or_show_attributes understand array variables and `-a'
1186
1187builtins/set.def
1188 - changes to make `unset name' work, where name is an array variable
1189 - changes to make `unset name[xxx]' work
1190
1191 8/25
1192 ----
1193
1194lib/readline/readline.c
1195 - make sure meta characters are added to a keyboard macro as
1196 ESC-char if we are converting meta chars to ascii
1197 - change rl_unix_word_rubout to handle repeat counts
1198 - move the check of LC_CTYPE from rl_initialize to
1199 readline_initialize_everything, where it should have been
1200 all along
1201
1202error.c
1203 - make sure <sys/types.h> is included before <fcntl.h>
1204
1205machines.h
1206 - new entry for Bull DPX2
1207
1208lib/tilde/tilde.c
1209 - include <sys/types.h> before <pwd.h>
1210
1211variables.c
1212 - PS1 and PS2 are no longer non-unsettable
1213
1214 8/26
1215 ----
1216variables.c
1217 - PPID, UID, and EUID, since they are read-only, need not appear on
1218 the `non-unsettable' list
1219 - PATH and IFS now have the `nounset' attribute set rather than use
1220 a separate `non-unsettable' list
1221 - the non-unsettable list and non_unsettable() are gone
1222
1223variables.h
1224 - new define `non_unsettable_p' to test nounset attribute
1225
1226builtins/set.def
1227 - `unset' now uses non_unsettable_p to tell whether a variable can
1228 be unset even if it's not readonly
1229
1230builtins/read.def
1231 - read -a arrayname will read a list of values from stdin and assign
1232 them to the array `arrayname', splitting on " \t\n" (honoring
1233 backslash quoting if -r is not supplied)
1234
1235builtins/declare.def
1236 - print values of arrays when `display -a' is invoked
1237
1238builtins/exit.def
1239 - remove references to `bye'
1240
1241 8/28
1242 ----
1243lib/readline/rltty.c
1244 - removed calls to control_keypad; they cause problems on some
1245 machines and should not really be performed by an application
1246
1247cpp-Makefile
1248 - support for optionally linking array.o into the shell
1249
1250lib/glob/glob.c
1251 - when returning an error after glob_filename on the directory name
1252 returns an error result, make sure to free `result'. This fixes
1253 a memory leak for names passed to glob_filename which contain
1254 globbing characters before the first `/' but do not match any
1255 existing files
1256
1257 8/29
1258 ----
1259execute_cmd.c
1260 - the `for' and `select' commands should expand their word lists
1261 using expand_words_no_vars
1262
1263command.h, execute_cmd.c, general.c, make_cmd.c, print_cmd.c, subst.c,parse.y
1264 - changed the `dollar_present', `quoted', and `assignment' members
1265 of WORD_DESC to a single flags word
1266
1267 8/30
1268 ----
1269variables.c
1270 - make get_string_value return array[0] if called with a variable
1271 that is an array
1272
1273 8/31
1274 ----
1275lib/readline/display.c
1276 - don't take the value of _rl_term_autowrap into account when
1277 computing which screen line the cursor should be on; it screws
1278 up wrapping on terminals without the `xn' capability
1279
1280lib/readline/examples/rltest.c
1281 - new file, test code moved here from readline.c
1282
1283documentation/features.texi, lib/readline/doc/hsuser.texinfo
1284 - fixed up printing of some of the shell options and the history
1285 commands and modifiers
1286
1287subst.c
1288 - make sure $name, where `name' is an array variable, returns
1289 ${name[0]}
1290
1291variables.c
1292 - convert a variable to an array even if index 0 is being assigned to,
1293 instead of leaving it a `normal' variable
1294
1295 9/1
1296 ---
1297
1298builtins/setattr.def
1299 - make sure that array variables printed by `declare' single-quote
1300 the value after the `=' so the statement can be reused as input
1301
1302variables.c
1303 - make sure array variables can be exported (name=(assignments)), and
1304 that the export code works. The code is commented out because of
1305 the possible confusion between an array and a regular string that
1306 looks like an array assignment string.
1307
1308 9/2
1309 ---
1310variables.c
1311 - make sure there is an executable file with the same name as
1312 `shell' name in the current directory before assigning it to
1313 $BASH at startup. If there is not, just make $BASH the login
1314 shell name
1315
1316 9/3
1317 ---
1318parse.y
1319 - removed a reduction from the `list0' production that could cause
1320 statements which require semicolons to be allowed without error
1321 (like before a `}' in a group command)
1322
1323lib/readline/display.c
1324 - new functions: _rl_save_prompt and _rl_restore_prompt to save and
1325 restore prompt invisible character info
1326 - if the redisplay code encounters a line shorter than the old one
1327 and containing invisible characters, make sure that the cursor is
1328 at the end of the new text before calling clear_to_eol
1329 - new variable last_invisible containing the index in the prompt
1330 string of the last invisible character. We only have to redraw
1331 the prompt string of _rl_last_c_pos is < last_invisible
1332 - new function _rl_make_prompt_for_search to take care of setting
1333 up the prompt string for a non-incremental search when the prompt
1334 contains invisible characters
1335 - fix so that a prompt string with invisible characters is not
1336 redrawn each time through update_line (don't tputs term_cr unless
1337 the cursor is before the last invisible character in the prompt
1338 and will be moving past the last invisible char of the prompt
1339
1340lib/readline/isearch.c
1341 - call _rl_save_prompt and _rl_restore_prompt when changing the prompt
1342 to do i-search
1343
1344 9/4
1345 ---
1346lib/readline/readline.c
1347 - doing_an_undo -> _rl_doing_an_undo for use by the vi-mode code
1348 - rewrote rl_do_undo to reformat and eliminate a clumsy goto
1349 - new split the add-to-kill-ring code off into a separate function,
1350 _rl_copy_to_kill_ring
1351 - added a new bindable function rl_copy_region_as_kill
1352 - added a new bindable function rl_kill_region
1353 - moved _rl_char_search_internal to here from vi_mode.c
1354 - new bindable function rl_char_search
1355
1356lib/readline/vi_mode.c
1357 - made `.' work for the `cw' and `[Ss]' commands, which implicitly
1358 put the editor into insertion mode after they run
1359 - split rl_vi_char_search code that actually searches for a character
1360 into a new function, _rl_char_search_internal
1361
1362lib/readline/emacs_keymap.c
1363 - bind M-= to possible-completions for ksh compatibility
1364 - bind M-* to insert-completions
1365 - bind C-x C-x to exchange-point-and-mark
1366 - bind C-] to character-search
1367 - bind C-@ to set-mark
1368
1369lib/readline/funmap.c
1370 - new bindable function names: exchange-point-and-mark, kill-region,
1371 copy-region-as-kill, character-search
1372
1373lib/readline/readline.h
1374 - declare rl_exchange_point_and_mark, rl_copy_region_to_kill,
1375 rl_kill_region, and rl_char_search externally
1376
1377documentation/{bash.1,readline.3}, lib/readline/doc/rluser.texinfo
1378 - document new exchange-point-and-mark bindable command
1379 - documented M-* default emacs-mode binding to insert-completions
1380 - documented new copy-region-as-kill and kill-region commands
1381 - documented new character search emacs-mode command
1382 - documented new binding for set-mark
1383
1384lib/readline/rldefs.h
1385 - moved values for `dir' when searching for characters in the line
1386 from vi_mode.c to here
1387
1388 9/6
1389 ---
1390general.c
1391 - new function ansicstr, which decodes ANSI-C backslash-escaped
1392 characters (with the addition of \e and \E to mean escape) and
1393 returns a new string
1394
1395subst.c
1396 - new expansion $'...' which translates ANSI-C backslash escapes
1397 in `...' and expands to the result
1398
1399builtins/echo.def
1400 - ifdefs for ANSI-C for \a and \v rather than just expanding to
1401 literal ASCII values
1402
1403documentation/bash.1
1404 - documented new $'...' expansion
1405
1406 9/7
1407 ---
1408builtins/enable.def
1409 - fixed up the help text
1410 - added a -s flag to restrict operation to Posix.2 `special' builtins
1411 - removed -all option; -a is the way to do it now
1412 - converted to use the builtin getopt
1413
1414builtins/common.c
1415 - changed builtin_address_internal to return a pointer to a
1416 struct builtin, which makes it much more useful. Changed
1417 find_shell_builtin and builtin_address accordingly
1418 - new function find_special_builtin, which returns special builtins
1419 ((flags & SPECIAL_BUILTIN) != 0)
1420
1421execute_cmd.c
1422 - in Posix.2 mode, find special builtins before shell functions
1423 when performing command lookup
1424 - in find_user_command_internal, return NULL if there is no $PATH
1425 - in Posix.2 mode, failure of a special builtin causes a non-
1426 interactive shell to exit
1427
1428variables.c
1429 - allow $PATH to be unset
1430
1431 9/8
1432 ---
1433input.h
1434 - added a new `input type': st_stdin, for use when using readline,
1435 since readline is not properly a string
1436
1437parse.y
1438 - surgery on the grammar:
1439 o added new `compound_list' production: a list that can end
1440 without a newline, `;' or `&' (used in subshell commands
1441 and case clause commands)
1442 o removed shell_command_1, folded rules into command
1443 o eliminated pattern_list_1; changed case_clause_sequence to
1444 directly incorporate the SEMI_SEMI token (a pattern_list_1
1445 was just a pattern_list with a trailing SEMI_SEMI)
1446 o new `for_command' and `case_command' productions
1447 o redirections -> redirection_list
1448 o newlines -> newline_list
1449 o redid the code that attaches redirections to the function
1450 command rather than the function definition and eliminated
1451 all of the shift/reduce conflicts
1452 - changed with_input_from_stdin in the readline case to set
1453 bash_input.type to st_stdin
1454
1455print_cmd.c
1456 - a couple of changes to the way functions are printed
1457
1458shell.c
1459 - only execute the PROMPT_COMMAND if input is not coming from a
1460 string (bash_input.type != st_string). This fixes the problem
1461 of PROMPT_COMMAND being executed by `eval' commands in an
1462 interactive shell
1463
1464 9/12
1465 ----
1466shell.c
1467 - all interactive shells SIGHUP running jobs when exiting due to
1468 a SIGHUP, not just login shells
1469
1470 9/13
1471 ----
1472config.h, config.h.mini
1473 - changed the default primary prompt (PPROMPT) to "\s\$ "
1474 - removed the INTERACTIVE_COMMENTS define
1475
1476flags.c
1477 - interactive comments are now enabled by default, regardless of the
1478 INTERACTIVE_COMMENTS define
1479
1480input.h
1481 - a new enum: stream_type, used in the BASH_INPUT struct
1482
1483parse.y
1484 - bash_input.type is now initialized to st_none
1485
1486bashhist.c
1487 - command_oriented_history is now the default
1488
1489documentation/bash.1
1490 - removed description of `nolinks' variable, updated set -P
1491 description
1492 - removed description of `notify' variable, updated set -b
1493 description
1494 - removed description of `noclobber' variable, updated set -C
1495 description
1496
1497variables.c
1498 - IFS may now be unset
1499
1500builtins/read.def
1501 - now does the right thing if IFS is unset (acts as if it is
1502 set to " \t\n")
1503
1504builtins/cd.def
1505 - added a new parameter to change_to_directory () which says
1506 whether or not to follow symlinks, instead of using the
1507 global no_symbolic_links
1508 - changed cd_builtin to accept a -P option to disable symlink
1509 following temporarily
1510
1511builtins/ulimit.def
1512 - instead of using a hardcoded `long' for the return type of the
1513 rlimit functions, use RLIMTYPE, which defaults to long
1514 - new defines string_to_rlimtype -> string_to_long and
1515 print_rlimtype for systems which do not need `RLIMTYPE' defined
1516 to something other than long
1517
1518general.c
1519 - function replacements for string_to_rlimtype and print_rlimtype
1520 for machines which have RLIMTYPE defined in the machine description
1521
1522general.h
1523 - extern declarations for string_to_rlimtype and print_rlimtype
1524
1525shell.c
1526 - don't source file named by $ENV at script startup if act_like_sh
1527 is turned on
1528
1529machines.h
1530 - new entry for amiga/netbsd
1531 - change all the netbsd entries to add -DRLIMTYPE=quad_t to
1532 SYSDEP_CFLAGS
1533
1534siglist.h
1535 - define sys_siglist as _sys_siglist on the amiga only if USGr4 is
1536 defined
1537
1538print_cmd.c
1539 - change so that printf is not prototyped on LynxOS with gcc
1540
1541lib/readline/Makefile
1542 - changed the `installdirs' target to not fail if the directories
1543 do not need creating
1544
1545lib/readline/history.c
1546 - fixed a bug in history_arg_extract which manifested itself when
1547 !* was used after a command without arguments (e.g., pwd ; echo !*)
1548
1549 9/15
1550 ----
1551subst.c
1552 - expand_word_internal should preserve the flags (other than
1553 W_QUOTED) from the word passed as a parameter on the word it returns
1554 - expand_words_internal renamed to expand_word_list_internal
1555 - expand_word_list_internal does not perform word splitting or
1556 globbing on words with the W_ASSIGNMENT bit set
1557 - removed special treatment of `notify', `command_oriented_history',
1558 `history_control', and `nolinks'
1559 - rewrote some of the sv_* functions to remove or avoid calls to
1560 sscanf, one of the most expensive C library functions
1561
1562variables.c
1563 - don't look for $command_oriented_history at startup, since it now
1564 defaults to `on'
1565
1566general.h, general.c
1567 - new function posix_initialize to do whatever is necessary to enable
1568 `Posix mode'
1569
1570shell.c, subst.c
1571 - call posix_initialize
1572
1573general.c
1574 - rewrote replacements for strchr, strrchr to make them faster
1575
1576builtins/enable.def
1577 - new -f option and necessary support to load builtins from a shared
1578 object file on systems supporting both dlopen() and dlsym(). New
1579 builtins loaded this way can replace existing shell builtins or
1580 add completely new functionality
1581
1582builtins.h
1583 - mkbuiltins.c creates `static_shell_builtins', which is a fixed
1584 array, `shell_builtins' points to this array initially
1585 - extern declaration for current_builtin
1586
1587builtins/mkbuiltins.c
1588 - change to creat static_shell_builtins[] and declare shell_builtins
1589 as a pointer to it
1590 - change to declare `current_builtin' in created builtins.c
1591
1592builtins/source.def
1593 - print an error message and return failure if no filename argument
1594 is supplied
1595
1596builtins/common.c
1597 - current_builtin is set by find_shell_builtin, find_special_builtin,
1598 and builtin_address_internal
1599 - new function builtin_usage, which prints the contents of
1600 current_builtin->short_doc
1601
1602builtins/{bind,declare,enable,fc,getopts,hash,history,jobs,kill,read,set,
1603 setattr,trap,ulimit,umask}.def
1604 - changed the builtins in these files to use builtin_usage() to
1605 print usage messages
1606
1607cpp-Makefile
1608 - support for the HAVE_DLOPEN and HAVE_DLSYM defines
1609
1610machines.h
1611 - added -ldl and -Bdynamic to the SunOS4 entry
1612
1613documentation/{bash.1,features.texi}
1614 - documented new enable -f option to dynamically load builtins
1615
1616 9/16
1617 ----
1618test.c
1619 - added `==' as a synonym for `='
1620
1621 9/18
1622 ----
1623bashline.c
1624 - include readline/rlconf.h so that VI_MODE is defined if
1625 appropriate
1626
1627shell.c
1628 - removed `-nobraceexpansion' option
1629
1630flags.c, flags.h
1631 - added new -B flag; enabled if brace expansion is turned on
1632
1633subst.c
1634 - use brace_expand instead of !no_brace_expand
1635
1636builtins/set.def
1637 - change set -o braceexpand to be equivalent to set -B
1638
1639parse.y
1640 - in with_input_from_stdin, do nothing if bash_input.type already
1641 is st_stdin or if there is already a stream with type st_stdin
1642 on the saved stream stack
1643 - new function stream_on_stack to find out if there is a saved
1644 stream of a specified type
1645
1646documentation/bash.1, documentation/features.texi
1647 - doeumented new set -B option
1648 - removed -nobraceexpansion shell startup option
1649
1650 9/19
1651 ----
1652builtins/reserved.def
1653 - made `help select' work
1654
1655cpp-Makefile
1656 - removed references to the nonexistant `load.def'
1657 - removed conditionals based on GETOPTS_BUILTIN
1658
1659builtins/getopts.def
1660 - no longer $DEPENDS_ON GETOPTS_BUILTIN
1661
1662config.h, config.h.mini, builtins/help.def
1663 - made the `help' builtin dependent on the HELP_BUILTIN define
1664 - removed GETOPTS_BUILTIN
1665
1666builtins/mkbuiltins.c
1667 - made the `$DEPENDS_ON' clause work for reserved words and
1668 shell control structures in reserved.def by writing out
1669 dependencies to builtext.h even if there is no `function'
1670 - made the long_doc for each builtin and reserved word get
1671 written out to builtins.c with #ifdef HELP_BUILTIN surrounding
1672 the doc strings -- this makes the minimal shell much smaller
1673
1674shell.c, documentation/bash.1
1675 - removed `-quiet' long option
1676
1677parse.y
1678 - make sure that word splitting is not performed on the prompt
1679 string after expanding in prompt_string_decode by calling
1680 expand_string_unsplit instead of expand_string
1681
1682lib/readline/bind.c
1683 - new readline variable `mark-directories': if set, completed
1684 directory names have a slash appended
1685
1686lib/readline/complete.c
1687 - support for `mark-directories'
1688
1689documentation/{bash.1,readline.3}, lib/readline/doc/rluser.texinfo
1690 - documented the new `mark-directories' variable
1691
1692builtins/bind.def
1693 - new option `-r' to remove a binding for a specified key sequence
1694 - make sure that a failure return from bind resets the keymap
1695 correctly if a -m option was supplied
1696
1697documentation/{bash.1,features.texi}
1698 - documented new bind -r option
1699
1700 9/20
1701 ----
1702builtins/jobs.def
1703 - new `disown' builtin
1704
1705documentation/{bash.1,features.texi}
1706 - documented new `disown' builtin
1707
1708cpp-Makefile
1709 - removed support for `MAKE_SHELL' cpp variable
1710 - renamed endian.aux to mkendian, look for endian.c in support dir
1711 - link in array.o, alias.o, braces.o, bracecomp.o
1712 unconditionally, rely on cpp defines in the files to exclude code
1713 - pass -DHAVE_SYS_SIGLIST if sys_siglist is defined
1714 - pass -DHAVE_GETCWD if HAVE_GETCWD is defined in machines.h
1715 - pass -DHAVE_VFPRINTF_EMUALTION through from machines.h to
1716 compilation
1717
1718array.c
1719 - don't compile in body of file unless ARRAY_VARS is defined
1720
1721braces.c
1722 - don't compile in body of file unless BRACE_EXPANSION is defined
1723
1724alias.c
1725 - don't compile in body of file unless ALIAS is defined
1726
1727bracecomp.c
1728 - don't compile in body of file unless BRACE_EXPANSION and READLINE
1729 are defined
1730
1731bashline.c
1732 - don't compile in body of file unless READLINE is defined
1733
1734bashhist.c
1735 - don't compile in body of file unless HISTORY is defined
1736
1737siglist.c
1738 - don't compile in body of file unless HAVE_SYS_SIGLIST is not
1739 defined
1740
1741getcwd.c
1742 - don't compile in body of file unless HAVE_GETCWD is not defined
1743
1744vprint.c
1745 - don't compile in body of file unless USE_VFPRINTF_EMULATION
1746 is defined
1747
1748support/mksysdefs
1749 - for SCO machines, define SYSDEF as SCO or SCOv4
1750
1751lib/readline/readline.[ch]
1752 - new function rl_push_macro_input (s), which makes s the current
1753 macro input string
1754
1755endian.c
1756 - renamed to support/endian.c
1757
1758 9/21
1759 ----
1760lib/readline/complete.c
1761 - more file types for the VISIBLE_STATS code:
1762 | FIFOs
1763 % character special devices
1764 # block special devices
1765
1766lib/readline/isearch.c
1767 - made RETURN an alternate search string terminator
1768
1769builtins/read.def
1770 - removed use of stdio -- unbuffered stdio on a dup of fd 0 is
1771 a big loss
1772
1773builtins/set.def
1774 - new function: minus_o_option_value, returns 1, 0, or -1 given
1775 a -o option name (-1 means a bad name)
1776 - reorganized list_minus_o_options to be more efficient
1777
1778execute_cmd.c
1779 - when expanding a here document, use maybe_expand_string rather
1780 than a simple expand_string to try a speed things up a bit
1781
1782input.c
1783 - don't compile in the body of the file unless BUFFERED_INPUT
1784 is defined in config.h
1785
1786 9/22
1787 ----
1788jobs.h, siglist.h
1789 - replaced instances of Solaris with SunOS5
1790
1791shell.c
1792 - changed long option parsing code so that --arg is equivalent
1793 to -arg, when `arg' is one of the recognized multichar options
1794
1795builtins/history.def
1796 - rewrote to regularize the option parsing and use internal_getopt
1797 - now allows only one of -awrn to be specified
1798 - added a new -p option that adds each of its arguments to the
1799 end of the history list, and deletes the `history -p' history
1800 entry
1801
1802builtins/trap.def
1803 - added new -p option to display specified trap values, or all
1804 trap values if no other arguments supplied
1805
1806documentation/{bash.1,features.texi}
1807 - documented new history -p option
1808 - documented new trap -p option
1809
1810 9/25
1811 ----
1812lib/readline/display.c
1813 - fixed up the calcluation of the correct cursor line number (a `+'
1814 and `-' were transposed in the calculation of `nleft')
1815
1816 9/26
1817 ----
1818general.c
1819 - moved isint() here from test.c, renamed to legal_number
1820
1821general.h
1822 - extern declaration of legal_number
1823
1824test.c
1825 - only compile isint() if SHELL is not defined, define it as
1826 legal_number otherwise
1827
1828trap.c
1829 - use legal_number in decode_signal instead of sscanf()
1830
1831builtins/common.c
1832 - moved list_sigs to here from trap.def, renamed to
1833 display_signal_list
1834 - changed get_numeric_arg to use legal_number instead of doing
1835 the parsing and calculation itself
1836
1837builtins/common.h
1838 - extern declaration for display_signal_list
1839
1840builtins/{trap.def
1841 - changed to use display_signal_list for trap -l
1842
1843builtins/kill.def
1844 - changed to use display_signal_list for kill -l
1845 - added new kill -n signum option
1846
1847documentation/bash.1
1848 - added description of new kill -l signame functionality
1849 - added description of new kill -n signum feature
1850 - added description of new enable -d option
1851
1852builtins.h
1853 - added a char *handle member to `struct builtin' for later use
1854 - new flags value: BUILTIN_DELETED
1855
1856builtins/mkbuiltins.c
1857 - added code to inintialize the `handle' member to null in the
1858 static builtin array definition
1859
1860builtins/common.c
1861 - don't `find' a builtin if the BUILTIN_DELETED flag is set in the
1862 flags word of the struct builtins array
1863
1864builtins/enable.def
1865 - new option -d to remove a builtin loaded with -f, depends on
1866 HAVE_DLCLOSE
1867
1868cpp-Makefile
1869 - pass -DHAVE_DLCLOSE through from machines.h to compilation
1870
1871machines.h
1872 - change SunOS4 machine description to define HAVE_DLCLOSE
1873
1874 9/27
1875 ----
1876shell.c
1877 - split shell exit code off into a separate function: exit_shell(status)
1878
1879builtins/exec.def
1880 - rewrote for clarity and speed and to use the builtin getopt()
1881 - added new -a, -c, and -l options
1882 - now calls exit_shell if shell_execve fails and the shell is not
1883 interactive
1884
1885documentation/bash.1
1886 - documented the new options to `exec'
1887
1888 9/28
1889 ----
1890builtins/exec.def
1891 - if the execve fails and the shell is not going to exit, reinitialize
1892 traps and signals
1893 - only call end_job_control if subshell_environment != 0
1894 - exec should exit unconditionally if the execve fails and
1895 subshell_environment != 0
1896
1897subst.c
1898 - if valid_brace_expansion_word fails, make sure `temp' is set to
1899 NULL before trying to free it after the `goto bad_substitution'
1900
1901cpp-Makefile
1902 - add $(CPPFLAGS) to the compilation flags when making `mksignames'
1903
1904documentation/features.texi
1905 - fixed a typo in the tilde expansion section
1906
1907 9/29
1908 ----
1909machines.h
1910 - DEC OSF/1 has the dlopen/dlsym/dlclose set of library functions
1911
1912shell.c
1913 - don't execute /etc/profile if -noprofile given
1914
1915builtins/pushd.def
1916 - new file, pushd/popd/dirs split off from cd.def
1917 - replaced calls to sscanf with calls to legal_number
1918
1919builtins/Makefile, cpp-Makefile
1920 - changes for pushd.def
1921
1922config.h, config.h.mini
1923 - ALLOW_RIGID_POSIX_COMPLIANCE is no longer used
1924
1925subst.c, variables.c
1926 - GETOPTS_BUILTIN is no longer used
1927
1928variables.c
1929 - if the first character of argv[0] is not a `/', search the path
1930 and canonicalize the result to find out how to set $BASH
1931
1932 10/2
1933 ----
1934builtins/enable.def
1935 - changed enable_shell_builtin to use builtin_address_internal to find
1936 the builtin rather than searching the list itself
1937 - list_some_builtins skips a builtin if flags & BUILTIN_DISABLED != 0
1938 - rewrote dyn_load_builtin to take a list of names to load from a
1939 single filename
1940 - don't dlclose the shared object in dyn_unload_builtin unless its
1941 reference count drops to 0
1942
1943builtins/test.def
1944 - don't bother making new copies of everything in the argument list
1945 when constructing the argc and argv for test_command; just make
1946 sure not to free anything but ARGV
1947
1948 10/3
1949 ----
1950bashline.c
1951 - remove C-e binding in vi movement mode which switches into emacs
1952 mode
1953
1954general.c
1955 - make xfree only try to call free on non-null strings
1956
1957 10/4
1958 ----
1959builtins/read.def
1960 - new `-e' option that uses readline to read the line
1961 - if one of the arguments is not a legal variable name, print an
1962 error message and return failure
1963
1964builtins/reserved.def
1965 - changed the `Variables' to `variables' so `help variables' works
1966
1967subst.c
1968 - set startup_state to 2 in child of command substitution to try to
1969 avoid some unneeded forks
1970
1971trap.c
1972 - removed call to reset_terminating_signals in restore_original
1973 signals; callers are now required to take care of that themselves,
1974 if necessary
1975
1976execute_cmd.c, subst.c
1977 - added necessary calls to reset_terminating_signals before calls
1978 to restore_original_signals
1979
1980execute_cmd.c
1981 - when executing a null command in a subshell, don't bother passing
1982 a string to make_child; just pass NULL
1983 - in execute_builtin_or_function, don't add so many unwind-protects
1984 if `subshell' == 1
1985 - in command_substitute, call cleanup_the_pipeline to discard the
1986 old pipeline, so pipeline_pgrp does not get set to 0 in
1987 start_pipeline, which is called by make_child via making_children
1988
1989jobs.c, nojobs.c
1990 - new function, ignore_tty_job_signals, to set SIGTTIN, SIGTTOU, and
1991 SIGTSTP to SIG_IGN
1992 - new function, default_tty_job_signals, to set those signals
1993 to SIG_DFL
1994 - new function, cleanup_the_pipeline to free up the_pipeline and
1995 set it to NULL
1996
1997 10/5
1998 ----
1999builtins/history.def
2000 - the history -p option is now -s (to sort of parallel the ksh
2001 print -s option)
2002 - the -s option now combines all of its arguments into a single
2003 string and appends the string to the history list
2004 - new history -p option to history expand each argument and print
2005 the result without modifying the history list
2006
2007documentation/bash.1, documentation/features.texi
2008 - documented the new -e option to read
2009 - documented the new history -s and -p options
2010 - documented the new cd and pwd -L options
2011
2012builtins/cd.def
2013 - changed cd and pwd to use internal_getopt
2014 - added the -L option to cd and pwd to follow symlinks (like if
2015 set +P were issued)
2016
2017builtins/pushd.def
2018 - added text for dirs +N and dirs -N to the dirs builtin long doc
2019 - added -v option to dirs to print dirstack one dir per line with
2020 stack index prepended
2021
2022 10/6
2023 ----
2024execute_cmd.c
2025 - split the command searching code into a new function:
2026 search_for_command
2027 - removed a bunch of dead code from shell_execve
2028 - removed call to reset_terminating_signals when executing a function
2029 or builtin in a subshell (either via (xxx) or xxx &)
2030 - don't add unwind protects at all in execute_function if subshell == 1
2031
2032lib/readline/chardefs.h
2033 - new macro ALPHABETIC(c), returns 1 if c is a letter or digit
2034
2035lib/readline/readline.c
2036 - don't call abort() in rl_change_case(); it's impolite in a
2037 library function
2038 - new macro, SWAP, used to swap values of two integers
2039 - changed alphabetic to use ALPHABETIC, made it slightly faster
2040 - modified rl_change_case() so that word capitalization is the
2041 same as GNU Emacs
2042
2043lib/readline/search.c
2044 - in noninc_dosearch, don't reset the history positition to what
2045 it was if we're currently in vi editing mode (as per Posix.2
2046 `/' and `?' vi-mode editing commands)
2047
2048 10/7
2049 ----
2050builtins/common.c
2051 - changed single_quote and double_quote to use char pointers
2052 rather than string indexing
2053 - new function backslash_quote(string), which quotes special
2054 characters in STRING using backslashes
2055
2056 10/8
2057 ----
2058alias.h
2059 - added an extern declaration for alias_expand_word
2060
2061parse.y
2062 - broke the alias expansion code off into a function
2063 alias_expand_token; its return value says whether to re-read
2064 a token or go on
2065 - changed the alias expansion code to handle aliases that expand
2066 to nothing better
2067 - broke the code that does special-case token recognition off into
2068 a function: special_case_tokens
2069 - used the new functions to make sure that the special-case tokens
2070 can be the expansion of an alias
2071 - made sure that if in `posix mode' that reserved words cannot be
2072 aliased and that all reserved words can be the values of aliases
2073 and be recognized after expansion
2074
2075 10/10
2076 -----
2077lib/readline/complete.c
2078 - replaced #ifdef SHELL code with two new exported readline interfaces:
2079 rl_filename_quoting_function and rl_filename_dequoting_function.
2080 Both return a pointer to char.
2081 - new extern variable rl_filename_quote_characters, containing a list
2082 of characters that cause a word to be quoted by the completer if
2083 they appear in a file name
2084
2085bashline.c
2086 - new functions for rl_filename_quoting_function and
2087 rl_filename_dequoting_function.
2088 - initialize rl_filename_quoting_function and rl_filename_dequoting_function
2089 in initialize_readline
2090 - initialize rl_filename_quote_characters
2091
2092lib/readline/readline.h
2093 - extern declarations for new public interfaces
2094 rl_filename_quoting_function and rl_filename_dequoting_function
2095 - added declarations for NO_MATCH, SINGLE_MATCH, and MULT_MATCH for
2096 use by the filename quoting functions
2097 - new extern declaration for rl_filename_quote_characters
2098
2099lib/readline/history.c
2100 - made a version of single_quote be compiled in if SHELL is not
2101 defined
2102 - the `q' and `x' modifiers are now compiled in by default, not
2103 just if SHELL is defined
2104
2105 10/11
2106 -----
2107subst.c
2108 - string_quote_removal was being a little overzealous in stripping
2109 things within embedded quoted strings when `quoted' was == 1.
2110 Only remove one level of quotes each time through the function
2111 This fixes the problem of quotes being stripped incorrectly in
2112 var="The text \"hello\" should show up inside double quotes."
2113
2114lib/readline/history.c
2115 - made the behavior of single quotes inhibiting history expansion
2116 configurable with a variable: history_quotes_inhibit_expansion,
2117 not just shell-specific
2118 - added a new variable: history_search_delimiter_chars, which is a
2119 list of characters that can also delimit a history search string
2120
2121lib/readline/history.h
2122 - extern declaration of history_quotes_inhibit_expansion
2123 - extern declaration of history_search_delimiter_chars
2124
2125bashhist.c
2126 - set history_quotes_inhibit_expansion to 1 in bash_initialize_history
2127 - initialize history_search_delimiter_chars to ";&()|<>"
2128
2129lib/readline/doc/{rltech,hstech}.texinfo
2130 - documented new readline and history library interfaces
2131
2132parse.y
2133 - split the part of read_token that reads a single word off into
2134 a new function: read_token_word
2135
2136lib/readline/chardefs.h
2137 - include <string.h> by default; only check HAVE_STRING_H if
2138 HAVE_CONFIG_H is defined
2139
2140 10/12
2141 -----
2142parse.y
2143 - moved the `RESET' code out of read_token into reset_parser
2144 - rewrote some of decode_prompt_string to make it more efficient
2145 - rewrote more of read_token_word to make it more efficient
2146 - make shell_getc cast its result to `unsigned char' before
2147 returning it. This fixes the problem of \255 appearing in a
2148 line
2149
2150machines.h
2151 - new entry for m68k machines running Linux
2152
2153 10/13
2154 -----
2155builtins/exec.def
2156 - use search_for_command rather than find_user_command to look up
2157 the path to exec, so the hash table and temp environment are used
2158
2159variables.c
2160 - don't rebuild the export environment after binding a shell
2161 function unless that function is exported
2162 - make sure that copy_variable copies arrays correctly, using
2163 dup_array()
2164 - in assign_in_env, only call tilde_expand if a `~' appears somewhere
2165 in the value
2166
2167execute_cmd.c
2168 - if we found $PATH in the temp environment in search_for_command,
2169 call find_user_command_in_path instead of find_user_command, so
2170 we don't try to search the temporary env again. Call
2171 find_user_command as normal if PATH is not in the temp environment
2172
2173subst.c
2174 - char_is_quoted should not be compiled in if READLINE is not
2175 defined
2176
2177lib/readline/complete.c
2178 - add a new external interface: Function *rl_char_is_quoted_p,
2179 which is called to find out whether a word break character is
2180 quoted and should be skipped over when breaking words for
2181 the completer
2182
2183lib/readline/readline.h
2184 - extern declaration for rl_char_is_quoted_p
2185
2186bashline.c
2187 - initialize rl_char_is_quoted_p to char_is_quoted
2188
2189lib/readline/doc/rltech.texinfo
2190 - documented rl_char_is_quoted_p
2191
2192lib/readline/readline.c
2193 - extend the undo records so that a `start' or `end' value of -1
2194 means rl_point and a value of -2 means rl_end. This is a start
2195 to better support for undoing vi-mode commands like `C'
2196
2197lib/readline/vi_mode.c
2198 - don't save what's entered in insert mode after a `C' command
2199 for later insertion when doing a `redo'
2200
2201 10/16
2202 -----
2203test.c
2204 - rewrote unop() to use a switch statement instead of a call to
2205 strchr
2206 - remove #ifdef SHELL blocks by defining getuid, geteuid, getgid
2207 and getegid as references to current_user.{uid,euid,gid,egid}
2208 respectively
2209 - change group_member to only fetch the group list once and to use
2210 NGROUPS_MAX or NGROUPS to find the maximum number of groups
2211
2212documentation/bash.1
2213 - fixed description of ${#@} expansion
2214
2215 10/17
2216 -----
2217support/bashbug.sh
2218 - add a `From:' line to the mail message handed to rmail
2219
2220 10/18
2221 -----
2222test.c
2223 - rewrote binary_operator for speed and clarity
2224 - removed age_of, added arithcomp(), filecomp() to support new
2225 binary_operator
2226 - removed support for `-l string'
2227
2228documentation/bash.1
2229 - removed mention of `-l string' from `test' description
2230
2231 10/19
2232 -----
2233cpp-Makefile
2234 - pass PROGRAM as the double-quoted shell name to compilation of
2235 shell.c and error.c
2236
2237 10/20
2238 -----
2239support/bashbug.sh
2240 - don't try to use ${word:-expansion}; ultrix sh doesn't understand it
2241
2242hash.c
2243 - new function: flush_hash_table (table, free_data) to delete the
2244 contents of a given hash table. *free_data is called to free
2245 each item's data, if free() is inappropriate
2246
2247builtins/hash.def
2248 - new functions free_hashed_filenames and free_filename_data to
2249 flush the table of hashed filenames
2250
2251subst.c
2252 - change sv_path to call flush_hashed_filenames directly
2253
2254variables.c
2255 - only sort arrays of variables or functions for the environment or
2256 `set' output if `posixly_correct' is set. sh does it; ksh does
2257 not, and there's no real requirement to do so
2258 - rewrote delete_all_variables so it looks like flush_hash_table
2259
2260trap.c
2261 - two new flag values for the `sigmodes' array: SIG_INPROGRESS,
2262 which is set for sigmodes[sig] while a trap handler for sig
2263 is executing, and SIG_CHANGED, which is set if a new trap
2264 value is set when SIG_INPROGRESS is set. This should obviate
2265 the need to set the trap value to IMPOSSIBLE_TRAP_HANDLER while
2266 the trap handler is executing
2267
2268alias.c
2269 - rewrote delete_all_aliases so it looks like flush_hash_table
2270
2271 10/21
2272 -----
2273alias.c
2274 - changed delete_all_aliases to call flush_hash_table directly
2275 and use free_alias_data as the `free function' argument
2276
2277variables.c
2278 - changed delete_all_variables to call flush_hash_table directly
2279
2280tests/run-test, tests/test-tests
2281 - new scripts to run tests of the `test' builtin as part of the
2282 regression test
2283
2284 10/24
2285 -----
2286bashline.c
2287 - initialize_hostname_list needs to look for HOSTFILE first
2288 - hostname list is no longer sorted
2289 - replaced binary search in hostnames_matching with a simple
2290 linear search
2291 - made the code that reads hostnames skip over the first word on
2292 a line only if its first character is a digit, assuming it's
2293 an Internet address
2294
2295copy_cmd.c
2296 - removed copy_select_command; overload copy_for_command, since the
2297 select and for command structs are exactly the same
2298
2299make_cmd.c
2300 - combined make_for_command and make_select_command into a new
2301 function, make_for_or_select
2302 - rewrote make_here_document to remove the unneeded `switch' statement
2303
2304builtins/common.c, builtins/hash.def
2305 - moved remove_hashed_filename from common.c to hash.def
2306
2307builtins/common.c
2308 - remove the \r from error message printed by get_working_directory
2309 - change parse_and_execute to call dispose_fd_bitmap directly then
2310 discard the `pe_dispose' unwind-protect frame rather than running
2311 the frame
2312
2313builtins/set.def
2314 - changed how set -o options are set and retrieved, using set and get
2315 functions to avoid all that special-case inline code
2316
2317 10/26
2318 -----
2319test.c
2320 - added unary operator `-o', which returns true of the shell option
2321 name given as an argument is set
2322
2323lib/readline/readline.c
2324 - added a definition of set_lines_and_columns to be called if the
2325 library is not compiled -DSHELL
2326
2327shell.c
2328 - added a --verbose startup long option
2329 - renamed `--nolineediting' to `--noediting'
2330
2331 10/27
2332 -----
2333lib/readline/util.c
2334 - new file, for readline utility functions
2335
2336lib/readline/readline.c
2337 - moved a bunch of functions to util.c
2338
2339subst.c
2340 - make sure set_sigint_handler is called only by the subshells doing
2341 command and process substitution
2342
2343builtins/read.def
2344 - make sure that rlbuf is initialized to null
2345
2346trap.c
2347 - new flag for sigmodes[] members: SIG_IGNORED, set when signal is
2348 ignored, even if it's special or untrappable
2349 - new function: signal_is_ignored (sig), which returns 1 if SIG
2350 has been ignored with trap ''
2351
2352builtins/trap.def
2353 - changed to use the builtin getopt
2354
2355shell.c
2356 - added a check to sigint_sighandler for whether or not SIGINT has
2357 been ignored with trap '' in an interactive shell. This fixes
2358 the problem with `read' being interruptible in an interactive
2359 shell even if SIGINT is being ignored
2360
2361 11/8
2362 ----
2363lib/readline/Makefile
2364 - added definition of INSTALLED_HEADERS, just in case
2365
2366 11/11
2367 -----
2368variables.c
2369 - change assign_in_env so that it doesn't use savestring ("") to
2370 set `value' to a dummy value; don't call strcpy if there's
2371 nothing to copy
2372
2373 11/15
2374 -----
2375general.h
2376 - new defines, legal_variable_starter and legal_variable_char
2377 - new define SIGRETURN(n) which encapsulates the VOID_SIGHANDLER
2378 differences when returning from a signal handler
2379
2380general.c, variables.c, subst.c, expr.c
2381 - use legal_variable_starter and legal_variable_char
2382
2383shell.c, nojobs.c, trap.c, jobs.c, builtins/suspend.def
2384 - change to use SIGRETURN macro
2385
2386subst.c
2387 - massive changes to clean up the code and remove unused code and
2388 variables
2389 - expanded the ${#param} code so that all of the shell special
2390 variables may have their length taken
2391
2392tests/run-tilde
2393 - new test for tilde expansion
2394
2395bashline.c
2396 - fix a bug in command_subst_completion_matches: make sure that
2397 `matches' is static
2398
2399parse.y
2400 - don't print a prompt when not using readline if the current
2401 input type is st_string
2402
2403machines.h
2404 - add -DINT_GROUPS_ARRAY to SYSDEP_CFLAGS on ultrix
2405 - fixes to the cray machine description from Bill Jones
2406
2407braces.c
2408 - fixed a bug in brace_gobbler that prevented a backslash from
2409 escaping an open brace
2410
2411 11/16
2412 -----
2413tests/braces-tests, tests/run-braces
2414 - new regression tests for brace expansion
2415
2416builtins/pushd.def
2417 - new -p option for `dirs' that prints dirstack on per line
2418 without numbers
2419
2420 11/17
2421 -----
2422command.h
2423 - move redirection error values here from execute_cmd.c
2424 - new defines INPUT_REDIRECT and OUTPUT_REDIRECT
2425
2426shell.c
2427 - make the default MAINTAINER `bash-maintainers@prep.ai.mit.edu'
2428
2429execute_cmd.c
2430 - many changes to clean up the code and remove unused variables and
2431 functions
2432 - new functions: redirection_error, find_in_path_element,
2433 find_absolute_program
2434 - fixes to redirection error reporting, so things like exec 4<&y*
2435 and exec 4<&$FOO are displayed correctly
2436 - removed the `lexical_scoping' code
2437
2438flags.c, flags.h
2439 - removed the lexical_scoping code and variable
2440
2441documentation/{bash.1,features.texi}
2442 - removed the description of the `-l' option to `set'
2443
2444jobs.c
2445 - don't try to open /dev/tty to get the controlling tty, use
2446 fd 2 like other job control shells
2447
2448lib/readline/vi_mode.c
2449 - when using `d%', make sure the matching character found by
2450 the `%' is deleted by the `d'. Ditto for `c%'.
2451 - stub function for vi undo: rl_vi_undo. Right now it just
2452 calls rl_undo_command
2453
2454lib/readline/vi_keymap.c
2455 - change to call rl_vi_undo instead of rl_undo_command
2456
2457lib/readline/readline.h
2458 - extern declaration for rl_vi_undo
2459
2460 11/21
2461 -----
2462execute_cmd.c
2463 - fix to print_select_list to avoid a possible divide-by-zero error
2464 and subsequent core dump
2465 - fix to execute_select_command to just return 0 if there is no
2466 select list
2467
2468parse.y
2469 - remove `in' from the list of tokens that cannot take trailing
2470 semicolons
2471
2472builtins/read.def
2473 - make sure that leading IFS whitespace is removed before calling
2474 get_word_from_string the first time. This matters when IFS is
2475 not " \t\n" but non-null
2476 - make sure the array code uses IFS to split the input string
2477 before assigning it to the array
2478
2479 11/22
2480 -----
2481parse.y
2482 - make sure that if \nnn expands to CTLESC or CTLNUL, the char
2483 is protected by a CTLESC
2484 - new variable `promptvars', which, if non-zero, causes all the
2485 variable expansions to be performed in decode_prompt_string.
2486 If zero, only quote removal is performed.
2487
2488builtins/source.def
2489 - new variable: `source_uses_path', set to 1 by default. If
2490 non-zero, the `.' builtin uses $PATH to find the script to
2491 source
2492
2493builtins/getopt.h
2494 - cut out everything not needed by bash
2495
2496builtins/getopt.c
2497 - cut out everything not needed by bash
2498
2499builtins/getopts.def
2500 - removed the call to getopt_set_posix_option_order, which is no
2501 longer necessary
2502
2503execute_cmd.c
2504 - split the code that writes out here documents to files out into
2505 a separate function
2506
2507 11/23
2508 -----
2509builtins/getopt.c, builtins/getopt.h, builtins/getopts.def, subst.c
2510 - prefix all of the getopt variables and functions with `sh_'
2511 (that is, optind becomes sh_optind and getopt becomes sh_getopt)
2512 to avoid confusion with a system's getopt(3) implementation
2513
2514subst.c
2515 - new functions: parameter_brace_substring and verify_substring_values
2516 and changes to expand_word_internal to support the ksh-93
2517 ${var:exp1:exp2} substring syntax
2518
2519documentation/bash.1
2520 - documented the new ${var:exp1[:exp2]} syntax
2521
2522 11/25
2523 -----
2524builtins/setattr.def
2525 - don't allow readonly -n at all
2526
2527array.c
2528 - split array_to_string into two parts; a new function
2529 array_to_string_internal does the real work
2530 - new function array_subrange () to return a subset of the elements
2531 in an array
2532
2533subst.c
2534 - augmented the substring code to handle the positional parameters
2535 and array variables
2536 - made quote_list and dequote_list return their WORD_LIST *
2537 arguments so they can be used like
2538
2539 z = string_list ((quoted ? quote_list (l) : l), xxx);
2540
2541 - augmented the ${xxx} expansion code to do indirect variable
2542 references if the first character of the variable name is `!'
2543
2544tests/new-exp.tests
2545 - added regression tests for substring expansion
2546 - added regression tests for indirect variable references
2547
2548 11/28
2549 -----
2550builtins/set.def
2551 - added set -o hashfunc and set -o onecmd, synonyms for set -h
2552 and set -t, respectively
2553
2554builtins/shift.def
2555 - changed shift so that the positional parameters are not changed
2556 if the argument is > $# (this is ksh and Posix.2, unlike sh)
2557
2558documentation/bash.1
2559 - documented true behavior of `shift'
2560
2561lib/readline/kill.c
2562 - split the kill ring management code and the kill commands out
2563 from readline.c into this file
2564
2565lib/readline/undo.c
2566 - split the code that does undoing out of readline.c into this file
2567
2568shell.c
2569 - force the shell to exit with status 127 if a longjmp back to
2570 run_one_command occurs with bash -c
2571 - force the last command exit status to 1 if a
2572 longjmp (top_level, DISCARD) is performed
2573
2574builtins/read.def
2575 - don't throw away partial lines after reading EOF
2576
2577subst.c
2578 - command substitution should not inherit the -e flag
2579
2580builtins/source.def
2581 - make sure to set the exit status correctly when in posix mode
2582 and the filename argument to `.' does not exist
2583
2584 11/29
2585 -----
2586lib/readline/input.c
2587 - split the input buffering and character input code out of
2588 readline.c to here
2589
2590lib/readline/macro.c
2591 - moved the keyboard macro management code to here from readline.c
2592
2593lib/readline/readline.c
2594 - removed the STATIC_MALLOC code
2595
2596lib/readline/rltty.c
2597 - return -1 in POSIX get_tty_settings if tcgetattr returns -1 and
2598 errno != EINTR, even if output is being flushed
2599
2600 12/1
2601 ----
2602machines.h
2603 - fixes to the hpux_8 and hpux_9 machine descriptions
2604
2605trap.c
2606 - make run_exit_trap return the right exit status
2607 (last_command_exit_value)
2608 - run_exit_trap no longer preserves the value of last_command_exit_value
2609 around the execution of the trap commands
2610 - run_exit_trap now turns off SIG_TRAPPED and sets SIG_INPROGRESS
2611 and will not try to run anything if SIG_INPROGRESS is set
2612
2613trap.h
2614 - change definition for run_exit_trap
2615
2616shell.c
2617 - call run_exit_trap only if trap[0] is set and not ignored
2618
2619builtins/exit.def
2620 - make sure we only source the .bash_logout file once, even if it
2621 contains a call to `exit'
2622
2623execute_cmd.c
2624 - if we run an exit trap in a (...) user subshell, allow it to
2625 override the exit status of the subshell
2626
2627lib/readline/readline.c
2628 - made rl_delete_text bounds check its `to' argument, and limit
2629 it at rl_end
2630
2631lib/readline/vi_mode.c
2632 - make rl_vi_subst call `rl_delete_text' directly for the `s'
2633 command
2634
2635support/mksysdefs
2636 - define a new variable for the sysdefs.h file for ISC machines:
2637 ISC_release, which can be ISC_2, ISC_3, or ISC_4
2638
2639machines.h
2640 - don't `#undef' HAVE_GETCWD on ISC 4.x machines
2641 - `#undef' HAVE_RESOURCE on ISC 4.x machines
2642
2643support/mkversion.c
2644 - include "posixstat.h" rather than <sys/stat.h> for the benefit
2645 of ISC machines
2646
2647 12/5
2648 ----
2649lib/readline/complete.c
2650 - changed username_completion_function so that a null username
2651 generates a list of all users as possible completions
2652
2653lib/readline/readline.h
2654 - added definitions for STREQ, STREQN
2655
2656lib/readline/{search.c,isearch.c,kill.c}
2657 - removed private definitions of STREQ, STREQN
2658
2659execute_cmd.c
2660 - in find_user_command_internal, just return a copy of the pathname
2661 passed as an argument if there is no PATH
2662
2663 12/6
2664 ----
2665siglist.h
2666 - NetBSD 1.0 does not need a define for strsignal()
2667
2668 12/8
2669 ----
2670subst.c
2671 - removed assignment_name, word_list_quote_removal, word_quote_removal,
2672 and sub_append_number -- unused functions
2673 - removed some unexecuted code from expand_word_internal
2674
2675 12/9
2676 ----
2677execute_cmd.c
2678 - if PATH is set to the empty string, find executables in the
2679 current directory
2680
2681shell.c, parse.y, trap.c
2682 - before setting the SIGINT sighandler unconditionally to one of
2683 sigint_sighandler or termination_unwind_protect, check that it
2684 is not ignored. Now trap '' 2 really sets the SIGINT signal
2685 handler to SIG_IGN. [In 1.14.3]
2686
2687trap.c
2688 - rewrote set_sigint_handler to use SIG_IGNORED rather than checking
2689 against IGNORE_SIG
2690 - changed ignore_signal, run_exit_trap, maybe_call_trap_handler, and
2691 run_trap_internal to check SIG_IGNORED
2692
2693shell.c
2694 - removed the check for signal_is_ignored(SIGINT) in sigint_sighandler
2695
2696 12/11
2697 -----
2698sig.c, sig.h
2699 - new files, moved signal-related definitions and code here from
2700 shell.c, general.h, general.c, jobs.c, jobs.h, externs.h
2701
2702unwind_prot.c, shell.h, nojobs.c
2703 - include sig.h
2704
2705 12/12
2706 -----
2707jobs.c
2708 - only break out of loops if SIGTSTP was used to stop a job in the
2709 loop, the shell is currently interactive, and job control is on.
2710 SIGSTOP does not break loops. [In 1.14.3]
2711
2712 12/13
2713 -----
2714expr.c
2715 - bases < 2 or > 36 are now accepted without silently being reset
2716 to 10
2717
2718braces.c
2719 - make sure array_concat copies the array it returns if one of
2720 the arguments is null [In 1.14.3]
2721
2722 12/14
2723 -----
2724subst.c
2725 - split the ${...} expansion code out into a separate function,
2726 static char *parameter_brace_expand()
2727 - changes to array_value so that any variable can be referred to
2728 as an array with an integer subscript. The value will be
2729 returned if a non-array variable is referred to as ${var[0]};
2730 if the subscript is > 0 a null string is returned
2731
2732 12/15
2733 -----
2734machines.h
2735 - fixes to freebsd description for FreeBSD 2 [In 1.14.3]
2736
2737support/bashbug.sh
2738 - changed to use /usr/lib/sendmail if present or /usr/sbin/sendmail
2739 if present, defaulting to rmail [In 1.14.3]
2740
2741bashhist.c
2742 - HISTFILESIZE now controls how large the history file is after
2743 it is written. After saving the shell history, sv_histfilesize
2744 will truncate it if necessary. history -w can override this.
2745
2746documentation/bash.1
2747 - documented change to treatment of HISTSIZE when saving history
2748
2749lib/malloc/malloc.c
2750 - removed the calls to sigsetmask() in malloc(). This should
2751 result in a speed improvement
2752
2753 12/19
2754 -----
2755builtins/enable.def
2756 - don't allow -f or -d in a restricted shell
2757
2758builtins/alias.def
2759 - rewrote alias and unalias to use the internal getopt
2760 - added -p option to print the alias list to alias
2761 - fixed up the documentation for `alias'
2762
2763documentation/{bash.1,features.texi}
2764 - updated the documentation for `alias'
2765 - updated the documentation for $_
2766
2767array.c,array.h
2768 - new function `empty_array (ARRAY *a)' removes all of the
2769 elements in a without destroying the array variable in
2770 preparation for overwriting it. Used by read -a.
2771
2772builtins/read.def
2773 - call empty_array() before assigning list of values with read -a
2774 - changed dispose_array to use empty_array to destroy the
2775 array elements
2776
2777variables.c
2778 - set $_ to argv[0] at variable initialization time
2779
2780 12/20
2781 -----
2782subst.c
2783 - broke the pattern removal code into a few separate functions:
2784 getpatspec to get the pattern specifier, getpattern to do the
2785 necessary word expansions and return the pattern to be matched
2786 - new function: parameter_list_remove_pattern(), which implements
2787 the ${param[#%][[%#]]pattern} where param is `@' or `*'
2788
2789documentation/bash.1
2790 - documented new pattern removal functionality for the positional
2791 paramters
2792
2793general.c
2794 - new function strsub (s, pat, rep, gflag) replaces PAT with REP
2795 in S. All occurrences are replaced if GFLAG != 0; the first is
2796 replaced otherwise
2797 - changed strindex() to avoid multiple calls to strnicmp by
2798 checking first character of the string
2799
2800builtins/fc.def
2801 - changed to use builtin_getopt with a check for fc numbers as
2802 arguments
2803 - some code rearranging for efficiency and clarity
2804 - fc_dosubs now just calls strsub(); fc_replace is gone
2805
2806 12/21
2807 -----
2808subst.c
2809 - new function, match_pattern, which matches a shell globbing
2810 pattern anywhere in a string and returns the boundaries of the
2811 match
2812
2813lib/readline/readline.h
2814 - declarations for rl_insert_command and rl_backward_char_search
2815
2816lib/readline/readline.c
2817 - new function rl_insert_comment, no longer vi-mode-specific
2818 - new function rl_backward_char_search
2819
2820lib/readline/bind.c
2821 - comment-begin now sets the comment char for emacs and vi modes
2822 - variable holding the value is now _rl_comment_begin
2823
2824lib/readline/vi_mode.c
2825 - move the `comment-begin' stuff to readline.c and bind.c
2826
2827lib/readline/funmap.c
2828 - vi-comment is now insert-comment
2829 - new bindable command character-search-backward
2830
2831lib/readline/vi_mode.c
2832 - command mode `#' now invokes rl_insert_comment
2833
2834lib/readline/emacs_keymap.c
2835 - M-# now bound to insert-comment
2836 - M-space now bound to set-mark
2837 - M-^] now bound to character-search-backward
2838
2839bashline.c
2840 - posix_readline_initialize now calls rl_variable_bind to set the
2841 value of comment-begin rather than directly modifying
2842 _rl_comment_begin
2843
2844documentation/{bash.1,readline.3}, lib/readline/doc/rluser.texinfo
2845 - added description of new bindable `insert-comment' command
2846 - documented new M-space emacs mode binding
2847 - documented new character-search-backward command and default
2848 emacs mode binding to M-C-]
2849
2850shell.c
2851 - only call posix_initialize if posixly_correct is set
2852
2853 12/22
2854 -----
2855cpp-Makefile
2856 - make $(Program) depend on $(srcdir)/.distribution, for the
2857 benefit of systems where `make' does not have VPATH support
2858 [In 1.14.3]
2859
2860jobs.c
2861 - if a foreground job is killed by SIGINT while job control is
2862 active, print a newline to compensate for the kernel printing
2863 ^C without one [in 1.14.3]
2864
2865bashline.c
2866 - make sure bashline_reinitialize resets rl_completion_entry_function
2867 to NULL, as the comment says it should [In 1.14.3]
2868
2869 12/23
2870 -----
2871test.c
2872 - fix a problem that caused core dumps if a `)' was missing in a
2873 parenthesized expression [In 1.14.3]
2874
2875jobs.c
2876 - broke the code the manages the manipulation of the job table and
2877 process status out of flush_child into a new function waitchld()
2878 - flush_child now just calls waitchld() with a parameter that tells
2879 it not to block
2880 - wait_for calls waitchld() with the pid it's looking for and tells
2881 it to block (don't call it with WNOHANG)
2882 - cleaned up wait_for considerably -- turned the wait_loop: label
2883 stuff into a do-while loop and removed the setting of job status
2884 (that's now done only by waitchld). wait_for now calls
2885 waitchld continuously until the job it is interested in is
2886 marked JDEAD.
2887
2888 12/28
2889 -----
2890subst.c
2891 - fixed expand_word_internal so that any word that expands into
2892 nothing and contains a double-quoted $@ is removed, like sh
2893 and ksh
2894 - new function: expand_string_for_rhs, which calls expand_word_internal
2895 with a variable that lets it find out whether or not a $@ appeared
2896 in the WORD in ${paramOPword} when expanding it, so that "$@"
2897 and various other things are handled correctly on the rhs
2898 - added params for parameter_brace_expand to tell expand_word_internal
2899 if a quoted $@ was processed as part of the rhs (or even the lhs);
2900 these new params are passed along to parameter_brace_expand_rhs
2901 - pass the right value of quoted to parameter_brace_expand_rhs from
2902 parameter_brace_expand. expand_string_for_rhs doesn't need to know
2903 whether the brace expression is quoted
2904
2905 12/31
2906 -----
2907support/printenv
2908 - now an official part of the distribution, moved from CWRU/misc
2909 [in 1.14.3]
2910
2911cpp-Makefile
2912 - copy support/printenv into the `tests' directory when making tests
2913 [in 1.14.3]
2914 - change to understand GCC_STANDARD [in 1.14.3]
2915
2916support/bashbug.sh
2917 - fixed a typo that caused it to not parse correctly [in 1.14.3]
2918
2919machines.h
2920 - define GCC_STANDARD if the standard `cc' is gcc and you don't want
2921 to use the compiler named `gcc' for some reason [in 1.14.3]
2922
2923 1/2
2924 ---
2925general.h
2926 - added FS_DIRECTORY to the list of flags that file_status returns
2927
2928execute_cmd.c
2929 - changed find_in_path_element to return null if the flags argument
2930 specifies FS_EXEC_ONLY and the file is not executable
2931 - return FS_DIRECTORY from file_status if the argument specifies a
2932 directory
2933 - new function, is_directory (char *), which returns non-zero if the
2934 filename argument is a directory
2935
2936execute_cmd.h
2937 - extern declaration for is_directory
2938
2939flags.c, flags.h
2940 - hashing_disabled and locate_commands_in_functions were removed,
2941 hashing_enabled added
2942
2943execute_cmd.c, builtins/common.c. builtins/hash.def
2944 - use hashing_enabled instead of hashing_disabled, and reverse
2945 the sense of tests of it
2946
2947documentation/bash.1, documentation/features.texi
2948 - changed description of `set -h/set -o hashcmds', removed
2949 set -d/set -o nohash
2950
2951bashline.c
2952 - changed command_word_completion_function to return matches if names
2953 are directories as well as if they are executable files
2954
2955support/mksysdefs
2956 - look for `ranlib' in $PATH before searching the file system;
2957 look in /usr/gnu/bin for it; default to `:' if not found
2958
2959general.c
2960 - change ansicstr to accept a second argument telling it whether to
2961 recognize \c and to pass back a non-zero value in it if \c is
2962 seen
2963
2964general.h
2965 - changed extern declaration of ansicstr
2966
2967subst.c
2968 - call ansicstr with an extra argument
2969
2970 1/3
2971 ---
2972builtins/echo.def
2973 - rewrote to use ansicstr() with the new argument
2974
2975 1/4
2976 ---
2977trap.c
2978 - changed instances of signal() to set_signal_handler() [in 1.14.4]
2979 - combined reset_signals and restore_signals into a single function,
2980 since they were essentially identical
2981
2982subst.c
2983 - if set -u is set, references to the positional parameters now
2984 generate errors if that parameter is not set [in 1.14.4]
2985
2986lib/*/Makefile, builtins/Makefile
2987 - since RANLIB can be just `ranlib', just try to run it without
2988 checking that the file exists [in 1.14.4]
2989
2990builtins/set.def
2991 - changed `hashcmds' to `hashall'
2992
2993documentation/{bash.1,features.texi}
2994 - changed `hashcmds' to `hashall'
2995
2996 1/5
2997 ---
2998trap.c
2999 - make the loop that restores signal handlers run from signal 0 to
3000 make sure user subshells don't inherit traps on `exit' (to fix
3001 for 1.14.3, change restore_original_signals so that the loop
3002 starts from 0) [in 1.14.4]
3003
3004variables.c
3005 - don't import exported function definitions at startup if the
3006 shell is restricted
3007
3008builtins/source.def
3009 - don't allow use of pathname arguments containing `/' in a
3010 restricted shell
3011
3012execute_cmd.c
3013 - when a shell is spawned to execute a shell script without a
3014 #! line, turn off the -r flag if the shell is restricted
3015
3016shell.c
3017 - added a new long option `--restricted'
3018
3019documentation/bash.1
3020 - added a section on the restricted shell, and documented the
3021 new `--restricted' long invocation option
3022
3023 1/7
3024 ---
3025shell.c
3026 - when using bash -c command, make run_one_command return
3027 last_command_exit_value if a throw_to_top_level with value
3028 EXITPROG occurs [in 1.14.4]
3029
3030print_cmd.c
3031 - make sure to initialize arg_index in the non-varargs implementation
3032 of cprintf [in 1.14.4]
3033
3034jobs.c
3035 - don't try to change the state of the SIGCHLD handler before
3036 calling waitchld() from wait_for, since SIGCHLD is blocked
3037 while this code is executing [in 1.14.4]
3038
3039 1/11
3040 ----
3041lib/readline/rltty.c
3042 - call control_keypad iff the value of a new variable,
3043 _rl_enable_keypad, is non-zero
3044
3045lib/readline/bind.c
3046 - new readline variable `enable-keypad' to control whether readline
3047 tries to manipulate the application keypad
3048
3049documentation/{bash.1,readline.3}, lib/readline/doc/rluser.texinfo
3050 - documented new `enable-keypad' variable
3051
3052 1/12
3053 ----
3054lib/readline/search.c
3055 - make sure to call rl_unix_word_rubout and rl_unix_line_discard
3056 with the correct arguments [in 1.14.4]
3057
3058make_cmd.h
3059 - make sure make_select_command is declared even if SELECT_COMMAND
3060 is not defined
3061
3062parse.y
3063 - make sure the \[ and \] escape sequences are not recognized if
3064 READLINE is not defined [in 1.14.4]
3065
3066config.h
3067 - make sure HISTORY is defined if READLINE is; code moved here
3068 from bashhist.c [in 1.14.4]
3069
3070bashhist.c
3071 - removed check for READLINE being defined without HISTORY; now
3072 in config.h
3073 - new function, bash_history_reinit
3074
3075flags.h, flags.c, builtins/set.def
3076 - the -H/-o histexpand flag should be compiled into the shell
3077 only if BANG_HISTORY is defined [in 1.14.4]
3078
3079subst.c
3080 - don't include sv_histchars unless BANG_HISTORY is defined
3081 [in 1.14.4]
3082 - if QUOTED is true in parameter_brace_expand_rhs, pre-process the
3083 word on the rhs of the parameter expansion by a call to
3084 string_extract_double_quoted with the STRIPDQ parameter set to 1
3085 - new arg for string_extract_double_quoted; causes it to strip
3086 double quotes and alter its backslash handling behavior; designed
3087 to be called from parameter_brace_expand_rhs
3088 - changed all other instances of string_extract_double_quoted to
3089 call it with STRIPDQ set to 0, to get old behavior
3090
3091shell.c
3092 - call bash_history_reinit rather than manipulating history
3093 variables directly
3094
3095variables.c
3096 - don't auto-export $BASH [in 1.14.4]
3097
3098tests/rhs-exp.tests
3099 - new test script to check for behavior fixed by changes to
3100 string_extract_double_quoted and parameter_brace_expand_rhs
3101
3102parse.y
3103 - `for' and `select' must now take non-empty lists between
3104 `in' and `;'
3105
3106 1/16
3107 ----
3108subst.c
3109 - fixed string_quote_removal to do double-quoted string processing
3110 itself rather than call string_extract_double_quoted, which
3111 assumes that a call to expand_word_internal or the equivalent
3112 will follow immediately and leaves some backslashes in place,
3113 inappropriately for quote removal
3114
3115 1/23
3116 ----
3117subst.c
3118 - make sure to set `temp' to NULL after it's freed by sub_append_string
3119 in expand_word_internal to keep it from pointing to newly-allocated
3120 memory that will be subsequently freed, causing a `memory freed
3121 twice' error [in 1.14.4]
3122
3123trap.c
3124 - handle the EXIT_TRAP specially in reset_or_restore_signal_handlers,
3125 since in both cases we simply want to free up the trap string and
3126 mark the signal as not trapped
3127
3128shell.h
3129 - added \n to the list of characters in slashify_in_double_quotes
3130
3131 1/26
3132 ----
3133subst.c
3134 - make string_extract_single_quoted and string_extract_double_quoted
3135 `inline'
3136 - new function skip_single_quoted, used when we used to call
3137 string_extract_single_quoted and just throw the returned string
3138 away
3139 - new function skip_double_quoted for the same purpose
3140
3141 1/28
3142 ----
3143subst.c
3144 - fixed expand_word_internal so that if an assignment word
3145 is expanded, no word splitting is performed [in 1.14.4]
3146
3147builtins/ulimit.def
3148 - some systems lack RLIMIT_CPU; so `#ifdef' its use [in 1.14.4]
3149 - some versions of cpp expand parameters like \n if `n' is an
3150 argument to the macro; change `n' to `num' in the definition
3151 of print_rlimtype to compensate [in 1.14.4]
3152
3153builtins/read.def
3154 - make sure the read loop sets `saw_escape' to note that an
3155 escape character was read if CTLESC or CTLNUL is read [in 1.14.4]
3156
3157shell.c, sig.c
3158 - only test interactive_shell before calling maybe_save_shell_history
3159 [in 1.14.4]
3160shell.c
3161 - include <locale.h> if HAVE_LOCALE_H is defined
3162 - call setlocale(LC_ALL, "") at the beginning of main() if
3163 either _POSIX_VERSION or HAVE_SETLOCALE is defined
3164
3165support/mksysdefs
3166 - look for <locale.h>, define HAVE_LOCALE_H if found
3167
3168cpp-Makefile
3169 - pass HAVE_LOCALE_H through from sysdefs.h to the build process
3170
3171bashhist.c
3172 - remove test against interactive_shell in maybe_save_shell_history
3173 [in 1.14.4]
3174
3175variables.c
3176 - moved definition of DEFAULT_MAIL_PATH to config.h
3177
3178config.h, config.h.mini
3179 - now has definition of DEFAULT_MAIL_PATH [in 1.14.4]
3180 - changed default value of PATH to
3181 `/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin:.'
3182 [in 1.14.4]
3183
3184documentation/bash.1
3185 - updated the example of the default path in the description of
3186 the PATH variable
3187
3188lib/readline/readline.c
3189 - set up a table of `legal' LC_CTYPE values and match the value of
3190 $LC_CTYPE against it when deciding whether or not to default to
3191 eight-bit input and output
3192 - check for LC_ALL, LC_CTYPE, and LANG, in that order, for names to
3193 check against the legal_lc_ctype_values table
3194
3195lib/readline/bind.c
3196 - moved strindex, stricmp, and strnicmp to lib/readline/util.c,
3197 added _rl_ prefix to names
3198 - some miscellaneous code cleanups and speedups
3199
3200lib/readline/rldefs.h
3201 - define _POSIX_VDISABLE as _SVR4_VDISABLE if there is a define
3202 for the latter and not the former [in 1.14.4]
3203 - moved defining _rl_stricmp and _rl_strnicmp as strcasecmp and
3204 strncasecmp, respectively, here from bind.c, since the functions
3205 are now defined in util.c and used in two files
3206
3207builtins/common.c
3208 - removed the \n case in double_quote, so a backslash is not added
3209 before an existing newline. The \<newline> pair is removed by
3210 the parser before anything else in the shell gets hold of it
3211 except within single quotes [in 1.14.4]
3212
3213 1/30
3214 ----
3215general.c
3216 - make sure the string index in canonicalize_pathname never goes
3217 < 0 (it can, in some cases, result in `start' being -1, and `i'
3218 being set to that) [in 1.14.4]
3219
3220 2/1
3221 ---
3222execute_cmd.c
3223 - fix a typo in a call to `access' in AFS-specific code [in 1.14.4]
3224
3225 2/3
3226 ---
3227builtins/shopt.def
3228 - finally added new `shopt' builtin
3229
3230builtins/umask.def
3231 - converted to use builtin_getopt
3232
3233bashhist.c
3234 - support for storing literal newlines in the history list when
3235 command_oriented_history is enabled, rather than using semicolons
3236
3237builtins/Makefile
3238 - changed rule to make a .o file from a .def file to remove the
3239 .c file if the compilation fails
3240
3241 2/6
3242 ---
3243bashhist.c
3244 - added new variable `force_append_history' that will force the
3245 history list to be appended to the history file at shell exit
3246 - new function, maybe_append_history, to append any history lines
3247 from the current session to the history file. Used by history -a
3248
3249builtins/bind.def
3250 - changed the `-d' option to -p
3251
3252builtins/set.def
3253 - added `allenv' as a -o synonym for `set -k'. Now all of the
3254 single-letter shell options have -o equivalents
3255
3256builtins/shopt.def
3257 - added -p option to display shell options, like other builtins
3258 - added `interactive_comments' as a shell option, like set -o
3259
3260builtins/bind.def, builtins/history.def, builtins/enable.def
3261 - changed use of multiple variables to hold option flag settings to
3262 one variable with bits representing flag values
3263
3264documentation/bash.1, documentation/features.texi
3265 - changed the description of the `bind' builtin for the new -p option
3266 - changed the description of the `set' builtin for the new
3267 `-o allenv' option
3268 - updated the description of the `shopt' builtin
3269
3270builtins/history.def
3271 - changed -a option to use maybe_append_history
3272
3273subst.c
3274 - changed the substring/subarray code to make negative offsets
3275 count backwards from the end of the string or array
3276
3277builtins/bashgetopt.c
3278 - added option modifiers `;' (argument is optional) and `#'
3279 (argument is optional, but if present must be numeric)
3280
3281builtins/hash.def
3282 - converted to use builtin_getopt
3283 - broke code out into a new function: add_hashed_command
3284
3285 2/7
3286 ---
3287builtins/getopt.c
3288 - changed to save state to avoid relying on `nextchar' staying the
3289 same across calls to sh_getopt [in 1.14.4]
3290 - added a function to restore `nextchar' from this saved state
3291 [in 1.14.4]
3292 - removed some dead code
3293
3294builtins/getopts.def
3295 - call function to restore sh_getopt state when parsing explicitly
3296 supplied arguments rather than the positional parameters [in 1.14.4]
3297
3298lib/readline/vi_mode.c
3299 - fixed an off-by-one error in _rl_vi_done_inserting that put the
3300 \0 in vi_insert_buf at offset `len' instead of `len - 1'
3301
3302lib/readline/complete.c
3303 - print_filename now filters out control characters and displays
3304 them in printable format, rather than relying on the tty driver
3305 to do the right thing [in 1.14.4]
3306
3307 2/8
3308 ---
3309lib/posixheaders/stdc.h
3310 - test for each special keyword being defined individually, rather
3311 than just testing on `const' [in 1.14.4]
3312
3313lib/readline/util.c
3314 - new function _rl_abort_internal; rl_abort just calls this
3315
3316nojobs.c
3317 - include error.h for extern function definitions [in 1.14.4]
3318
3319builtins/ulimit.def
3320 - include <unistd.h> if HAVE_UNISTD_H is defined
3321 - use HAVE_LIMITS_H to decide whether or not to include <limits.h>
3322
3323variables.c, subst.c, builtins/set.def
3324 - removed special handling of `noclobber' variable
3325
3326builtins/set.def
3327 - new function set_shellopts to set up the $SHELLOPTS variable
3328 based on the values of the set -o options; `set' calls this
3329 function whenever one of the options is changed
3330 - new function parse_shellopts to take the value of SHELLOPTS and
3331 turn on each option found therein
3332 - new function initialize_shell_options to parse any inherited
3333 value of $SHELLOPTS and set up $SHELLOPTS
3334
3335shell.c
3336 - call initialize_shell_options at the end of shell_initialize()
3337
3338execute_cmd.c, general.c
3339 - moved extract_colon_unit from execute_cmd.c to general.c
3340
3341execute_cmd.h, general.h
3342 - moved extern declaration of extract_colon_unit from
3343 execute_cmd.h to general.h
3344
3345documentation/{bash.1,features.texi}
3346 - documented SHELLOPTS
3347
3348 2/18
3349 ----
3350builtins/{shopt,pushd,jobs,umask}.def
3351 - removed the `longjobs', `longdirs', `pushd_home' and `symbolic_umask'
3352 options
3353
3354lib/readline/{histexpand,histsearch,histfile}.c, lib/readline/histlib.h
3355 - new files, split off from old history library history.c
3356
3357lib/readline/history.c, lib/readline/history.h
3358 - new function clear_history() to clear the history list
3359
3360lib/readline/doc/hstech.texinfo
3361 - documented clear_history ()
3362
3363builtins/pushd.def
3364 - new function clear_directory_stack() to delete all elements of
3365 the dir stack
3366 - new -c option for `dirs' to clear directory stack
3367 - new function get_dirstack_index for dirs -N and dirs +N to use
3368 - new function get_dirstack_element(i, dir) for use by other parts of
3369 the shell that want the functionality of dirs -N and dirs +N
3370 (dir is 1 for dirs +N, -1 for dirs -N)
3371 - new function set_dirstack_element(i, dir, val) for use by other
3372 parts of the shell to change values in the dirstack (dir is -1
3373 for dirs -N, +1 for dirs +N). Used when assigning to $DIRSTACK.
3374
3375builtins/history.def
3376 - new -c option to clear the history list
3377
3378documentation/bash.1, documentation/features.texi
3379 - removed no-longer-valid shopt options
3380 - documented new dirs -c option
3381 - documented new history -c option
3382 - documented new \T and \H prompt escape sequences
3383 - documented new $DIRSTACK dynamic array variable
3384 - documented the new expand-glob and list-glob readline commands
3385
3386variables.c
3387 - set PS4 to its default value of `+ ', so that unsetting it will
3388 disable the tracing characters [in 1.14.4]
3389 - new framework for dynamic array variables -- each place an
3390 array index is assigned to, a test is made. if a dynamic
3391 assignment function exists, it is called with args `self',
3392 the index being assigned to, and the new value
3393 - new variable `$DIRSTACK', a dynamic array variable that holds
3394 the current contents of the directory stack. You can even
3395 change the stack by assigning to thie variable
3396
3397shell.c
3398 - changed indirection_level_string to return the null string if
3399 $PS4 is unset or null [in 1.14.4]
3400
3401parse.y
3402 - new \H prompt escape for hostname up to first `.'; changed \h
3403 to return full hostname (like \w/\W)
3404 - new \T prompt escape for 12-hour time
3405
3406bashline.c
3407 - new readline functions to expand glob patterns and insert or
3408 list the expansions (special completion functions)
3409
3410
3411 2/20
3412 ----
3413builtins/pushd.def
3414 - new code for `pushd -n' and `popd -n' to inhibit cd when
3415 adding or removing directories from the stack
3416 - broke functionality off into separate functions for use by the
3417 $DIRSTACK manipulation functions
3418
3419 2/21
3420 ----
3421lib/readline/kill.c
3422 - new functions to copy words to the kill ring, backward or
3423 forward
3424
3425lib/readline/readline.h
3426 - extern declarations for rl_copy_{backward,forward}_word
3427
3428
3429lib/readline/funmap.c
3430 - new bindable readline commands: copy-backward-word and
3431 copy-forward-word to copy portions of the line to the kill
3432 ring without deleting them
3433
3434documentation/{bash.1,readline.3}, lib/readline/doc/hsuser.texinfo
3435 - documented the new copy-backward-word and copy-forward-word
3436 readline commands
3437
3438mailcheck.c, config.h
3439 - the declaration of DEFAULT_MAIL_PATH is now only in config.h
3440 and used by mailcheck.c and variables.c. There is no need to
3441 use DEFAULT_MAIL_PATH_LEN; `sizeof' does the job [in 1.14.4]
3442
3443 2/22
3444 ----
3445support/mksysdefs
3446 - changes to fix `RELEASE' if it ends up being set to the empty string
3447 [in 1.14.4]
3448 - check for amdahl UTS [in 1.14.4]
3449 - check for SGI Irix version 6.x [in 1.14.4]
3450
3451machines.h
3452 - new entry for Amdahl UTS [in 1.14.4]
3453 - changes to the SGI entry for Irix 6.x [in 1.14.4]
3454
3455 2/23
3456 ----
3457machines.h
3458 - changes for BSD/OS 2.0 (M_OS now set to `BSD_OS') [in 1.14.4]
3459
3460support/mksysdefs
3461 - change to recognize BSD/OS 2.0 and set SYSDEF to BSDI2 [in 1.14.4]
3462
3463siglist.h
3464 - don't declare sys_siglist on BSD/OS 2.0 [in 1.14.4]
3465
3466 2/24
3467 ----
3468parse.y
3469 - if reset_parser is called while the prompt command is being
3470 executed because of a syntax error in $PROMPT_COMMAND, an
3471 infinite loop results. set token_to_read back to 0 at the
3472 end of execute_prompt_command to stop the looping [in 1.14.4]
3473
3474 2/25
3475 ----
3476mailcheck.h
3477 - new header file for mail-checking and related definitions
3478 - declaration of DEFAULT_MAIL_PATH is now here
3479
3480mailcheck.c
3481 - new function, make_default_mailpath, which constructs a default
3482 $MAILPATH string from DEFAULT_MAIL_PATH [in 1.14.4]
3483 - change remember_mail_dates to call make_default_mailpath
3484 [in 1.14.4]
3485
3486externs.h
3487 - moved function declarations for functions in mailcheck.c to
3488 mailcheck.h
3489
3490variables.c
3491 - change initialize_shell_variables to call make_default_mailpath
3492 [in 1.14.4]
3493 - removed some unneeded variables in initialize_shell_variables
3494
3495 2/26
3496 ----
3497lib/readline/callback.c
3498 - new file with readline callback function interface
3499
3500lib/readline/rlconf.h
3501 - new READLINE_CALLBACKS define for the readline callback code to
3502 be compiled in and available
3503
3504lib/readline/readline.c
3505 - broke readline_internal into three functions: readline_internal_setup,
3506 readline_internal_charloop, and readline_internal_teardown
3507 - changes for READLINE_CALLBACKS
3508
3509lib/readline/readline.h
3510 - extern declarations for the readline callback code
3511
3512cpp-Makefile
3513 - added lib/readline/callback.c to the list of readline files
3514
3515lib/readline/input.c
3516 - added a layer of indirection to allow the user to specify the
3517 function that reads a character from rl_instream. The variable
3518 name is rl_getc_function, set by default to rl_getc
3519
3520 2/27
3521 ----
3522lib/readline/display.c
3523 - added a variable rl_redisplay_function to allow an application-
3524 specified redisplay function, for those apps that want to control
3525 redisplay
3526
3527lib/readline/readline.c
3528 - extern declarations for rl_getc_function and rl_redisplay_function
3529
3530lib/readline/{readline,display,isearch,search,parens}.c
3531 - changed to call through rl_redisplay_function rather than
3532 rl_redisplay directly
3533
3534parse.y
3535 - try to avoid some work in reset_readline_prompt and prompt_again
3536 if the prompt is the empty or null string [in 1.14.4]
3537
3538lib/readline/readline.c
3539 - call rl_expand_prompt unconditionally [in 1.14.4]
3540
3541lib/readline/display.c
3542 - short-circuit out of rl_expand_prompt if the prompt string is null
3543 after clearing out the saved local prompt values. This allows
3544 $PS2 to be set to "" [in 1.14.4]
3545
3546lib/readline/doc/rltech.texinfo
3547 - documented the callback code and functions
3548 - documented rl_getc_function and rl_redisplay_function
3549
3550lib/readline/{callback,readline,rltty,signals}.c
3551 - added layer of indirction for terminal prep and deprep, with
3552 rl_term_prep_function and rl_term_deprep_function. These are
3553 set by default to rl_prep_terminal and rl_deprep_terminal,
3554 respectively
3555
3556lib/readline/readline.h
3557 - make rl_term_prep_function and rl_term_deprep_function available
3558 to callers
3559
3560 3/1
3561 ---
3562lib/readline/complete.c
3563 - broke the (long, complicated) rl_complete_internal code into a
3564 number of separate functions:
3565
3566 find_completion_word
3567 gen_completion_matches
3568 remove_duplicate_matches
3569 display_matches
3570 insert_text
3571 insert_match
3572 append_to_match
3573 insert_all_matches
3574
3575 - made some efficiency improvments to filename_completion_function
3576 - the completion ignore function is now called no matter what type
3577 of completion is being performed (as it should have been all along)
3578
3579lib/readline/rldefs.h
3580 - use #defines for the possible values ORed into `found_quote' by
3581 the completion code
3582
3583 3/2
3584 ---
3585make_cmd.c, general.c
3586 - moved make_word_array from make_cmd.c to general.c, renamed to
3587 word_list_to_argv, extended it to optionally not malloc all of
3588 the strings and to reserve space at the start of the array
3589
3590execute_cmd.c
3591 - changed to use word_list_to_argv, not mallocing space for the
3592 strings
3593
3594builtins/common.c, builtins/common.h
3595 - new function make_builtin_argv, which uses word_list_to_argv
3596 and reserves 1 slot at the beginning for the command name
3597
3598builtins/exec.def
3599 - changed to use word_list_to_argv
3600
3601builtins/{getopts,test}.def
3602 - changed to use make_builtin_argv
3603
3604subst.c
3605 - new function match_pattern_char, to see if the first char of
3606 a string has a chance to match a given pattern (test against
3607 the first char of the pattern); used by match_pattern in the
3608 MATCH_ANY case
3609
3610 3/3
3611 ---
3612jobs.c
3613 - renamed flush_child to sigchld to capture the functionality better
3614
3615array.c
3616 - new function array_pat_subst, to do pattern substitution on each
3617 element in an array
3618
3619array.h
3620 - extern declaration for array_pat_subst
3621
3622subst.c
3623 - new function pat_subst to do pattern matching and substitution on
3624 a string
3625 - new function parameter_brace_pat_subst to implement
3626 ${v/[/]pat[/sub]}; calls pat_subst for simple vars,
3627 pos_params_pat_subst to do substitution on the positional params,
3628 and array_pat_subst for things like ${v[@]/p/r}
3629
3630subst.h
3631 - extern declaration for pat_subst so array.c can find it
3632
3633 3/6
3634 ---
3635parse.y
3636 - <>filename now dups filename to file descriptor 0 for both input
3637 and output even when not in posix.2 mode
3638
3639bashline.c
3640 - add the globbing characters to the list of characters that need
3641 to be quoted by filename completion
3642
3643jobs.h
3644 - new convenience macros:
3645 RUNNING, STOPPED, DEADJOB - to test a job's state
3646 IS_FOREGROUND, IS_NOTIFIED, IS_JOBCONTROL - flags
3647
3648jobs.c, builtins/{kill,fg_bg}.def
3649 - changed to use new jobs.h macros
3650
3651 3/7
3652 ---
3653array.c, array.h
3654 - new function dup_array_subrange(a, s, e) to make a new array
3655 out of the elements of array A between S and E, inclusive
3656 - add `quoted' parameters to array_subrange and array_pat_subst
3657 to preserve proper quoting of elements when expanding things
3658 like "${av[@]/xx/yy}"
3659 - new function array_quote to quote the members of an array like
3660 the functions in subst.c
3661
3662subst.c
3663 - pass the quoted flag to array_subrange and array_pat_subst
3664 - quote_string is no longer static
3665
3666subst.h
3667 - extern declaration for quote_string
3668
3669builtins/hash.def
3670 - added a -p pathname option to specify a pathname for the command
3671 name to be hashed. With -p, no path search is performed.
3672
3673lib/readline/histexpand.c
3674 - broke history_tokenize off into history_tokenize_internal and
3675 added two arguments: a character index and a word index. If
3676 the char index is >= 0, the word index will be modified to point
3677 into the returned array of strings to the word surrounding that
3678 particular character index
3679 - new function history_find_word(line, ind) to return the word
3680 containing the character at index IND in LINE
3681 - new variable search_match, found by history_find_word, to hold the
3682 word last matched by a !?string? search
3683 - corrected a problem with the `%' modifier: it should insert the
3684 word last matched, not the last search string
3685
3686 3/8
3687 ---
3688cpp-Makefile
3689 - changed INSTALL_PROGRAM and INSTALL_DATA to use support/install.sh
3690 - changed `install' target to not explicitly save the old version of
3691 bash in `bash.old'; let install take care of it
3692
3693shell.c
3694 - new static variable `running_under_emacs', set to 1 if the
3695 variable `EMACS' is in the startup environment, and to 2 if
3696 we're running under the `eterm' terminal emulator
3697 - send an escape sequence to eterm if running_under_emacs is 2
3698 after executing any $PROMPT_COMMAND to tell it the current
3699 directory
3700
3701 3/9
3702 ---
3703builtins/ulimit.def
3704 - made getting -u work for systems that have a MAXUPRC define.
3705 it still cannot be set without RLIMIT_NPROC
3706
3707shell.c
3708 - include trap.h for sig definitions
3709
3710builtins/common.h, subst.h, general.h, externs.h
3711 - more extern function declarations
3712
3713bashhist.c
3714 - new function, bash_history_disable(), to turn off history and
3715 history expansion
3716 - bash_history_disable now sets history_expansion_inhibited
3717
3718bashline.h
3719 - new file with extern declarations from bashline.c
3720
3721parse.y, bashhist.c, builtins/bind.def, subst.c, sig.c
3722 - include bashline.h
3723
3724 3/10
3725 ----
3726lib/glob/glob.h
3727 - new file with extern declarations for local glob library
3728
3729shell.c
3730 - include glob.h, mailcheck.h
3731
3732cpp-Makefile
3733 - changes to dependencies due to mailcheck.h, bashline.h, glob.h
3734
3735 3/13
3736 ----
3737execute_cmd.c
3738 - new function execute_connection to execute commands of type
3739 cm_connection
3740 - new function execute_pipeline, to execute pipelines
3741
3742lib/readline/rltty.c
3743 - add a `tty' argument to the set_winsize function/macro, the
3744 non-shell version needs it
3745
3746 3/14
3747 ----
3748parse.y
3749 - added \a (bell) and \e (escape) prompt string escape sequences
3750
3751 3/16
3752 ----
3753lib/readline/display.c
3754 - fixed bug in update_line that caused stray characters to be left on
3755 lines after the first if characters are deleted so that the first
3756 line becomes exactly as long as the screen width [in 1.14.4]
3757
3758lib/readline/doc-support
3759 - brought in the GNU getopt because texindex needs it
3760
3761documentation/Makefile
3762 - adopted the BSD convention of a suffix of `.0' for formatted
3763 manual pages
3764
3765 3/17
3766 ----
3767support/inpath
3768 - a script to find out if a particular command name appears in
3769 a directory in $PATH [in 1.14.4]
3770
3771support/mksysdefs
3772 - changed to use inpath to find `ranlib' [in 1.14.4]
3773
3774 3/18
3775 ----
3776bashline.c
3777 - include bashline.h
3778 - removed the DYNAMIC_HISTORY_COMPLETION define; that code is now
3779 included unconditionally
3780 - renamed ETCHOSTS to DEFAULT_HOSTS_FILE; moved definition to
3781 bashline.h
3782 - moved definition of BRACE_COMPLETION to config.h
3783
3784config.h
3785 - conditional definition of BRACE_COMPLETION is now here
3786
3787pathnames.h
3788 - new file with defines that are absolute pathnames
3789
3790shell.h
3791 - include pathnames.h
3792
3793mailcheck.h
3794 - def of DEFAULT_MAIL_PATH now moved to pathnames.h
3795
3796shell.c
3797 - def of SYS_PROFILE moved to pathnames.h
3798
3799alias.h
3800 - removed a bunch of extra definitions
3801
3802lib/readline/{vi_mode.c,bind.c}
3803 - removed superfluous STATIC_MALLOC code
3804
3805variables.c
3806 - removed SHADOWED_ENV code
3807
3808 3/20
3809 ----
3810machines.h
3811 - don't define USG or USGr3 for linux machines [in 1.14.4]
3812 - change REVERSED_SETVBUF_ARGS to SETVBUF_REVERSED for autoconf
3813 compatibility
3814
3815shell.c
3816 - change REVERSED_SETVBUF_ARGS to SETVBUF_REVERSED for autoconf
3817 compatibility
3818
3819support/mksysdefs, maxpath.h
3820 - change HAVE_SYS_PARAM to HAVE_SYS_PARAM_H for autoconf
3821 compatibility
3822
3823support/mksysdefs, jobs.h
3824 - use HAVE_SYS_WAIT_H
3825
3826machines.h, error.c
3827 - change HAVE_VFPRINTF to HAVE_VPRINTF for autoconf compatibility
3828
3829test.c
3830 - replace UID_T and GID_T with GETGROUPS_T, the size of the elements
3831 of the array returned by getgroups
3832
3833general.c
3834 - define HAVE_KILLPG if killpg() is present; compile in a replacement
3835 killpg if not
3836
3837machines.h, jobs.c
3838 - change BSD_GETPGRP to HAVE_BSD_PGRP
3839
3840sig.c
3841 - don't call initialize_siglist if HAVE_SYS_SIGLIST is defined, no
3842 longer use INITIALIZE_SIGLIST
3843
3844machines.h, lib/malloc/malloc.c
3845 - change NO_SBRK_DECL to SBRK_DECLARED
3846
3847 3/22
3848 ----
3849machines.h
3850 - BSD/OS 2.0 does not need INT_GROUPS_ARRAY in SYSDEP_CFLAGS
3851
3852lib/readline/rldefs.h
3853 - don't check `Linux'; just include <termcap.h> if HAVE_TERMCAP_H
3854 is defined
3855
3856builtins/command.def
3857 - changed get_standard_path to use HAVE_CONFSTR
3858
3859execute_cmd.c
3860 - execute_simple_command no longer uses alloca
3861 - don't check RISC6000 anymore when deciding whether to use
3862 #pragma alloca
3863
3864execute_cmd.c, shell.c
3865 - check for ultrix instead of Ultrix when calling alloca(0)
3866
3867jobs.h
3868 - check HAVE_UNISTD_H to see whether to declare fork, getpid,
3869 and getpgrp
3870
3871builtins/common.c
3872 - include <signal.h> for NSIG
3873
3874sig.h
3875 - don't define SIGABRT as SIGIOT unless SIGIOT is defined
3876
3877jobs.c
3878 - check for ultrix instead of Ultrix
3879
3880 3/23
3881 ----
3882general.c, general.h
3883 - new function check_dev_tty, which makes sure we can open
3884 /dev/tty
3885
3886shell.c
3887 - call check_dev_tty instead of having the code inline
3888
3889posixstat.h
3890 - removed references to isc386
3891
3892general.h
3893 - code to define one of TERMIOS_TTY_DRIVER, TERMIO_TTY_DRIVER,
3894 or NEW_TTY_DRIVER
3895
3896jobs.c, nojobs.c
3897 - use the general.h code to define the tty driver types
3898
3899 3/24
3900 ----
3901builtins/declare.def
3902 - new -p option to display variables and their values and attributes
3903 `declare -p xxx' displays attribs and value of var `xxx'
3904
3905builtins/setattr.def
3906 - new function to display the attributes and value of a particular
3907 variable; used by set_or_show_attributes
3908 - new function to look up a variable by name and show that name's
3909 attributes and value
3910
3911builtins/common.c
3912 - declarations for new functions in setattr.def
3913
3914variables.c
3915 - don't set a default value for MAILPATH in initialize_shell_variables;
3916 let remember_mail_dates take care of it [in 1.14.4]
3917
3918mailcheck.c
3919 - fixed an off-by-one bug in make_default_mailpath [in 1.14.4]
3920
3921 3/28
3922 ----
3923[changes for autoconf-generated config files]
3924
3925lib/malloc/malloc.c
3926 - use HAVE_GETPAGESIZE, HAVE_BSD_SIGNALS, HAVE_POSIX_SIGNALS
3927
3928trap.c
3929 - remove tests for USG and USGr4
3930 - test on HAVE_POSIX_SIGNALS rather than _POSIX_VERSION
3931 - use MUST_REINSTALL_SIGHANDLERS define to decide whether trap_handler
3932 should call signal again
3933
3934getcwd.c
3935 - redid the directory includes for autoconf compatibility
3936 - use HAVE_LSTAT instead of testing for S_ISLNK
3937 - use STRUCT_DIRENT_HAS_D_INO
3938 - include memalloc.h for alloca define
3939
3940general.h
3941 - cleaned up strchr, strrchr definitions
3942 - removed tests against USG
3943 - use HAVE_MEMMOVE instead of MEMMOVE_MISSING
3944
3945jobs.c
3946 - use HAVE_WAIT3, MUST_REINSTALL_SIGHANDLERS, GETPGRP_VOID
3947
3948mailcheck.h
3949 - removed definition of DEFAULT_MAIL_DIRECTORY; now set by
3950 autoconf in config.h
3951
3952shell.c
3953 - remove checks on USG, just check for HAVE_GETPW_DECLS
3954 - use C_ALLOCA define
3955 - redid the isnetconn() code using HAVE_SYS_SOCKET_H,
3956 HAVE_GETPEERNAME, SVR4 and SVR4_2
3957
3958general.c
3959 - use HAVE_KILLPG, HAVE_RESTARTABLE_SYSCALLS, HAVE_UNAME,
3960 ULIMIT_MAXFDS, HAVE_TIMEVAL, HAVE_TIMES
3961
3962lib/readline/rldefs.h
3963 - redid the tty driver definitions using HAVE_TERMIOS_H, etc.
3964 - don't define anything having to do with signal type
3965
3966lib/glob/glob.c
3967 - redid the DIRENT defines and includes
3968 - redid other includes to remove dependencies on USG and system
3969 type (e.g., NeXT)
3970
3971builtins/times.def
3972 - changed to use HAVE_GETRUSAGE, HAVE_TIMEVAL, HAVE_TIMES, and
3973 the autoconf way to include <sys/time.h> and <time.h>
3974
3975builtins/ulimit.def
3976 - changed to use HAVE_GETRLIMIT
3977 - removed test of USG being defined
3978
3979siglist.h
3980 - changed to use SYS_SIGLIST_DECLARED, HAVE_UNDER_SYS_SIGLIST, and
3981 HAVE_STRSIGNAL
3982
3983print_cmd.c
3984 - use PRINTF_DECLARED
3985
3986builtins/command.def
3987 - use HAVE_CONFSTR along with _CS_PATH to get the standard path
3988
3989execute_cmd.c
3990 - only compile in execute_shell_script if HAVE_HASH_BANG_EXEC is not
3991 defined
3992
3993nojobs.c
3994 - use HAVE_SIGINTERRUPT, HAVE_KILLPG, HAVE_POSIX_SIGNALS,
3995 MUST_REINSTALL_SIGHANDLERS, HAVE_WAITPID, *_TTY_DRIVER defines
3996
3997test.c
3998 - set up a new `getmaxgroups' define, moving the code out of inline
3999 - eliminate use of GETGROUPS_T
4000
4001variables.c
4002 - use CAN_REDEFINE_GETENV
4003
4004sig.c, sig.h
4005 - use HAVE_POSIX_SIGNALS, MUST_REINSTALL_SIGHANDLERS
4006
4007pathnames.h
4008 - removed the default mail directory defines; now set by autoconf
4009
4010oslib.c
4011 - new file, functions from general.c that are unix-version variable
4012
4013general.h
4014 - slightly changed function declarations for use by oslib.c
4015
4016support/bashbug.sh
4017 - changed @xxx@ to !xxx! for sed substitutions to avoid conflicts
4018 with autoconf substitutions in the Makefile
4019 - added MACHTYPE variable
4020
4021mailcheck.c
4022 - changed DEFAULT_MAIL_PATH to DEFAULT_MAIL_DIRECTORY, since that
4023 more clearly defines its function
4024
4025lib/readline/rltty.h
4026 - new file, to include the correct tty driver #include file
4027
4028lib/readline/rltty.c
4029 - include rltty.h
4030
4031lib/malloc/malloc.c
4032 - make systems with Posix signals block all signals while malloc
4033 is executing
4034
4035 3/29
4036 ----
4037input.c
4038 - use off_t as the type of a seek offset, rather that int or long
4039
4040variables.c, oslib.c
4041 - moved `getenv' from variables.c to oslib.c
4042
4043 3/31
4044 ----
4045sig.c, sig.h
4046 - new function, jump_to_top_level, which just calls longjmp with
4047 top_level as an argument -- here to isolate calls to longjmp
4048
4049subst.c
4050 - replaced calls to longjmp with jump_to_top_level
4051
4052bashjmp.h
4053 - new file with setjmp/longjmp defines and declarations
4054
4055shell.h, nojobs.c
4056 - include bashjmp.h in place of setjmp.h
4057
4058shell.c, sig.c, execute_cmd.c, unwind_prot.h, expr.c,
4059builtins/{return,source}.def
4060 - change to use new defs in bashjmp.h
4061
4062subst.c
4063 - make sure PAT and REP in pattern substitution are run through
4064 expand_string_unsplit
4065
4066builtins/set.def
4067 - don't try to blindly dereference the value returned by
4068 find_flags in set_shellopts
4069
4070 4/2
4071 ---
4072aclocal.m4, config.h.in, config.h.top, config.h.bot, configure.in,
4073support/install.sh, support/config.guess, support/config.sub
4074 - new files for (now official) autoconf-based configuration
4075
4076Makefile.in, builtins/Makefile.in,
4077lib/{doc-support,malloc,glob,termcap,tilde,readline}/Makefile.in
4078 - new Makefiles for autoconf
4079
4080[additionally, all source files now include config.h]
4081
4082 4/3
4083 ---
4084array.c, array.h
4085 - index_t --> arrayind_t, because some systems define index_t in
4086 <sys/types.h>
4087
4088 4/4
4089 ---
4090aclocal.m4
4091 - fix test for broken dup2
4092
4093lib/*/Makefile.in
4094 - make all object files depend on $(BUILD_DIR)/config.h
4095
4096 4/5
4097 ---
4098array.c
4099 - fixed problems in empty_array: need to reset max_index
4100 and max_size, and remove the links in the element chain
4101 after freeing them
4102
4103jobs.c
4104 - new functions to save an array of status values for each
4105 foreground job that exits (degenerate case is to have a
4106 single-process job exit and have a 1-element array)
4107 - new function to set a shell array variable `PIPESTATUS'
4108 which holds the status values from each member of the
4109 last-executed pipeline that spawned children
4110
4111documentation/bash.1
4112 - documented $PIPESTATUS
4113
4114 4/6
4115 ---
4116configure.in
4117 - added new --with-afs argument to #define AFS for execute_cmd.c
4118
4119 4/10
4120 ----
4121builtins/ulimit.def
4122 - use sysconf(_SC_CHILD_MAX) to find the maximum number of child
4123 proceeses per user if HAVE_SYSCONF and _SC_CHILD_MAX are both
4124 defined and RLIMIT_NPROC is not
4125
4126 4/12
4127 ----
4128lib/readline/undo.c
4129 - new variable, local to library, to keep track of the number of
4130 `open' undo groups (UNDO_BEGIN without corresponding UNDO_END)
4131 - new function _rl_fix_last_undo_of_type to modify start and end
4132 bounds of last undo record of a specified type
4133
4134lib/readline/vi_mode.c
4135 - _rl_vi_done_inserting now calls rl_end_undo_group if the count
4136 of unclosed groups is > 0
4137 - fixed rl_vi_change_to to save an undo record when redoing and
4138 to fix the buffer corruption when doing `u' undo after a `.'
4139 redo of `C'
4140
4141 4/13
4142 ----
4143unwind_prot.h
4144 - changed to use a union { char *s; int i; } when unwind-protecting
4145 integers to force correct alignment on machines where ints and
4146 pointers differ in size
4147
4148lib/readline/readline.c
4149 - new variable Keymap rl_executing_keymap, which is set to the
4150 keymap the last function was invoked out of
4151
4152lib/readline/bind.c
4153 - new variable Keymap rl_binding_keymap, which is set to the last
4154 keymap a function and key sequence were bound in
4155
4156 4/17
4157 ----
4158general.c
4159 - removed xmalloc, xrealloc, xfree to xmalloc.c
4160
4161lib/malloc/Makefile.in
4162 - MALLOC and ALLOCA are both set by autoconf
4163 - need to provide some empty stub file to make up the library
4164 in case neither malloc.c and alloca.c are compiled into the
4165 shell
4166
4167lib/malloc/gmalloc.c
4168 - new file, GNU libc malloc code
4169
4170Makefile.in
4171 - new source file, xmalloc.c, new object file, xmalloc.o
4172
4173general.h
4174 - changed type of size argument to xmalloc, xrealloc to `size_t'
4175
4176configure.in
4177 - changes for new argument `--with-glibc-malloc' that includes
4178 gmalloc.o in libmalloc.a
4179
4180 4/18
4181 ----
4182xmalloc.c
4183 - if malloc or realloc return null, report in the error message
4184 how many bytes have been allocated
4185
4186lib/readline/display.c
4187 - changed redisplay code to use an array of positions in the visible
4188 and invisible lines at which to break lines instead of simply
4189 calculating based on the screenwidth and number of invisible
4190 characters. In the future, this will allow newlines embedded in
4191 the lines to display to be handled better
4192
4193[Bash-1.14.4 released to net]
4194
4195 4/19
4196 ----
4197lib/readline/signals.c
4198 - changed last call to signal() to call rl_set_sighandler()
4199
4200 4/20
4201 ----
4202lib/readline/display.c
4203 - changed some ascii-specific code to use CTRL_CHAR and UNCTRL
4204 - finished up the changes that keep an array of line breaks
4205
4206shell.h
4207 - moved #define constants for parameter pattern substitution here
4208 from subst.c
4209
4210subst.c
4211 - changed the pattern substitution functions to take a `flags'
4212 parameter, which subsumes the match type, global replacement
4213 flag, and quoted variables
4214 - changed the pattern substitution functions to handle the `#'
4215 and `%' match qualifiers, which anchor the match at the
4216 beginning and end of the string, respectively
4217
4218shell.c
4219 - moved the code that turns off privileged mode into a function
4220 named `disable_priv_mode'
4221 - if the shell is running setuid or setgid and `-p' is not
4222 supplied, turn off privileged mode and reset the effective
4223 uid/gid
4224
4225 4/21
4226 ----
4227subst.c
4228 - added a `quoted' paramter to parameter_brace_remove_pattern;
4229 Posix.2 says that the pattern is parsed differently if the
4230 entire expression is double-quoted
4231 - `getpattern' now takes a second argument, `quoted'
4232 - fixed `getpattern' to correctly handles a pattern spec when
4233 the whole expression is double-quoted. Posix.2 says that
4234 quote characters inside the pattern spec don't quote any
4235 special pattern chars if the whole thing is double-quoted.
4236 For example, the `*' in "${foo#'*'}" is not quoted, and the
4237 single quotes must appear literally.
4238
4239Makefile.in
4240 - add `documentation' as a dependency of `.made'
4241
4242 4/24
4243 ----
4244Makefile.in
4245 - added `installdirs' target that makes bindir, infodir, mandir,
4246 and man3dir [in 1.14.5 cpp-Makefile]
4247
4248 4/25
4249 ----
4250builtins/fc.def
4251 - fixed problem with `fc -l' that occurred when fewer than 16 lines
4252 were in the history list [in 1.14.5]
4253
4254 5/1
4255 ---
4256Makefile.in, {builtins,documentation}/Makefile.in, lib/*/Makefile.in
4257 - fixed up the various `clean' targets to agree with Gnu coding
4258 standards
4259
4260 5/2
4261 ---
4262lib/readline/complete.c
4263 - made insert_all_matches correctly quote each of the filenames
4264 inserted into the line, if necessary
4265
4266config.h.top
4267 - surround definitions of DEFAULT_PATH_VALUE and STANDARD_UTILS_PATH
4268 with #ifndef/#endif to allow them to be overridden from the command
4269 line
4270
4271builtins/set.def
4272 - changed set -o allenv to set -o keyword for ksh88 compatibility
4273
4274documentation/{bash.1,features.texi}
4275 - changed set -o allenv to set -o keyword
4276
4277builtins/setattr.def
4278 - added a `nodefs' attribute to set_or_show_attributes,
4279 show_var_attributes, and show_name_attributes to inhibit printing
4280 of definition as well as name
4281
4282builtins/declare.def
4283 - changed calls to set_or_show_attributes, and show_var_attributes
4284 accordingly
4285
4286 5/3
4287 ---
4288Makefile.in
4289 - LIBPATH -> LIBSUBDIR
4290
4291 5/4
4292 ---
4293lib/readline/bind.c
4294 - renamed readline variable meta-flag to be input-meta
4295
4296documentation/bash.1, lib/readline/doc/rluser.texinfo
4297 - changed meta-flag to input-meta
4298
4299documentation/Makefile.in
4300 - use groff -Tascii to convert .1 -> .0
4301
4302subst.c
4303 - new function, strip_trailing_ifs_whitespace, does the obvious
4304
4305builtins/read.def
4306 - call strip_trailing_ifs_whitespace before assigning last
4307 variable to remainder of input string [in 1.14.5]
4308
4309 5/5
4310 ---
4311builtins/hashcom.h
4312 - changed check_dot member of the PATH_DATA struct to flags, and
4313 added a HASH_CHKDOT define to replace the check_dot semantics
4314 - add HASH_RELPATH define for flags value
4315
4316builtins/hash.def, builtins/common.c
4317 - instead of xxx->check_dot, use (xxx->flags & HASH_CHKDOT)
4318
4319builtins/hash.def
4320 - if the full pathname to which a command is being hashed does
4321 not begin with a `/', set the HASH_RELPATH flag for it
4322
4323builtins/common.c
4324 - if a hashed filename as HASH_RELPATH set, check ./filename,
4325 returning null if that filename is not executable
4326
4327execute_cmd.c, general.c, execute_cmd.h, general.h
4328 - moved same_file and check_binary_file from execute_cmd.c to
4329 general.c
4330
4331hashlib.c, Makefile.in
4332 - renamed hash.c to hashlib.c
4333
4334hashlib.h, Makefile.in, builtins/Makefile.in, alias.h, variables.h,
4335execute_cmd.c, hashlib.c, builtins/hashcom.h
4336 - renamed hash.h to hashlib.h
4337
4338variables.c, alias.c
4339 - removed inclusion of `hash.h'; header files already include
4340 correct file
4341
4342Makefile.in
4343 - new rule to remake all the Makefiles (`make Makefiles')
4344 - more changes to adhere to GNU coding standards for the various
4345 flavors of `clean' targets
4346
4347 5/8
4348 ---
4349documentation/Makefile.in
4350 - use `texi2dvi' to make dvi files rather than tex and texindex
4351 [in 1.14.5]
4352 - don't install `bash_builtins.1' [in 1.14.5]
4353
4354Makefile.in
4355 - removed instances of doc-support/texindex
4356
4357 5/9
4358 ---
4359make_cmd.c
4360 - new function make_bare_word, to make a WORD_DESC from a string but
4361 not to set any of its flags
4362 - broke make_word into make_bare_word and make_word_flags
4363 - fixed a bug in make_word_flags to make backslash-quoting a quoting
4364 character work right to not set the W_QUOTED flags
4365
4366subst.c, array.c, execute_cmd.c
4367 - call make_bare_word instead of make_word in situations where we
4368 don't want the flags set inadvertently
4369
4370 5/11
4371 ----
4372subst.c
4373 - removed special handling of $POSIX_PEDANTIC
4374
4375 5/12
4376 ----
4377shell.c
4378 - broke the code that fetches the uids and gids into a new
4379 function, uidget()
4380
4381subst.c
4382 - EUID and UID are no longer handled specially, since they're
4383 readonly
4384 - removed sv_uids function
4385 - merge sv_histfilesize into sv_histsize
4386
4387variables.c
4388 - instead of calling sv_uids from initialize_shell_variables,
4389 call uidset() instead
4390 - sv_uids -> uidset with mods to make it faster and avoid an
4391 extra call to free, malloc, and itos
4392
4393bashhist.c
4394 - call sv_histsize instead of sv_histfilesize
4395
4396 5/13
4397 ----
4398pathexp.c
4399 - moved setup_ignore_patterns here from bashline.c, so GLOBIGNORE
4400 works even when readline is compiled out of the shell
4401 - changed the ignore data structure to a `struct ignorevar',
4402 defined in pathexp.h
4403 - added functions to implement GLOBIGNORE
4404
4405bashline.c
4406 - setup_ignore_patterns now in pathexp.c
4407 - renamed _ignore_names to ignore_completion_names
4408
4409subst.c
4410 - new function sv_globignore to be called when GLOBIGNORE changes
4411 value
4412
4413documentation/{bash.1,features.texi}
4414 - documented GLOBIGNORE
4415
4416 5/15
4417 ----
4418documentation/texinfo.tex
4419 - upgraded to version 2.145 from autoconf-2.3 distribution
4420
4421 5/16
4422 ----
4423lib/readline/display.c
4424 - delicate surgery on rl_redisplay, update_line, and _rl_update_final
4425 to convert to using the line breaks array instead of assuming that
4426 lines wrap because they're too long and using absolute buffer
4427 positioning calculated from the screen width. Now the `lithist'
4428 shopt option works right
4429
4430lib/readline/complete.c
4431 - make sure insert_match doesn't double an opening quote character
4432 after make_quoted_replacement adds an opening quote [in 1.14.5]
4433 - make sure append_match doesn't double a closing quote character
4434 [in 1.14.5]
4435
4436quit.h
4437 - new macros: SETINTERRUPT, CLRINTERRUPT, ADDINTERRUPT, DELINTERRUPT
4438 to manipulate the value of interrupt_state
4439
4440trap.c, sig.c, jobs.c
4441 - changes to use the new macros from quit.h
4442
4443jobs.c
4444 - make an a job that exits due to SIGINT make the shell act as if
4445 it received the interrupt itself, but only if SIGINT is not
4446 trapped [in 1.14.5]
4447
4448 5/18
4449 ----
4450builtins/common.c
4451 - fix up find_hashed_filename and the HASH_RELPATH code. still need
4452 to use `shopt -s checkhash' to check the hashed pathnames. could
4453 fix this up more to make that unnecessary in the HASH_RELPATH case
4454
4455subst.c
4456 - new function get_array_value that does array subscripting for
4457 things like aa[1], for use by other parts of the shell like the
4458 expression evaluator
4459
4460expr.c
4461 - changes to make things like $(( aa[1] + aa[2])) work without
4462 using ${aa[1]}
4463
4464bashhist.c
4465 - converted the HISTIGNORE code to use the `struct ignorevar'
4466 framework, with a callback function histignore_item_func to
4467 set the HIGN_EXPAND flag if needed
4468
4469pathexp.c
4470 - made the `globignore' variable static
4471 - redid the code that removes ignored names from the `names' array
4472 in ignore_globbed_names to make it more efficient
4473
4474bashline.c
4475 - made the `fignore' variable static
4476
4477 5/20
4478 ----
4479Makefile.in
4480 - made the `distclean' target remove the Makefiles in subdirectories
4481 created by autoconf
4482
4483 5/22
4484 ----
4485builtins/command.def
4486 - don't allow `command -p' if the shell is restricted
4487
4488documentation/bash.1
4489 - documented the restriction on command -p for rbash
4490
4491 5/23
4492 ----
4493aclocal.m4
4494 - add a new macro BASH_CHECK_TYPE, based on AC_CHECK_TYPE, that
4495 allows the caller to specify the header files to be included
4496 in the test program and provides for a default value to be
4497 defined if the type is found in the system files
4498
4499configure.in
4500 - check for getrusage and gettimeofday functions/syscalls
4501 - use BASH_CHECK_TYPE to check for clock_t in sys/types.h and
4502 sys/times.h
4503 - use BASH_CHECK_TYPE to check for sigset_t instead of a special
4504 BASH_TYPE_SIGSET_T
4505 - use BASH_CHECK_TYPE to check for quad_t instead of BASH_QUAD_T
4506 - new argument --enable-command-timing to compile in the `time'
4507 reserved word and command timing
4508
4509general.c
4510 - print_time_in_hz takes a `clock_t', not a `time_t'
4511
4512execute_cmd.c
4513 - support for timing pipelines with a new function time_command
4514 - execute_command_internal calls time_command if it is passed a
4515 command with the CMD_TIME_PIPELINE bit set in command->flags
4516 - new functions difftimeval and addtimeval to do arithmetic on
4517 timeval structs with overflow
4518
4519parse.y
4520 - new production: pipeline_command, used by list1 and simple_list1
4521 - pipeline_command includes rules to handle `!' and time
4522 - code to recognize `time' as a reserved word
4523
4524print_cmd.c
4525 - new code to print `time ' before a command if the CMD_TIME_PIPELINE
4526 flag bit is turned on
4527
4528builtins/test.def
4529 - added description of string1 < string2 and string1 > string2 to
4530 the long doc
4531
4532test.c
4533 - added `<' and `>' string binary operators
4534
4535documentation/bash.1
4536 - documented the `time' reserved word and command timing
4537 - documented the new test `<' and `>' binary operators
4538
4539documentation/features.texi
4540 - documented the `time' reserved word and command timing
4541 - added more to the section detailing the differences between bash
4542 and sh
4543 - added descriptions of LINENO and ENV to the Ksh variables section
4544 - added description of echo to bash builtins section
4545 - added PPID, BASH, SHLVL to the Bash variables section
4546
4547subst.c
4548 - added a `quoted' parameter to extract_dollar_brace_string; changed
4549 all calls to it
4550
4551 5/24
4552 ----
4553builtins/let.def
4554 - wrote code for an `exp' builtin that treats all of its arguments
4555 as an expression, concatenates them like `eval', and runs the
4556 expression evaluator
4557
4558expr.c
4559 - added code to do the Posix.2 conditional operator: expr?expr:expr
4560 - added a `noeval' flag to suppress evaluation. currently it only
4561 suppresses assignment
4562 - added code to the && and || functions so that evaluation is
4563 suppressed in the part of the statement that is not supposed to
4564 be executed (a && b: set noeval if a is false; a || b; set
4565 noeval if a is true)
4566
4567 5/25
4568 ----
4569documentation/{bash.1,features.texi}
4570 - documented new `expr?expr:expr' conditional expression syntax
4571 now arithmetic evaluation is Posix.2-conformant
4572
4573lib/readline/readline.c
4574 - added several more locale names to the list of legal $LANG
4575 values
4576
4577subst.c
4578 - fixed a bug in parameter_brace_patsub: when replacing a string
4579 with nothing, rep was set to "", and the code attempted to
4580 free "", which the GNU malloc upchucked on
4581
4582bashhist.c
4583 - just add a line to the history if command_oriented_history is
4584 set to 1 and the current line in the command is > 1; don't
4585 even bother checking history_ignore
4586
4587parse.y
4588 - new variable `two_tokens_ago' to remember the token read before
4589 `token_before_that'
4590 - fix to history_delimiting_chars to make sure that no semicolon
4591 is added after `()' (assume its a function definition), but that
4592 a semicolon is added after other `)' (assume its a parenthesized
4593 command)
4594
4595 5/31
4596 ----
4597tests/run-all
4598 - put `.' first in $PATH and don't export ENV
4599 - set THIS_SH to ../bash if it's unset
4600
4601lib/readline/complete.c
4602 - only try to find a word break character in rl_complete_internal
4603 if we hit the end of the input string and found_quote == 0
4604 (the opening quote could have been the last character in the
4605 string)
4606
4607 6/2
4608 ---
4609subst.c
4610 - changed make_quoted_char to return CTLNUL\0 if passed a \0
4611 (this is what quote_string does, too) [in 1.14.5]
4612 - changed list_string to use make_quoted_char when adding a quoted
4613 null argument due to a null field when ifs != ' \t\n'
4614 - added an `expandpat' argument to getpattern, which tells it to
4615 call string_extract_double_quoted if the pattern expression is
4616 double-quoted, and changed all calls to initially pass `1' as
4617 its value
4618
4619jobs.c
4620 - changed start_job so that an attempt to start a job marked as
4621 JDEAD elicits an error message [in 1.14.5]
4622
4623Makefile.in
4624 - fixed `distclean' target so that it removes Makefiles in subdirs
4625 *after* descending into them to do submakes (!)
4626 - fixed `realclean' target to remove everything that distclean does
4627
4628 6/5
4629 ---
4630builtins/declare.def
4631 - fixed a typo that made `declare +r var' turn off read-only status
4632 for a variable [in 1.14.5]
4633 - added -p option to short doc and long doc
4634 - added code to allow `declare -f -options name' to set and unset
4635 attributes for the named functions. Only when no other options
4636 are supplied will the named and value of the function be displayed
4637 [in 1.14.5]
4638
4639variables.h
4640 - new SETVARATTR macro to set or unset attributes for a specific
4641 SHELL_VAR *
4642
4643builtins/setattr.def
4644 - use SETVARATTR
4645
4646 6/7
4647 ---
4648execute_cmd.c
4649 - moved the retrieval of $PS3 inside the loop in execute_select_command
4650 so that PS3 can be modified in the select command's body
4651 [in 1.14.5]
4652
4653execute_cmd.c
4654 - changed execute_builtin and execute_function to not set
4655 builtin_env and function_env, respectively, to NULL if there is
4656 no temporary env. This makes the temp env persist across calls
4657 to functions from other functions [in 1.14.5]
4658
4659configure.in
4660 - Linux needs LOCAL_LDFLAGS set to -rdynamic
4661
4662 6/8
4663 ---
4664general.c
4665 - canonicalize_pathname should not attempt to interpret backslash
4666 quoting `/', since Unix doesn't really allow it [in 1.14.5]
4667
4668bashline.c
4669 - added `\', `!', and `)' to the list of characters which
4670 cause filenames to be quoted
4671 - changed bash_quote_filename to use any of the three shell
4672 quoting styles based on the value of a variable,
4673 completion_quoting_style
4674 - if *qcp is not 0 when passed to bash_quote_filename, adjust the
4675 type of completion we're doing based on its value (i.e.,
4676 *qcp == '"' forces double quoting, *qcp == '\'' forces single)
4677 - bash_quote_filename now leaves the quotes intact in the filename
4678 it returns. The readline completion code takes care of avoiding
4679 doubled open quotes
4680 - if a filename containing a `!' is passed to bash_quote_filename
4681 without an opening quote character, and we are performing history
4682 expansion, use single quoting as the quoting style
4683
4684bashhist.c
4685 - changed bash_history_disable to not call bash_history_reinit(0),
4686 but do what it needs to directly
4687 - new function bash_history_enable
4688 - make history_expansion_inhibited exist only if BANG_HISTORY
4689 is defined
4690
4691bashhist.h
4692 - extern declaration for bash_history_enable
4693
4694lib/readline/complete.c
4695 - make make_quoted_replacement set should_quote to 1 if the quote
4696 character is `'' as well as if it's `"'
4697
4698test.c
4699 - added the csh-like `=~' and `!~' pattern-matching binary operators
4700 which match the string on the lhs against the shell pattern on
4701 the rhs. PATTERN_MATCHING must be defined for this to work; it is
4702 undefined and undocumented by default
4703
4704jobs.c
4705 - broke the code that gets the new window size and sets $LINES and
4706 $COLUMNS out of sigwinch_sighandler into a new function,
4707 get_window_size, which sigwinch_sighandler calls
4708
4709 6/12
4710 ----
4711parse.y
4712 - new function, pop_expansion, to remove the top string on the
4713 expanded token stack
4714 - renamed save_expansion to push_expansion
4715
4716lib/readline/complete.c
4717 - fixed a bug in find_completion_word that tested found_quote
4718 instead of quote_char when trying to decide if we have an unclosed
4719 quoted string [in 1.14.6]
4720
4721 6/26
4722 ----
4723subst.c
4724 - fixed expand_word_internal to remove all traces of $*, even if
4725 it's quoted, if there are no positional parameters and there are
4726 other characters in the expansion
4727
4728bashline.c
4729 - don't attempt hostname completion if multiple consecutive `@'
4730 characters appear
4731
4732 6/27
4733 ----
4734shell.c
4735 - initialize top_level early, and exit if a longjmp sends us there
4736 before we reinitialize
4737
4738subst.c
4739 - more fixes to expansion of quoted $* when no positional parameters
4740 - broke the code that assigns a value to an array element (and parses
4741 the array element reference) into a new function,
4742 do_array_element_assignment
4743
4744builtins/read.def
4745 - new function, bind_read_variable, to allow binding simple variables
4746 and array elements to strings read (uses do_array_element_assignment)
4747 - changed occurrences of bind_variable to bind_read_variable where
4748 it matters
4749
4750variables.c
4751 - tentative change to bind_variable to make x=y the same as x[0]=y
4752 if x is already an array variable. This works for `read' as well.
4753 This is what ksh does.
4754
4755 6/28
4756 ----
4757alias.h
4758 - added a `flags' member to the ASSOC struct and renamed it to
4759 `alias_t'
4760
4761alias.c, bashline.c, builtins/alias.def, builtins/type.def
4762 - changed ASSOC to alias_t
4763
4764alias.c
4765 - changed add_alias to set the AL_EXPANDNEXT flag when the alias is
4766 inserted into the hash table
4767
4768parse.y
4769 - added a third parameter to push_string: a pointer to the alias_t
4770 that is being expanded
4771 - push_string marks the alias it's passed as being expanded
4772 (AL_BEINGEXPANDED)
4773 - pop_string marks the alias being popped as no longer being
4774 expanded
4775 - changed shell_getc to defer popping an alias expansion until
4776 the parser has had a chance to catch up, since the parser reads
4777 ahead and would cause the expansion to be popped before it
4778 fully parsed the expanded string
4779 - changed alias_expand_word to check the AL_BEINGEXPANDED flag
4780 instead of the expanded_token_stack when checking whether an
4781 alias is already being expanded
4782
4783oslib.c
4784 - make the definition of bzero be surrounded by #ifdef HAVE_BZERO
4785 rather than lumping it in with bcopy
4786
4787configure.in
4788 - add a test for bzero
4789
4790config.h.in
4791 - add a template for HAVE_BZERO
4792
4793 7/3
4794 ---
4795builtins/set.def
4796 - added new meaning for `set +o' without options, as per the latest
4797 draft of Posix.2. It means to list -o options as a series of set
4798 commands to recreate the current settings
4799
4800documentation/bash.1
4801 - augmented description of the `set' builtin
4802
4803 7/6
4804 ---
4805jobs.c
4806 - make sure that temp_handler is not set to SIG_DFL before calling
4807 it from waitchld
4808
4809builtins/cd.def
4810 - rewrote cd_builtin to make the code flow clearer
4811 - broke full directory name construction out into a separate
4812 function: mkpath
4813 - cd_builtin now tests that a directory constructed from a $CDPATH
4814 entry is actually a directory before trying to chdir to it
4815 - added an error message if $HOME is not set
4816 - added a descriptive error message if `cd -' used and OLDPWD unset
4817 - changed the error messages to use builtin_error, not file_error
4818 - moved the code at the bind_and_exit label into a function,
4819 bindpwd (no_symlinks)
4820 - Posix.2 says that when using $CDPATH, the resultant value of PWD
4821 should have no symlinks
4822
4823 7/7
4824 ---
4825input.c
4826 - if fd_to_buffered_stream fails in some way and returns a NULL
4827 buffered stream, with_input_from_buffered_stream uses a function
4828 that does nothing but return EOF as the `getter'. This keeps
4829 the shell from crashing if invoked with fd 0 closed
4830
4831subst.c
4832 - made the `quoted' parameter to expand_word_internal into a flags
4833 word with flag values defined in shell.h. Each place where
4834 `quoted' is tested for a non-zero value was changed to test
4835 (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) != 0 instead
4836
4837mailcheck.c, shell.c, parse.y
4838 - change calls to the expand_string* functions to pass an explicit
4839 Q_DOUBLE_QUOTES where appropriate
4840
4841 7/9
4842 ---
4843subst.c
4844 - getpattern now passes Q_NOQUOTE to expand_word_internal, indicating
4845 that quotes in the pattern spec are not to be treated specially
4846
4847 7/12
4848 ----
4849jobs.c
4850 - fixed up the MUST_UNBLOCK_CHILD code in wait_for so that it now
4851 unblocks all signals and sets the signal handler for SIGCHLD to
4852 SIG_DFL. pre-v4 SCO machines seem to require this [in 1.14.5]
4853
4854[Bash-1.14.5 released to net 7/16]
4855
4856 7/17
4857 ----
4858documentation/features.texi
4859 - changed the Bourne Shell builtins section to have the same format
4860 as the bash builtins section, with usage synopses
4861 - added a section on the restricted shell
4862
4863 7/18
4864 ----
4865documentation/features.texi
4866 - changed the name of this document to the Bash Reference Manual
4867 - added sections on POSIX mode and restricted shell
4868
4869lib/readline/doc/hsuser.texinfo
4870 - added the text from the bash manual page about the bash history
4871 facilities if BashFeatures is set
4872
4873 7/19
4874 ----
4875documentation/features.texi
4876 - added more stuff to the bash basics section
4877
4878lib/readline/doc/rluser.texinfo
4879 - added a sample inputrc file
4880
4881 7/20
4882 ----
4883documentation/features.texi
4884 - added section on shell expansions to bash basics section
4885
4886builtins/Makefile.in, lib/glob/Makefile.in, lib/malloc/Makefile.in,
4887lib/readline/Makefile.in, lib/termcap/Makefile.in, lib/tilde/Makefile.in
4888 - ar is now called with flags `cr' when building libraries
4889
4890 7/21
4891 ----
4892lib/readline/complete.c
4893 - fixed a bug in find_completion_word that resulted in the found_quote
4894 flag and the delimiter character not being passed back to the
4895 caller (tested (*fp) instead of (fp) before assigning found_quote;
4896 similarly for dp). With this fix, the filename dequoting function
4897 is properly called
4898
4899 7/25
4900 ----
4901general.c
4902 - renamed bash_tilde_expand to bash_tilde_expansion_failure_hook
4903 - new function, bash_tilde_expand, that just sets interrupt_immediately
4904 and calls tilde_expand, returning what tilde_expand returns
4905
4906subst.c, general.c, shell.c, execute_cmd.c, variables.c, bashline.c,
4907builtins/cd.def
4908 - changed calls to tilde_expand to calls to bash_tilde_expand instead
4909
4910 7/27
4911 ----
4912builtins/set.def
4913 - added a -o history option to enable and disable command history
4914 saving. This uses bash_history_enable() and bash_history_disable()
4915 It's keyed off of remember_on_history. With this, shell scripts
4916 can use the command history
4917
4918bashhist.c
4919 - bash_history_enable now calls sv_history_control and sv_histignore
4920
4921builtins/fc.def
4922 - if history_list() returns a null pointer, immediately return
4923 [in 1.14.6]
4924
4925documentation/{bash.1,features.texi}, lib/readline/doc/hsuser.texinfo
4926 - added a description of the `set -o history' option and changed
4927 text to refer to it rather than strictly interactive shells
4928
4929 8/1
4930 ---
4931variables.c
4932 - new builtin variable $HOSTNAME, initialized to current_host_name
4933 as set in shell.c
4934
4935documentation/bash.1, documentation/features.texi
4936 - documented $HOSTNAME
4937
4938 8/3
4939 ---
4940support/texi2html
4941 - new program, a texinfo-html converter
4942
4943documentation/Makefile.in
4944 - added directives to produce features.html from features.texi
4945
4946MANIFEST.doc
4947 - added features.html and features_toc.html to the doc distribution
4948
4949 8/10
4950 ----
4951lib/readline/bind.c
4952 - new functions rl_variable_dumper and rl_dump_variables to print
4953 readline variables and their values to rl_outstream
4954 - new functions rl_get_keymap_name and rl_get_keymap_name_from_edit_mode
4955 to get the name of the current keymap for the variable dumper
4956
4957lib/readline/readline.h
4958 - extern declarations for rl_variable_dumper, rl_dump_variables, and
4959 rl_get_keymap_name
4960
4961builtins/bind.def
4962 - added -V flag to print variable names and bindings
4963 - added -P flag to print variable names and bindings in the syntax
4964 of the inputrc file
4965
4966lib/readline/funmap.c
4967 - added new bindable `dump-variables' readline command
4968
4969documentation/{bash.{1,html},readline.3,features.html},
4970lib/readline/doc/rluser.texinfo
4971 - documented new `dump-variables' readline command
4972
4973documentation/{bash.{1,html},features.{texi,html}
4974 - documented new bind -P and -V options
4975
4976documentation/bashbug.1
4977 - new manual page
4978
4979documentation/Makefile.in
4980 - changes to build and install bashbug.1
4981
4982 8/15
4983 ----
4984print_cmd.c
4985 - new function `xprintf' that just calls vfprintf(stdout, ...)
4986 to avoid having to declare printf
4987
4988parse.y
4989 - slight change in how read_token_word computes `all_digits'
4990
4991 8/21
4992 ----
4993
4994subst.c
4995 - new function dequote_escapes to remove CTLESC escaping
4996 CTLESC and CTLNUL in a string, returning a new string
4997
4998 8/25
4999 ----
5000shell.c
5001 - execute the file SYS_BASHRC for interactive shells if SYS_BASHRC
5002 is defined, before executing ~/.bashrc
5003
5004config.h.top
5005 - add a dummy commented definition for SYS_BASHRC, defaulting to
5006 /etc/bash.bashrc
5007
5008lib/readline/input.c
5009 - added code to call select() in rl_gather_tyi() and return
5010 immediately if it indicates that there is nothing to read on
5011 the readline input fd (#ifdef HAVE_SELECT)
5012
5013lib/posixheaders/posixdir.h
5014 - new file to localize the <dirent.h>/<sys/dir.h> and dirent/direct
5015 mess
5016
5017posixdir.h, lib/readline/posixdir.h
5018 - symlinks to lib/posixheaders/posixdir.h
5019
5020lib/readline/rldefs.h
5021 - removed the posix dir includes and defines
5022
5023lib/readline/complete.c, getcwd.c
5024 - include posixdir.h rather than having the code inline
5025
5026builtins/cd.def
5027 - new code to do spelling correction on the directory name
5028 modified from patch sent by Neil Russell (caret@c-side.com)
5029
5030 8/29
5031 ----
5032builtins/shopt.def
5033 - new option `cdspell' to toggle cd directory name spelling
5034 correction
5035
5036documentation/{bash.{1,html},features.texi}
5037 - documented new shopt `cdspell' option
5038
5039 9/5
5040 ---
5041subst.c
5042 - $'' should expand to the same thing as '' (a quoted null string)
5043
5044shell.h
5045 - changed CTLNUL to '\177'; some scripts use ^B for things like IFS
5046 [in 1.14.6]
5047
5048 9/7
5049 ---
5050support/config.guess
5051 - added code to identify a PPC running Solaris 2
5052
5053doc
5054 - new directory replacing documentation
5055
5056Makefile.in, MANIFEST, MANIFEST.doc, configure.in
5057 - replaced `documentation' with `doc'
5058
5059 9/8
5060 ---
5061lib/readline/display.c
5062 - fixed the code in _rl_update_final that decides whether or not the
5063 cursor is at character position 0 on an otherwise-empty line and
5064 adjusts _rl_vis_botlin accordingly
5065
5066 9/13
5067 ----
5068general.c
5069 - fixed canonicalize_pathname to make sure that intermediate
5070 results correspond to directories before blindly chopping
5071 off the last component when we see a `..'. This fixes the
5072 `cd ../.../..' being equivalent to `cd ..' problem
5073
5074subst.c
5075 - fixed make_named_pipe so that mkfifo is called with mode 0600
5076 for security reasons [in 1.14.6]
5077 - changed the /dev/fd version of add_fifo_list to zero out new
5078 entries to the fifo_list when it resizes it larger [in 1.14.6]
5079 - changed make_dev_fd_filename to use DEV_FD_PREFIX
5080
5081aclocal.m4
5082 - changed BASH_HAVE_DEV_FD to check for /proc/self/fd and define
5083 DEV_FD_PREFIX to either "/dev/fd/" or "/proc/self/fd/" as
5084 appropriate
5085
5086 9/14
5087 ----
5088lib/readline/display.c
5089 - when displaying the first line of a multiline prompt, make sure
5090 that the final \n is followed by a \r (outputting one if necessary)
5091 so that we know we are starting at column 0
5092
5093variables.h
5094 - new attribute: att_local
5095
5096variables.c
5097 - changed make_local_variable to set the att_local attribute
5098 - changed makunbound to just make variables marked as `local' in
5099 the current context invisible. This makes the local variable
5100 persist throughout the function even if it is unset, so a
5101 subsequent assignment preserves the `local' attribute
5102 - changed kill_all_local_variables to unset the att_local attribute
5103 before calling makunbound
5104
5105 9/18
5106 ----
5107lib/readline/complete.c
5108 - make sure the cursor is on the last line of a possibly-multiple-
5109 line command line before listing the completions in
5110 display_matches
5111
5112 9/19
5113 ----
5114braces.c
5115 - fixed the non-SHELL case in brace_gobbler so the loop exits when
5116 it should
5117
5118lib/readline/bind.c, lib/readline/readline.h
5119 - added functions to dump key sequences bound to macros and their
5120 values
5121
5122builtins/bind.def
5123 - added -S and -s options to dump the readline macros and their values
5124 - changed the options so that -p and -P dump functions, -v and -V
5125 dump variables, and -s and -S dump macros (s for string)
5126
5127doc/{bash.{1,html},readline.3,features.texi}, lib/readline/doc/rluser.texinfo
5128 - added documentation for the new `bind' options
5129 - added documentation for the new readline functions to dump macros
5130 and the key sequences that output them
5131
5132 9/22
5133 ----
5134print_cmd.c
5135 - new function xtrace_print_word_list (WORD_LIST *) to print the
5136 words of a simple command when set -x is on. This prints ''
5137 when it encounters an empty string
5138
5139externs.h
5140 - new extern declaration for xtrace_print_word_list
5141
5142execute_cmd.c
5143 - call xtrace_print_word_list in execute_simple_command
5144
5145 9/25
5146 ----
5147builtins/getopts.def
5148 - make sure that the loop counter stops at 10 when stepping through
5149 the dollar_vars array to count the number of positional parameters
5150 [in 1.14.6]
5151
5152 9/30
5153 ----
5154lib/readline/histsearch.c
5155 - fixed history_search_internal to bail immediately if it gets a
5156 null or empty search string. This fixes the !? core dumps.
5157 [in 1.14.6]
5158
5159 10/3
5160 ----
5161lib/readline/histexpand.c
5162 - if there is a null string given with a !? search specifier, use
5163 a previous search string if one exists, else fail immediately
5164
5165trap.c
5166 - made run_exit_trap preserve $? around the call to execute the
5167 trap string, unless the trap string contains an `exit'
5168 command, in which case it can set the shell's exit status
5169 [in 1.14.6]
5170
5171 In other words:
5172
5173 touch /tmp/z
5174 trap 'rm /tmp/z ; exit 5' 0
5175 exit 1
5176
5177 exits with status 5; while
5178
5179 touch /tmp/z
5180 trap 'rm /tmp/z' 0
5181 exit 1
5182
5183 exits with status 1
5184
5185subst.c, parse.y
5186 - moved the $'...' code from subst.c to parse.y, more like ksh
5187 does it
5188
5189doc/bash.1, doc/bash.html, doc/features.texi
5190 - moved the description of $'...' from the expansion section to
5191 the quoting section
5192
5193 10/4
5194 ----
5195command.h
5196 - added a `line' member to the function struct for the source line
5197 the function definition starts on
5198
5199make_cmd.c
5200 - initialize the `line' member in Function_def to 0
5201 - make_function_def takes a third parameter telling which line the
5202 function definition started on and a fourth telling which line
5203 the function body started on
5204
5205make_cmd.h
5206 - changed prototype for make_function_def
5207
5208parse.y
5209 - new variable `function_dstart', set by read_token and read_token_word
5210 to keep track of where a function definition begins
5211 - new variable `function_bstart' to keep track of where function
5212 body begins
5213 - pass function_dstart and function_bstart to make_function_def
5214 - new function strtrans to do the $"..." locale-specific translation
5215 of `...'
5216 - call strtrans() to translate $"string". The translated string is
5217 double-quoted
5218
5219doc/bash.{1,html}
5220 - updated the description of LINENO now that line numbers within
5221 functions are correct
5222
5223configure.in
5224 - look for the `gettext' library function
5225
5226config.h.in
5227 - define HAVE_GETTEXT if gettext(3) exists in a findable library
5228
5229 10/5
5230 ----
5231builtins/common.c
5232 - changed backslash_quote so that `#' is only quoted at the start
5233 of a word
5234 - new function contains_shell_metas returns 1 if the argument
5235 string contains one or more shell meta-characters that require
5236 quoting
5237
5238builtins/common.h
5239 - extern declaration for contains_shell_metas
5240
5241print_cmd.c
5242 - changed xtrace_print_word_list to print words containing
5243 shell metacharacters within single quotes
5244
5245lib/termcap
5246 - upgraded to GNU termcap version 1.3
5247
5248 10/9
5249 ----
5250lib/readline/readline.c
5251 - call setlocale(LC_CTYPE, ...) after finding a legal value for
5252 one of LC_ALL, LC_CTYPE, or LANG
5253
5254 10/11
5255 -----
5256lib/readline/search.c
5257 - make rl_history_search_internal just do previous-history or
5258 next-history as appropriate when given a null search string
5259 (rl_point == 0)
5260
5261 10/24
5262 -----
5263subst.c
5264 - fixed an off-by-one error in char_is_quoted that skipped a
5265 characters after calling skip_single_quoted or skip_double_quoted
5266 [in 1.14.6]
5267 - fixed an off-by-one error in string_extract_verbatim so it
5268 leaves *sindex at the separator character if the separator
5269 character is "'" [in 1.14.6]
5270
5271 10/27
5272 -----
5273parse.y
5274 - in CHECK_FOR_RESERVED_WORD, make sure that reading a `}'
5275 decrements open_brace_awaiting_satisfaction if it is non-zero
5276 [in 1.14.6]
5277
5278shell.c
5279 - don't run the shell startup files if the shell is running
5280 setuid
5281 - don't source $ENV if the shell is running setuid
5282
5283variables.c
5284 - new parameter to initialize_shell_variables: no_functions. If
5285 non-zero, don't import functions from the environment
5286
5287variables.h
5288 - change to function prototype for initialize_shell_variables
5289
5290lib/readline/complete.c
5291 - fix for the code that decides whether or not a char is quoted for
5292 applications that don't supply a value for rl_char_is_quoted_p
5293 - fixed insert_match to not remove a user-supplied opening quote
5294 character if make_quoted_replacement does not return a string
5295 beginning with that quote character
5296
5297 11/2
5298 ----
5299general.c
5300 - new function ungetc_with_restart that handles the local buffering
5301 [in 1.14.6]
5302
5303parse.y
5304 - changed yy_stream_unget to call ungetc_with_restart if the OS
5305 does not have restartable syscalls [in 1.14.6]
5306
5307 11/3
5308 ----
5309bashline.c
5310 - rewrote _ignore_completion_names to actually free and remove
5311 names from the array if more than one names in the array
5312 passed is acceptable, instead of just bailing [in 1.14.6]
5313
5314 11/7
5315 ----
5316bashline.c
5317 - if no matches are acceptable to _ignore_completion_names,
5318 free the entries in NAMES, set NAMES[0] == 0, and let the
5319 caller clean up [in 1.14.6]
5320 - fixed a problem with backslash-quoted characters in
5321 bash_dequote_filename that caused the character after the
5322 backslash to be interpreted
5323 - bash_dequote_filename now takes a quote_char parameter that,
5324 if non-zero, gives the quote character (`'' or `"') that
5325 delimits the filename. Used to initialize the quoting state
5326
5327lib/readline/complete.c
5328 - if the completion ignore function returns with MATCHES == 0
5329 or MATCHES[0] == 0, ring the bell and quit the completion
5330 attempt [in 1.14.6]
5331 - pass quote_char to gen_completion_matches so it can pass it
5332 along to the app-specific filename dequoting function
5333 - have gen_completion_matches pass quote_char to whatever function
5334 is pointed to by rl_filename_dequoting_function
5335
5336pathexp.c
5337 - rewrote ignore_globbed_names to be more like _ignore_completion_names
5338
5339lib/readline/doc/rltech.texinfo
5340 - updated documentation for rl_filename_dequoting_function
5341
5342 11/10
5343 -----
5344subst.c
5345 - fixed remove_quoted_nulls so that it is now a full function that
5346 removes unquoted CTLNUL chars from the string it is passed
5347 [in 1.14.6]
5348 - fixed expand_word_internal to avoid generating some unneeded
5349 quoted nulls (if the string is partially quoted, note that we
5350 have seen a quoted null and add one if the rest of the string
5351 doesn't expand to anything)
5352
5353 11/13
5354 -----
5355variables.c
5356 - bind HOSTTYPE, OSTYPE, and HOSTNAME unconditionally
5357
5358pathexp.c
5359 - new function quote_globbing_chars, adds `\' before globbing
5360 chars in its string argument, returns new string
5361
5362pathexp.h
5363 - extern declaration for quote_globbing_chars
5364
5365bashhist.c
5366 - if the previous line contains globbing chars, run it through
5367 quote_globbing_chars before trying to match. This affects
5368 only HISTIGNORE patterns containing `&'
5369
5370 11/14
5371 -----
5372bashhist.c
5373 - if the history line to be added contains globbing chars, quote
5374 them with backslashes by calling quote_globbing_chars in
5375 history_should_ignore before comparing them against the
5376 patterns in HISTIGNORE
5377
5378bashline.c
5379 - make sure that we erase the current readline line after running
5380 fc on it and executing the resultant commands in
5381 vi_edit_and_execute_command, so the original readline line
5382 doesn't get returned [in 1.14.6]
5383
5384jobs.h
5385 - added a new job listing format: JLIST_NONINTERACTIVE -- like
5386 JLIST_LONG, but does not print the job number
5387
5388jobs.c
5389 - added code to pretty_print_job to handle JLIST_NONINTERACTIVE
5390 - call notify_and_cleanup() from wait_for even if the shell is
5391 running a script (interactive_shell == 0)
5392 - changed notify_and_cleanup to call notify_of_job_status if
5393 interactive or interactive_shell == 0, so scripts report
5394 about jobs they run
5395 - changed notify_of_job_status to call pretty_print_job with a
5396 JLIST_NONINTERACTIVE format if interactive_shell is 0 and a
5397 job is marked JDEAD, after printing the script name and line
5398 number. This message is printed only if the job dies due to
5399 a fatal signal
5400
5401support/mkversion.c
5402 - added support for a `-status status' argument to set the
5403 `release status' of the shell (alpha, beta, or release). It
5404 defines `RELSTATUS' in version.h and changes the definition
5405 of SCCSVERSION, if present
5406
5407Makefile.in
5408 - set a RELSTATUS variable that is included when printing the build
5409 message and passed to mkversion with the -status option
5410 - make RELSTATUS one of the variables sed sets when it creates
5411 bashbug from support/bashbug.sh
5412
5413version.c
5414 - added a `release_status' variable that's set to RELSTATUS if
5415 it's defined
5416
5417support/bashbug.sh
5418 - added the `RELSTATUS' variable to the report with heading
5419 `Release Status'
5420 - set the bug address to chet@po.cwru.edu if the release status
5421 is `alpha' or `beta'
5422
5423 11/15
5424 -----
5425
5426shell.c, execute_cmd.c
5427 - new variable expand_aliases to control alias expansion. For now,
5428 this is set to the same value as interactive_shell when that is
5429 set
5430
5431parse.y
5432 - perform alias expansion if expand_aliases is non-zero rather than
5433 checking the value of interactive_shell
5434
5435 11/16
5436 -----
5437builtins/shopt.def
5438 - new option `expand_aliases' to control the value of expand_aliases
5439
5440doc/bash.1, doc/bash.html
5441 - updated the description of `shopt' with the `expand_aliases' option
5442
5443 11/28
5444 -----
5445bashline.c
5446 - if there is only one completion in _ignore_completion_names, see
5447 if it is acceptable and return right away [in 1.14.6]
5448
5449configure.in
5450 - change to define WAITPID_BROKEN on SCO 3.2v5
5451
5452 12/6
5453 ----
5454parse.y
5455 - call prompt_again in read_token_word if a newline is read in an
5456 interactive shell and bash_input.type is either st_stdin or
5457 st_stream
5458 - remove superfluous call to reset_readline_prompt in yy_readline_get
5459
5460 12/7
5461 ----
5462parse.y
5463 - combine delimiters, delimiter_depth, and delimiter_space into a
5464 single structure of type `struct dstack'
5465 - replace all references to delimiter* with dstack.delimiter*
5466 - include parser.h for struct dstack
5467 - new define pop_delimiter(), analogous to push_delimiter
5468 - current_delimiter, push_delimiter, and pop_delimiter defines now
5469 include the delimiter stack struct as the first parameter
5470
5471parser.h
5472 - now includes definition of struct dstack
5473
5474bashline.c
5475 - include parser.h for struct dstack
5476 - refer to dstack.delimiter_depth instead of delimiter_depth
5477
5478 12/12
5479 -----
5480execute_cmd.c
5481 - before doing a longjmp(subshell_top_level,...) when executing a
5482 shell script without a leading #!, set history_lines_this_session
5483 to 0 to forget about the history and not save it on an exec
5484 (we don't free the memory with clear_history(), though -- that
5485 would slow bash down)
5486
5487 12/14
5488 -----
5489jobs.c, nojobs.c
5490 - cause the sigwinch handling code to be compiled into the shell
5491 even if READLINE is defined
5492 - new functions: set_sigwinch_handler and unset_sigwith_handler
5493 to enable and disable catching of SIGWINCH and adjusting $LINES
5494 and $COLUMNS
5495 - changed initialize_job_signals to install a signal handler for
5496 SIGWINCH with set_sigwinch_handler
5497
5498jobs.h
5499 - extern declarations for set_sigwinch_handler and
5500 unset_sigwinch_handler
5501
5502 12/20
5503 -----
5504doc/bash.{1,html}, doc/readline.3, lib/readline/doc/rluser.texinfo
5505 - documented the readline `visible-stats' variable
5506
5507 12/21
5508 -----
5509trap.c
5510 - new global variable `running_trap' incremented and decremented
5511 around running a trap command in _run_trap_internal
5512
5513execute_cmd.c
5514 - new variable currently_executing_command, set to the COMMAND *
5515 currently being processed by execute_command_internal, unless a
5516 trap command is being run (running_trap != 0)
5517 - new function executing_line_number, which returns the line number
5518 of the currently executing command (which may not be the same as
5519 line_number)
5520 - don't run the debug trap if it was not set before the current
5521 simple command was executed, since we don't want to run it after
5522 the trap command that sets the DEBUG trap
5523
5524variables.c
5525 - new function assign_lineno, to assign a value to line_number
5526 when LINENO is set
5527 - changed get_lineno to call executing_line_number() rather than
5528 returning line_number
5529
5530parse.y
5531 - new argument for push_stream telling it whether or not to reset
5532 line_number to 0
5533
5534builtins/common.c
5535 - change to parse_and_execute to call push_stream with an argument
5536
5537 12/29
5538 -----
5539subst.c
5540 - set subshell_environment in command_substitute and process_substitute
5541 for the child process
5542
5543 1/2
5544 ---
5545trap.c
5546 - made decode_signal recognize signal names case insensitively
5547
5548shell.c
5549 - make the shell exit on a longjmp (DISCARD, ...) if
5550 subshell_environment is non-zero
5551
5552 1/16
5553 ----
5554lib/readline/histexpand.c
5555 - let the `!' in ${!xxx} pass through without error
5556
5557shell.c
5558 - new --help long option
5559 - new function show_shell_usage() for use by --help
5560
5561 1/19
5562 ----
5563parse.y
5564 - changes to shell_getc to make sure that lines consisting of only a
5565 newline get added to the history correctly when they are part of
5566 a quoted string
5567
5568 1/24
5569 ----
5570aclocal.m4, configure.in
5571 - added a check for -lsocket (and -lnsl) to fix solaris problems
5572 with isnetconn()
5573
5574shell.c
5575 - rearranged the code in isnetconn to check for a socket using
5576 getpeername() first, before any SVR4 or SVR4.2-specific checks
5577 - added checks for ttys (isatty) and FIFOs (S_ISFIFO) to the
5578 SVR4/SVR4.2 case of isnetconn()
5579
5580general.h
5581 - new macro RESIZE_MALLOCED_BUFFER to check and see whether there
5582 is enough room in a string to add a given number of characters
5583 and to resize it if there is not
5584
5585 1/25
5586 ----
5587parse.y, general.c, subst.c, bashhist.c, alias.c, array.c, variables.c
5588 - use RESIZE_MALLOCED_BUFFER where appropriate
5589
5590 1/26
5591 ----
5592support/config.{guess,sub}
5593 - merged in latest changes from GNU master copies
5594
5595 1/30
5596 ----
5597
5598jobs.c
5599 - make sure to freeze the jobs list when calling a trap handler
5600 for SIGINT
5601 - added code to waitchld() so that a SIGINT trap handler is called
5602 if the shell is running a shell script and a SIGINT is received
5603 while waiting for a foreground job, even if that job does not
5604 die from the SIGINT
5605
5606jobs.c, nojobs.c
5607 - make get_tty_state reset $LINES and $COLUMNS after each process
5608 exits if the variable `check_window_size' is non-zero
5609
5610builtins/shopt.def
5611 - new variable `checkwinsize', which controls the value of
5612 check_window_size
5613
5614doc/{bash.{1,html},features.texi}
5615 - updated description of `shopt' to include `checkwinsize'
5616
5617execute_cmd.c, lib/readline,complete.c
5618 - some changes from the GNU WIN32 project for the bash port to
5619 Windows NT and Windows 95
5620
5621bashwait.h
5622 - new file, with `union wait' defines from jobs.h
5623
5624jobs.h
5625 - include `bashwait.h' if <sys/wait.h> is not present and
5626 _POSIX_VERSION is not defined
5627 - removed define of pid_t for non-Posix systems; now provided by
5628 autoconf in config.h
5629
5630 1/31
5631 ----
5632parse.y
5633 - new temporary delimiter stack, used when decoding prompt strings.
5634 This is needed so command substitutions in the prompt strings
5635 (especially PS2) don't screw up the parser's quoting state
5636
5637lib/readline/complete.c
5638 - new variable for readline library users:
5639 rl_completion_append_character. The value of this variable is
5640 the character appended to a completion when it occurs at the
5641 end of a line. Setting it to '\0' causes nothing to be
5642 appended.
5643
5644lib/readline/readline.h
5645 - declaration for rl_completion_append_character
5646
5647lib/readline/doc/rltech.texinfo
5648 - documented rl_completion_append_character as int variable available
5649 to library users
5650
5651subst.c
5652 - new code for maintaining a string array saying which words in the
5653 output of expand_word_list_internal are the result of globbing
5654
5655variables.c
5656 - new function put_gnu_argv_flags_into_env (pid, flags_string)
5657 to put Roland's GNU getopt helper variable into the export_env
5658
5659execute_cmd.c
5660 - in execute_disk_command, after forking the child, put the GNU
5661 getopt helper environment variable into the child's export_env
5662
5663unwind_prot.c
5664 - changed unwind_protect_var and restore_variable to do the
5665 bcopy of the variable's value if it's shorter than the size of
5666 an int, as well as if it's longer. This keeps stray data
5667 from being copied if a short is being unwind-protected
5668
5669unwind_prot.h
5670 - new define, unwind_protect_short, to protect variables smaller
5671 than an int
5672
5673jobs.c
5674 - in the code that handles SIGCHLD traps, call unwind_protect_short
5675 if that is the size of a pid_t (for last_made_pid)
5676
5677 2/5
5678 ---
5679Makefile.in
5680 - only try make distclean in HIST_LIBDIR if Makefile exists -- could
5681 have already been removed if HIST_LIBDIR is the same as RL_LIBDIR
5682
5683general.c
5684 - make canonicalize_pathname be more careful about what it checks
5685 for being a directory name when processing a full pathname
5686
5687Makefile.in, configure.in, doc/Makefile.in
5688 - small changes to get bash to build better in a directory not the
5689 source directory
5690
5691 2/12
5692 ----
5693Makefile.in
5694 - added `install-strip' target
5695
5696 2/14
5697 ----
5698doc/bash.{1,html}, doc/features.texi
5699 - documented the `--verbose' startup option
5700
5701lib/readline/complete.c
5702 - fix to gen_completion_matches to fix a memory leak
5703 - fix to rl_complete_internal to fix a memory leak
5704
5705 2/15
5706 ----
5707bashwait.h
5708 - changed to use WORDS_BIGENDIAN instead of LITTLE_ENDIAN or
5709 BIG_ENDIAN
5710
5711configure.in, config.h.in
5712 - call AC_C_BIGENDIAN, define WORDS_BIGENDIAN
5713
5714Makefile.in
5715 - remove all references to mkendian.c, mkendian, and bash_endian.h
5716 - added a `symlinks' target that just runs support/fixlinks
5717
5718MANIFEST
5719 - mkendian.c is no longer in the distribution
5720
5721 2/16
5722 ----
5723execute_cmd.c
5724 - include <sys/times.h> if HAVE_SYS_TIMES_H and HAVE_TIMES are
5725 defined
5726
5727bashline.c
5728 - fix to bash_directory_completion_hook to compensate for
5729 canonicalize_pathname returning NULL
5730
5731variables.c
5732 - fix to initialize_shell_variables to compensate for
5733 canonicalize_pathname returning NULL
5734
5735 2/22
5736 ----
5737tests/test-tests, tests/test.right
5738 - changes to avoid writing in the source directory -- all temp files
5739 are created in /tmp
5740
5741[First alpha release at Thu Feb 22 15:59:51 EST 1996]
5742
5743 2/23
5744 ----
5745lib/readline/rldefs.h
5746 - work around SVR4.2 bug including <sys/ptem.h> and <termios.h>
5747
5748lib/readline/chardefs.h
5749 - fix to CTRL_CHAR macro for chars > 128 on systems with signed
5750 characters
5751
5752builtins/ulimit.def
5753 - protect more of the RLIMIT_* defines with checks
5754 - new macro RETINVALID() to set errno and return the correct
5755 value for an invalid request
5756
5757doc/Makefile.in
5758 - add a definition for INSTALL, set by autoconf
5759
5760 2/26
5761 ----
5762support/bashbug.sh
5763 - if USER is unset, assign it the value of $LOGNAME or `whoami`
5764
5765Makefile.in,{lib/*,doc,builtins}/Makefile.in
5766 - use `test' instead of `[' to conform to GNU coding standards
5767 - `incdir' -> `includedir' as per latest GNU coding standards
5768
5769lib/readline/Makefile.in, lib/glob/Makefile.in
5770 - use $(srcdir)/ instead of $(srcdir) in the CSOURCES variable
5771
5772general.h
5773 - new define, FS_NODIRS, to not find directory names when searching
5774 $PATH
5775
5776execute_cmd.c
5777 - fix to find_in_path_element so it does not return directories
5778 - executable_file() no longer returns directories as executable
5779
5780 2/27
5781 ----
5782jobs.h
5783 - new flag value: J_NOHUP
5784
5785jobs.c
5786 - new function: nohup_job(job). Sets J_NOHUP flag for specified
5787 job
5788 - change hangup_all_jobs so that jobs marked J_NOHUP are not
5789 sent SIGHUP. If stopped, the job still gets SIGCONT.
5790 - changed calls to report_error to call internal_error, which will
5791 not exit the shell
5792 - changed FIND_CHILD define to call internal_error, restore the
5793 SIGINT handler, set termination_state to 127 and return, rather
5794 than aborting the shell
5795
5796builtins/jobs.def
5797 - new option for disown: `-h'. Marks the specified jobs J_NOHUP.
5798
5799doc/{bash.{1,html},features.texi}
5800 - added description of `disown -h'
5801
5802jobs.c, nojobs.c
5803 - include some files needed for struct winsize by SCO
5804
5805lib/readline/input.c
5806 - added some #ifdefs to avoid including <sys/time.h> on systems
5807 with select but without <sys/select.h>
5808
5809configure.in
5810 - check for <stdarg.h>, define HAVE_STDARG_H in config.h if found
5811
5812config.h.bot
5813 - define USE_VARARGS and either PREFER_STDARG or PREFER_VARARGS
5814 if one of <stdarg.h> or <varargs.h> is present
5815
5816aclocal.m4
5817 - moved default mail directory check here from configure.in, macro
5818 name is BASH_DEFAULT_MAIL_DIR
5819 - rewrote BASH_CHECK_DEV_FD to cache the value
5820 - minor fixes from Bruno Haible
5821
5822shell.c
5823 - no longer includes <varargs.h>
5824
5825builtins/Makefile.in
5826 - add -I$(topdir)/builtins to list of includes
5827
5828execute_cmd.c, lib/glob/glob.c
5829 - include memalloc.h for correct alloca definitions
5830
5831error.[ch], print_cmd.c, builtins/common.[ch]
5832 - changes to include new ANSI-C stdargs code if PREFER_STDARG is
5833 defined
5834
5835 2/28
5836 ----
5837aclocal.m4
5838 - more minor fixes from Andreas Schwab
5839
5840doc/Makefile.in
5841 - change TEXINPUTS makefile variables to TEXINPUTDIR to avoid
5842 conflict with shell variable of the same name
5843
5844builtins/pushd.def
5845 - fix to avoid a bad call to free after a call to
5846 polite_directory_format does not change its argument string
5847
5848lib/readline/bind.c
5849 - fixes to _rl_macro_dumper_internal so that it prints whatever
5850 prefix it's passed, if any
5851
5852 2/29
5853 ----
5854Makefile.in
5855 - slight change to the rule for `stamp-h': it should be created by
5856 running `config.status', not explicitly by the makefile rule
5857
5858builtins/Makefile.in
5859 - replace `..' in the dependencies with `$(topdir)'
5860 - replace `.' in the dependencies with `$(srcdir)'
5861
5862 3/1
5863 ---
5864Makefile.in
5865 - add a rule to build builtins/builtext.h for the benefit of
5866 deficient makes like the SunOS one
5867
5868variables.c
5869 - fix to assign_in_env so that values in the environment are
5870 properly null-terminated
5871
5872builtins/Makefile.in
5873 - added dependencies for object files made from .c files in this
5874 directory: common.o, getopt.o, bashgetopt.o. SunOS /bin/make
5875 doesn't seem to be able to handle anything else
5876
5877support/mkclone
5878 - new script to replace clone-bash that works from MANIFEST to link
5879 only those files contained in a distribution
5880
5881support/mkversion.c
5882 - change so that it doesn't try to get `.build' from the source
5883 directory when that's different from the build directory
5884
5885 3/4
5886 ---
5887bashjmp.h
5888 - #undef setjmp and longjmp before redefining them as sigsetjmp and
5889 siglongjmp, respectively
5890
5891bashhist.c
5892 - fixed an uninitialized variable problem in expand_histignore_pattern
5893
5894builtins/set.def
5895 - used `on_or_off' where `value' was needed in minus_o_option_commands
5896
5897builtins/common.h
5898 - added extern declaration for set_var_attribute
5899
5900print_cmd.c
5901 - include `bashansi.h' instead of just string.h or strings.h
5902
5903builtins/*.def, builtins/common.c
5904 - include `../bashansi.h' where appropriate
5905
5906parse.y
5907 - fixed a parenthesization problem in alias_expand_token
5908
5909general.h
5910 - added extern declaration for `ungetc_with_restart'
5911
5912lib/readline/readline.c
5913 - renamed LibraryVersion to rl_library_version, made it extern,
5914 assigned `2.1' to it
5915
5916lib/readline/readline.h
5917 - extern declaration for `rl_library_version'
5918
5919lib/readline/doc/rltech.texinfo
5920 - added description of `rl_library_version'
5921
5922lib/glob/glob.c
5923 - changed call to sprintf in glob_dir_to_array to a couple of
5924 calls to strcpy, since we keep the length of the first string
5925 we copy
5926
5927 3/7
5928 ---
5929aclocal.m4
5930 - added new macro `BASH_FUNC_LSTAT' to check for lstat on Linux,
5931 which defines it as an inline function in <sys/stat.h>
5932
5933configure.in
5934 - call BASH_FUNC_LSTAT if $ac_cv_func_lstat has value `no'
5935
5936 3/8
5937 ---
5938parse.y
5939 - changed the occurrences of `list' in the if command productions
5940 to use `compound_list' instead
5941
5942 3/11
5943 ----
5944parse.y
5945 - changed the occurrences of `list' in the while and until command
5946 productions to use `compound_list'
5947
5948lib/readline/complete.c
5949 - fix to filename_completion_function -- off-by-one error when
5950 expand-tilde is enabled and a filename to be completed begins
5951 with `~/'
5952
5953 3/12
5954 ----
5955builtins/cd.def
5956 - made the POSIX.2 behavior of PWD not containing symlinks after
5957 using $CDPATH part of `posix mode', not default shell behavior
5958
5959lib/readline/display.c
5960 - fix to update_line to handle update problems when using
5961 horizontal scroll mode. This is a dumb update solution -- it
5962 should use a better one
5963
5964 3/14
5965 ----
5966examples/functions/csh-compat
5967 - replaced the defintion for `alias' with a better one posted to
5968 usenet by Mohit Aron <aron@cs.rice.edu>
5969
5970 3/15
5971 ----
5972jobs.c
5973 - fix to wait_for_background_pids to keep `wait' from hanging
5974
5975 3/19
5976 ----
5977lib/readline/input.c
5978 - new function `_rl_input_available()' returns > 0 if there is
5979 input available on the readline input file descriptor. Only
5980 works if select(2) or FIONREAD are available
5981
5982lib/readline/isearch.c
5983 - slight change to the isearch termination behavior -- ESC still
5984 terminates the search, but if there is pending input or if input
5985 arrives within 0.1 seconds (on systems with select(2)) it is
5986 used as a prefix character with rl_execute_next
5987
5988shell.c
5989 - the GNU coding standards say to write the output generated by
5990 the --help command line option to stdout, not stderr
5991 - show_shell_version now takes an `extended' option that displays
5992 copyright information if non-zero
5993 - show_shell_version now prints the value of `MACHTYPE' by default
5994 - the `--version' option now causes the shell to exit successfully
5995 after printing the extended version information
5996
5997externs.h
5998 - changed prototype for show_shell_version
5999
6000shell.c, bashline.c, builtins/help.def
6001 - changed calls to show_shell_version to add appropriate argument
6002
6003Makefile.in
6004 - pass a `MACHTYPE' define to the compiler
6005
6006 3/22
6007 ----
6008general.c
6009 - changed print_timeval() and print_time_in_hz() to output three
6010 fractional digits after the decimal point
6011
6012examples/loadables/sleep.c
6013 - changed to an implementation that will sleep fractional portions
6014 of seconds if select() is available
6015
6016 3/25
6017 ----
6018builtins/shopt.def
6019 - fixes to shopt -o from Andreas Schwab. Use FLAG_ON/FLAG_OFF
6020 instead of SETOPT/UNSETOPT
6021
6022 3/26
6023 ----
6024Makefile.in, builtins/Makefile.in
6025 - use `@includedir@' instead of `@incdir' for autoconf 2.9
6026
6027Makefile.in
6028 - the `info', `dvi', and `ps' targets do not depend on `texindex'
6029 - add a `dist' target that just prints a message describing how
6030 distributions are constructed
6031
6032support/mkdirs
6033 - replace uses of [...] with `test'
6034
6035 3/28
6036 ----
6037parse.y
6038 - fix for a problem with \@ prompt expansion from Tim Mooney
6039
6040jobs.c
6041 - broke the code that prints a pipeline out into a separate
6042 function: print_pipeline(). This gets called by
6043 pretty_print_job and can be used for debugging
6044 - two new functions to save and restore the_pipeline around calls
6045 to make_child that you don't want to disturb the current pipeline,
6046 for example in process substitution
6047
6048subst.c
6049 - changed process_substitute to call save_pipeline and
6050 restore_pipeline in the appropriate places
6051
6052 3/29
6053 ----
6054general.c
6055 - ansicstr now takes an additional parameter, the length of the
6056 string to be translated. It's the second paramter.
6057
6058builtins/echo.def
6059 - changed call to ansicstr to pass strlen(list->word->word)
6060
6061parse.y
6062 - redid the $'...' expansion so it works like it's supposed to:
6063 the quoted strings may appear anywhere in a token, and multiple
6064 ansi-c quoted strings may appear in a token
6065 - redid the $"..." expansion so it works like it's supposed to
6066
6067tests/nquote.{tests,right}, tests/run-nquote
6068 - tests for the $'...' and $"..." quoting stuff -- simple-minded
6069
6070subst.c
6071 - on systems without /dev/fd, open the named pipe for a `reading
6072 in child' process substitution (>(...)) with O_NONBLOCK
6073
6074lib/posixheaders/filecntl.h
6075 - add code to make sure the O_NONBLOCK is defined to O_NDELAY if
6076 it is present and O_NONBLOCK is not defined by <fcntl.h>
6077
6078general.c
6079 - don't bother handling both O_NONBLOCK and O_NDELAY in
6080 unset_nodelay_mode, since filecntl.h defines O_NONBLOCK as
6081 O_NDELAY for non-Posix systems
6082
6083 4/1
6084 ---
6085lib/readline/funmap.c
6086 - made `vi-fetch-history' a bindable command name
6087
6088doc/readline.3
6089 - many cleanups, updated the list of default bindings
6090
6091 4/4
6092 ---
6093doc/bash.1, doc/readline.3
6094 - fixed up use of \-; now it is not used unless the text is being
6095 printed in bold or italic
6096
6097configure.in, config.h.in
6098 - add a configuration option, --enable-usg-echo-default, to turn
6099 on DEFAULT_ECHO_TO_USG and make `echo' expand backslash-escaped
6100 characters by default
6101
6102 4/8
6103 ---
6104parse.y
6105 - another small change to localeexpand to handle backslash-escaped
6106 double quotes in the double-quoted string
6107
6108 4/9
6109 ---
6110shell.c
6111 - add the value of MACHTYPE to the text output by `--help'
6112
6113 4/11
6114 ----
6115parse.y
6116 - more changes to the $"..." and $'...' code to move it into
6117 read_token
6118 - don't try to check token[token_index - 1] unless token_index
6119 is greater than 0
6120
6121 4/12
6122 ----
6123trap.c
6124 - new function run_trap_cleanup to clean up after _run_trap_internal
6125 in the event that parse_and_execute does not return normally
6126 (e.g., if a `return' is executed in the trap command)
6127 - set running_trap to the number of the signal whose trap is being
6128 run plus one in _run_trap_internal
6129
6130trap.h
6131 - extern declaration for run_trap_cleanup
6132
6133jobs.c
6134 - new function `unfreeze_jobs_list' to set freeze_jobs_list back to 0.
6135 called from parse_and_execute_cleanup so a `return' while running
6136 an interrupt trap does not leave the jobs list frozen
6137
6138jobs.h
6139 - new extern declaration for unfreeze_jobs_list
6140
6141builtins/common.c
6142 - if running_trap is non-zero in parse_and_execute_cleanup, indicating
6143 that parse_and_execute was running a trap command when it got a
6144 `return', call run_trap_cleanup (running_trap - 1)
6145 - parse_and_execute_cleanup now calls unfreeze_jobs_list
6146
6147 4/16
6148 ----
6149Makefile.in
6150 - don't try to make `doc' as a dependency of `install'
6151
6152doc/Makefile.in
6153 - make `info' a dependency of `install' to make sure the info
6154 document is present and up to date before installing it
6155 - make the `install' target install the documents with a $(srcdir)/
6156 prefix in case we're building in another directory
6157
6158lib/glob/glob.c
6159 - fixed an off-by-one error in glob_dir_to_array
6160
6161shell.c
6162 - removed an extra increment of arg_index when setting up the
6163 arguments for -c command
6164
6165 4/17
6166 ----
6167pathexp.c
6168 - made quote_globbing_chars backslash-quote backslashes as well as
6169 `?*[]'; changed it to be a little faster
6170
6171bashhist.c
6172 - call quote_globbing_chars to quote backslashes in the previous
6173 history line even if no other globbing chars are present. This
6174 is done only if we're matching against a HISTIGNORE pattern of `&'
6175 - don't bother quoting globbing characters in the current history
6176 line in history_should_ignore -- fnmatch ignores special chars in
6177 its `string' argument
6178
6179[bash-2.0-alpha2 frozen]
6180
6181 4/18
6182 ----
6183command.h
6184 - new flag value for a word: W_NOSPLIT. A word with this bit set
6185 in its flags will not have word splitting performed
6186
6187parse.y
6188 - turn on the W_NOSPLIT flags for assignment statements appearing
6189 where an assignment statement is acceptable (words that would
6190 return ASSIGNMENT_WORD rather than WORD). This means that, for
6191 the time being, assignment statement arguments to builtins like
6192 `declare' or `alias' will be split unless they are quoted
6193
6194subst.c
6195 - don't split a word in expand_word_internal if the W_NOSPLIT flag
6196 is set, rather than checking W_ASSIGNMENT; do the same thing in
6197 expand_word_list_internal
6198
6199builtins.h
6200 - a new flag, ASSIGNMENT_BUILTIN, indicating that this builtin takes
6201 assignment statements as arguments
6202 - rearranged the values of the builtin flags, so the BUILTIN_* flags
6203 come first, then the *_BUILTIN flags
6204
6205builtins/makebuiltins.c
6206 - added code for an array of `assignment builtins' -- builtins that
6207 take assignment statements as arguments -- and to add the
6208 ASSIGNMENT_BUILTIN flag for those builtins
6209
6210execute_cmd.c
6211 - added a hack function `fix_assignment_words', which checks the
6212 first word of a builtin command to see if it is a builtin that
6213 has the ASSIGNMENT_BUILTIN flag set, and adds W_NOSPLIT to the
6214 flags for all words with the W_ASSIGNMENT bit set. This means
6215 that word splitting is not done for any of the assignment
6216 statements in commands like `declare z=$a'
6217
6218 4/19
6219 ----
6220execute_cmd.c
6221 - fixed a memory-freed-twice error in find_in_path_element
6222
6223lib/readline/rltty.c
6224 - include <sys/ioctl.h> if GWINSZ_IN_SYS_IOCTL is defined and
6225 SHELL is not defined
6226
6227lib/readline/input.c
6228 - changed a stray HAVE_FIONREAD to FIONREAD
6229 - include <sys/ioctl.h> if FIONREAD_IN_SYS_IOCTL is defined
6230
6231aclocal.m4
6232 - new macro, BASH_HAVE_FIONREAD, to check for a #define of
6233 FIONREAD in <sys/ioctl.h> or one of the files it includes;
6234 defines FIONREAD_IN_SYS_IOCTL if present
6235
6236config.h.in
6237 - new line for FIONREAD_IN_SYS_IOCTL
6238
6239configure.in
6240 - call BASH_HAVE_FIONREAD
6241
6242 4/22
6243 ----
6244builtins/cd.def
6245 - fixed a memory-freed-twice error in mkpath()
6246
6247jobs.c
6248 - don't print a job termination message for a non-interactive shell
6249 with startup_state == 2 (those shells are started to run commands
6250 when bash is invoked with `-c command')
6251
6252 4/23
6253 ----
6254general.h
6255 - definition for a `generic pointer' type PTR_T -- `void *' on ANSI
6256 C systems, `char *' otherwise
6257
6258jobs.h
6259 - new members of job struct: `j_cleanup', a function to call when the
6260 job is marked JDEAD, and `cleanarg', argument to pass to j_cleanup
6261
6262jobs.c
6263 - initialize j_cleanup and cleanarg to NULL in stop_pipeline
6264 - call j_cleanup from waitchld() when a job is marked JDEAD
6265
6266test.c
6267 - fixed binop() so it recognizes `<' and `>' as binary operators
6268 - fixed a bug in binary_operator so `<' works correctly
6269
6270tests/test-tests
6271 - fixed the tests so they no longer rely on the modes of files in
6272 the file system to test -u, -g, -r, -x, -w, and so on, except
6273 for a few `standard' files like /dev/tty and /dev/null
6274 - added tests for string < string and string > string
6275
6276xmalloc.c
6277 - include <unistd.h> if HAVE_UNISTD_H is defined for a prototype
6278 for sbrk
6279 - add an extern declaration for sbrk if SBRK_DECLARED is not defined
6280 - use PTR_T to cast the return value of sbrk() when finding out where
6281 the break is and how many bytes of memory have been allocated
6282
6283lib/malloc/malloc.c
6284 - added code to write 0xcf into memory as it's freed, to uncover
6285 callers that try to refer to freed memory, and writes 0xdf into
6286 newly-allocated memory, to uncover callers that assume something
6287 about new allocations (e.g., that newmem[0] == 0)
6288
6289lib/malloc/gmalloc.c
6290 - latest version from GNU sources
6291
6292 4/25
6293 ----
6294doc/bash.1
6295 - changed the description of `unset' to include a description of
6296 the `-v' option
6297
6298parse.y
6299 - fixed a problem with conversion to 12-hour time in
6300 decode_prompt_string that made 12:00pm show up as 00:00pm
6301
6302 4/26
6303 ----
6304builtins/common.c, subst.c
6305 - a couple of fixes from Andreas Schwab
6306
6307configure.in
6308 - set up the minimal configuration after checking for
6309 --enable-minimal-config with AC_ARG_ENABLE, before checking any
6310 of the other options, instead of after checking all options.
6311 This makes `--enable-minimal-config --enable-prompt-string-decoding'
6312 work as documented
6313 - changed AC_PREREQ to require autoconf version 2.8 or higher
6314 - added some code to disable gnu malloc by default on the systems
6315 listed in NOTES
6316 - set MALLOC_SRC to have the $(ALLOC_LIBSRC)/ prefix to avoid having
6317 a directory in the dependencies when making without the gnu
6318 malloc
6319
6320lib/malloc/Makefile.in
6321 - make gmalloc.o depend on $(BUILD_DIR)/config.h
6322
6323 4/30
6324 ----
6325COMPAT
6326 - new file listing user-visible incompatibilites between bash-1.14
6327 and bash-2.0
6328
6329parse.y
6330 - new prompt expansions, \v (version) and \V (version + patchlevel)
6331
6332config.h.top
6333 - the default value of PS1 is now '\s-\v\$ '
6334
6335doc/{bash.{1,html},features.texi}
6336 - added descriptions of \v and \V prompt expansions
6337 - changed default value of PS1
6338
6339Makefile.in
6340 - added dependencies on config.h.top for files that use definitions
6341 included there
6342
6343builtins/exec.def
6344 - removed reference to `no_exit_on_failed_exec' from the help text
6345
6346 5/3
6347 ---
6348builtins/cd.def
6349 - fixed a typo in fix from 4/22
6350
6351 5/7
6352 ---
6353builtins/common.c
6354 - new function `no_options (WORD_LIST *)' to be called by builtins
6355 that do not take options to check for options and -?. It returns
6356 0 on success, non-zero if an unwanted option is supplied
6357
6358builtins/common.h
6359 - extern declaration for no_options
6360
6361builtins/return.def
6362 - corrected the error message to include returning from a sourced
6363 script
6364
6365builtins/{getopts,eval,wait,source,fg_bg,help}.def
6366 - changed the following builtins to either call no_options or test
6367 explicitly for options and return EX_USAGE if any are found:
6368
6369 getopts eval wait source . fg bg help
6370
6371builtins/help.def
6372 - error messages are now printed using builtin_error
6373
6374 5/8
6375 ---
6376builtins/jobs.def
6377 - fixed an unitialized variable problem
6378
6379tests/more-exp.tests
6380 - added additional tests for IFS problem uncovered by `iffe'
6381
6382 5/9
6383 ---
6384lib/malloc/Makefile.in
6385 - use $(ALLOCA_SOURCE) instead of $< in rule that builds alloca.o.
6386 Some makes don't expand the $< in non-suffix rules
6387
6388lib/readline/rldefs.h
6389 - fix workaround for SVR4.2 bug
6390
6391shell.c
6392 - even though SVR4.2 has getpeername(), isnetconn() should not use it
6393
6394maxpath.h
6395 - rework to make sure PATH_MAX and NAME_MAX are defined, and remove
6396 the BUILDING_MAKEFILE code
6397
6398general.c, parse.y, oslib.c, jobs.c, builtins/common.c, builtins/cd.def
6399 - change uses of MAXPATHLEN to PATH_MAX
6400
6401examples/loadables/{{log,base,dir}name,tty,pathchk,tee}.c
6402 - new loadable builtins:
6403
6404 logname basename dirname tty pathchk tee
6405
6406configuure.in, config.h.in
6407 - look for tzset(3), define HAVE_TZSET if found
6408
6409subst.c
6410 - new special variable function, sv_tz, which calls tzset when
6411 TZ is changed, if tzset(3) exists and the shell is compiled
6412 to do prompt string decoding
6413
6414subst.h
6415 - extern declaration for sv_tz
6416
6417 5/10
6418 ----
6419builtins/echo.def
6420 - only call printf if the string to print is non-null
6421 - add an fflush(stdout) after the printf call to work around a
6422 bug in SunOS 5.5
6423
6424 5/16
6425 ----
6426shell.c
6427 - moved some variable declarations out of this file to more
6428 logical places
6429
6430support/config.guess
6431 - small fixes from rfg@monkeys.com
6432
6433version.c
6434 - moved functions for getting, setting, and displaying shell version
6435 information here from shell.c
6436
6437general.c
6438 - moved set_lines_and_columns to variables.c
6439 - moved getc_with_restart and ungetc_with_restart to input.c
6440 - new function argv_to_word_list(), converts an array of strings
6441 into a WORD_LIST
6442 - renamed find_name_in_list to find_name_in_array to match rest
6443 of functions that operate on arrays of strings
6444
6445configure.in, Makefile.in, jobs.c, nojobs.c
6446 - changes so that jobs.c no longer includes nojobs.c, and the correct
6447 object file (jobs.o or nojobs.o) is selected by configure
6448 and substituted into the Makefile
6449
6450list.c
6451 - new file, list manipulation functions from general.c
6452
6453externs.h, general.h
6454 - moved extern declarations for functions defined in oslib.c and
6455 list.c to externs.h from general.h
6456
6457 5/17
6458 ----
6459locale.c
6460 - new file, with locale code from parse.y and shell.c
6461
6462shell.c
6463 - don't turn off job control if act_like_sh is set
6464 - if an unknown option is supplied at startup or if -c is
6465 supplied without an argument, exit with EX_USAGE
6466 - call posix_initialize after parsing all the options, to
6467 catch `bash -o posix'
6468 - new functions: init_interactive(), init_noninteractive()
6469 - exit with EX_NOTFOUND if a script argument is not found
6470 - exit with EX_NOINPUT if a script file cannot be opened for
6471 some reason
6472
6473shell.h
6474 - new define for EX_NOINPUT exit status (126)
6475
6476 5/18
6477 ----
6478lib/readline/bind.c
6479 - fixed _rl_get_keyname() so that it properly handles C-\ and outputs
6480 it as \C-\\ and C-" as \C-\". This fixes the improper binding
6481 commands written by `bind -p' that caused weird things to happen
6482 when people used the output of `bind -p' as a start for their
6483 own inputrc files
6484 - new function _rl_init_file_error to print error messages encountered
6485 while parsing the inputrc file
6486 - print out an error message if parsing an inputrc line and no closing
6487 double quote is found for a key binding
6488
6489lib/readline/complete.c
6490 - in rl_complete_internal, if the completion function results in
6491 multiple matches, but none match up to even the first character,
6492 use what the user typed in (which is presumably a glob pattern
6493 that expanded into multiple files) as matches[0]. This makes
6494 things like show-all-if-ambiguous work right, too
6495
6496oslib.c
6497 - if we are providing our own version of getenv(), provide a function
6498 _getenv() as well, which just calls getenv()
6499
6500builtins/ulimit.def
6501 - #define _KERNEL before including <sys/resource.h> if HPUX is
6502 defined. This makes the full set of limits available on hpux
6503 version 8 and above
6504
6505bashline.c
6506 - new function, enable_hostname_completion, sets up readline to
6507 perform or not perform hostname completion. Hostname completion
6508 is on by default.
6509 - don't attempt hostname completion in attempt_shell_completion()
6510 unless perform_hostname_completion is set
6511
6512builtins/shopt.def
6513 - add a `set_func' member to the shopt options structure, to provide
6514 a hook for those variables that require a little more than just
6515 toggling a variable on or off
6516 - new shopt variable `hostcomplete', turns hostname completion on and
6517 off
6518
6519doc/{bash.{1,html},features.texi}
6520 - added description of new shopt `hostcomplete' variable
6521
6522 5/21
6523 ----
6524sig.c
6525 - don't try to save the shell history in termination_unwind_protect
6526 if we're dying due to SIGABRT
6527
6528bashhist.c
6529 - new functions: last_history_entry (static), last_history_line
6530
6531bashhist.h
6532 - extern declarations for new functions in bashhist.c
6533
6534error.c
6535 - have programming_error() report the last command in the history
6536 before aborting
6537
6538builtins/fc.def
6539 - if the editor returns a non-zero exit status when using `fc -e',
6540 return immediately without trying to execute the commands, as
6541 per Posix.2, 5.12.2
6542 - when using `fc -s', echo the command to be executed to stderr,
6543 not stdout
6544
6545lib/readline/terminal.c
6546 - new file, with all code related to termcap/terminfo
6547
6548lib/readline/{readline,rltty,display,util}.c
6549 - moved functions dealing with termcap to terminal.c
6550
6551lib/readline/readline.c
6552 - readline_initialize_everything now calls _rl_enable_meta_key()
6553 to turn on the meta key, based on the value of _rl_enable_meta
6554 (on by default)
6555
6556lib/readline/rltty.c
6557 - do not enable and disable the meta key each time readline is
6558 called; do it once at initialization
6559
6560 5/23
6561 ----
6562bashhist.c
6563 - when `hist_verify' is set, call re_edit with the expanded line,
6564 not the original one, and do not print the results of the
6565 expansion before re-editing
6566
6567 5/24
6568 ----
6569support/config.guess
6570 - recognize linux/sparc
6571
6572configure.in
6573 - don't use GNU malloc on linux/sparc
6574
6575variables.c
6576 - initialize a new $MACHTYPE variable to the value of MACHTYPE as
6577 set by autoconf
6578
6579doc/{bash.{1,html},features.texi}
6580 - documented $MACHTYPE
6581
6582 5/30
6583 ----
6584builtins/ulimit.def
6585 - allow the max vm size to be set via setrlimit() if RLIMIT_VMEM
6586 is defined
6587
6588 5/31
6589 ----
6590shell.h
6591 - changed EX_USAGE to 258, EX_BADUSAGE is now 2
6592 - added a number of execution failure statuses, so that builtins
6593 can indicate various failures. All are greater than 256, so
6594 they cannot be returned by other utilities
6595
6596execute_cmd.c
6597 - new function, builtin_status(), to translate the new return
6598 status codes to something the shell can export
6599 - changed execute_simple_command to call builtin_status after
6600 execute_builtin_or_function to translate error codes if a
6601 builtin is invoked. If a function or regular builtin is
6602 invoked, all return values greater than EX_SHERRBASE get
6603 translated to EXECUTION_FAILURE, with the exception that
6604 EX_USAGE gets translated to EX_BADUSAGE. If a special
6605 builtin failed with a status > EX_SHERRBASE, special_builtin_failed
6606 is set to cause the shell to exit in POSIX mode
6607 - changed execute_builtin_or_function to return EX_REDIRFAIL if
6608 redirections fail
6609 - changed execute_subshell_builtin_or_function to translate
6610 EX_USAGE to EX_BADUSAGE if a builtin is executed
6611 - set this_command_name to NULL in execute_for_command before binding
6612 each member of the word list to the loop variable, to avoid
6613 garbled error messages if the variable has the integer attribute
6614
6615builtins/{set,unset}.def
6616 - return EX_USAGE instead of EXECUTION_FAILURE if a bad option is
6617 supplied
6618
6619builtins/source.def
6620 - return EX_USAGE instead of EXECUTION_FAILURE if the required
6621 filename argument is missing
6622
6623builtins/setattr.def
6624 - return EX_BADASSIGN if any assignment statements given as arguments
6625 to readonly, export, etc. return failures (assignment to
6626 non-identifier, assignment to readonly variable)
6627
6628builtins/declare.def
6629 - don't allow `declare var=value' to assign value to a readonly
6630 variable
6631
6632lib/readline/rldefs.h
6633 - include <stdarg.h> if we're going to be using stdarg instead of
6634 varargs
6635
6636lib/readline/display.c
6637 - added `stdarg' version of rl_message
6638
6639lib/readline/readline.h
6640 - changed extern declaration for rl_message to be in ANSI-C format
6641 if __STDC__ is defined and we're using stdarg
6642
6643variables.c
6644 - make sure this_command_name is set to null before calling
6645 make_variable_value in assign_array_var_from_string so any
6646 error messages are not garbled
6647
6648 6/2
6649 ---
6650builtins/common.c
6651 - don't execute the command in parse_and_execute if -n has been
6652 enabled and the shell is not interactive
6653 - include flags.h for read_but_dont_execute
6654
6655[bash-2.0-alpha3 released]
6656
6657 6/5
6658 ---
6659subst.c
6660 - array_length_reference and parameter_brace_expand_length now
6661 return -1 on errors
6662 - parameter_brace_expand now returns &expand_param_error if
6663 paramter_brace_expand_length returns something < 0
6664
6665variables.c
6666 - assign_in_env now checks for assignments to readonly shell
6667 variables and disallows them
6668
6669 6/6
6670 ---
6671xmalloc.c
6672 - only do pointer arithmetic on pointers cast to (char *), since
6673 it's not required that compilers support arithmetic on void *
6674
6675shell.c
6676 - make sure <sys/socket.h> is included with the same conditions
6677 used to call getpeername(2) in isnetconn()
6678
6679parse.y
6680 - added a new function, paren_match, to parse the contents of $(...)
6681 constructs. This function correctly handles embedded quoted
6682 strings, embedded command substitutions, embedded command
6683 substitutions with embedded quoted strings, etc. The implementation
6684 is much closer to that described in POSIX.2, section 3.6.3.
6685 - changed read_token_word to call paren_match where appropriate
6686
6687subst.c
6688 - rewrote extract_delimited_string so that it correctly understands
6689 quoted strings inside command substitutions, a la paren_match
6690 in parse.y. Corrected the description of the function's output
6691 in the code. extract_delimited_string is now very recursive, and
6692 does not try to do everything in one pass without recursion
6693
6694 6/7
6695 ---
6696test.c
6697 - fixed three_arguments() to test the second argument for a valid
6698 binary operator before checking whether or not the first argument
6699 is `!'. This is what POSIX.2 says to do.
6700
6701lib/malloc/malloc.c
6702 - don't compile in the memory scrambling code (#define MEMSCRAMBLE)
6703 if NO_MEMSCRAMBLE is defined.
6704
6705configure.in
6706 - define NO_MEMSCRAMBLE in LOCAL_CFLAGS for SCO 3.2v[45]
6707
6708 6/9
6709 ---
6710parse.y
6711 - renamed paren_match to parse_matched_pair
6712 - call parse_matched_pair to parse <(...) and >(...) constructs,
6713 since those should be treated the same as $(...) for the purposes
6714 of matching parens and skipping embedded quoted strings
6715
6716 6/13
6717 ----
6718parse.y
6719 - augmented parse_matched_pair
6720 o fixed up backslash quoting and CTLESC handling after
6721 backslashes
6722 o match pairs of ${...} and $[...] inside double-quoted
6723 strings or `` strings
6724 o keep track of line number quoted string starts on for
6725 better error messages
6726 o push and pop delimiters when parsing quoted strings
6727 inside $(...), ${...}, and $[...] for use by the
6728 history code
6729 o set EOF_Reached to 1 if we get an EOF before finding the
6730 match closer
6731 - rewrote read_token_word from scratch to use parse_matched_pair:
6732 o shell quote characters use parse_matched_pair to find
6733 the matching quote
6734 o fixed up backslash parsing code
6735 o compound array assignments use parse_matched_pair
6736 o corrected all_digits and dollar_present computations, so,
6737 for instance, 2''>/dev/null is no longer accepted as
6738 identical to 2>/dev/null
6739 o converted ${...} parsing to use parse_matched_pair
6740 o removed printing of error messages about unmatched quotes;
6741 now handled by parse_matched_pair
6742 o converted $'...' and $"..." to use parse_matched_pair
6743 o removed all of the delimited_xxx and dollar_xxx variables
6744 and embedded_quoted_string
6745 - modified report_syntax_error to regularize error messages:
6746 o non-interactive shells and interactive shells running
6747 scripts with `.' now always report line numbers
6748 o unexpected EOF is always reported when EOF_Reached is true
6749 o non-interactive shells no longer duplicate the script name
6750 in error messages (e.g., `./z3: ./z3: line 3: syntax error')
6751
6752bashline.c
6753 - make sure `newnames' is freed in _ignore_completion_names
6754
6755lib/readline/complete.c
6756 - don't insert the first match on TAB completion in
6757 rl_complete_internal() if matches[0] is the empty string --
6758 that will overwrite whatever the user has typed, if dequoting
6759 what the user typed results in the empty string
6760
6761execute_cmd.c
6762 - include <limits.h> if HAVE_LIMITS_H is defined for ARG_MAX
6763 - only put the special environment variable for GNU getopt into
6764 the environment if ARG_MAX exceeds 10240
6765
6766subst.c
6767 - rewrote extract_dollar_brace_string so that it fully obeys
6768 the POSIX.2 rules for finding the closing `}' and uses
6769 skip_{single,double}_quoted rather than trying to do it with
6770 inline delimiters
6771 - removed the INC_NEST and DEC_NEST defines
6772
6773 6/14
6774 ----
6775jobs.c
6776 - don't print status messages for background jobs that complete
6777 successfully when running shell scripts
6778
6779builtins/shopt.def
6780 - when using shopt -o as a synonym for set -o, make sure $SHELLOPTS
6781 is updated
6782 - make sure to update $SHELLOPTS when using shopt to set or unset
6783 interactive comments
6784
6785execute_cmd.c
6786 - fixed find_in_path_element to not return non-executable files
6787 when FS_EXEC_PREFERRED is one of the flags, after saving such
6788 a file as file_to_lose_on (fix from william@nscs.fast.net)
6789
6790 6/17
6791 ----
6792lib/readline/complete.c
6793 - after printing possible completions, all lines of a multi-line
6794 prompt are redisplayed using rl_forced_update_display()
6795
6796subst.c
6797 - in expand_word_internal, only do tilde expansion on words where
6798 (flags & (W_ASSIGNMENT|W_QUOTED)) == W_ASSIGNMENT (unquoted
6799 assignment statements) and contain unquoted `=~' or `:~', and
6800 only if posixly_correct is off. POSIX.2 says that only the
6801 assignments preceding the command name should be tilde-expanded.
6802
6803 6/18
6804 ----
6805support/config.guess
6806 - recognize the new Pyramid DC-OSx as `mips-pyramid-sysv4'
6807
6808configure.in
6809 - set LOCAL_CFLAGS to -Xa for mips-pyramid-sysv4 as per
6810 Peter Chubb
6811
6812subst.c
6813 - variable assignment errors when there is not a command name
6814 after the assignments now causes a non-interactive shell to
6815 exit in POSIX.2 mode
6816
6817execute_cmd.c
6818 - if the iteration variable in a for statement is a read-only
6819 variable, a variable assignment error occurs. This causes
6820 non-interactive shells to exit in posix mode, and a failure
6821 status to be returned for other non-interactive shells and
6822 interactive shells
6823 - if the selection variable in a select statement is a read-only
6824 variable, a variable assignment error occurs, with the same
6825 consequences as a for statement variable assignment error
6826
6827doc/bashref.*
6828 - renamed features.* to bashref.*, since that more accurately
6829 reflects the current contents
6830
6831 6/19
6832 ----
6833test.c
6834 - changed three_arguments() to do one-argument tests on $1 and
6835 $3 and return the appropriate values if -a or -o is given as
6836 the second argument
6837 - changed three_arguments() to perform a one-argument test on
6838 $2 if $1 == '(' and $3 == ')' and return that result
6839 - make sure test_stat translates /dev/fd/xx to DEV_FD_PREFIX/xx
6840 so /dev/fd/0 always means the same thing, even on linux,
6841 which uses /proc/self/fd
6842
6843aclocal.m4
6844 - added a check for libncurses in BASH_CHECK_LIB_TERMCAP
6845
6846configure.in
6847 - added an initial message saying we're configuring for bash-2.0
6848
6849lib/glob/fnmatch.c
6850 - made a small change to fnmatch() to fix a bug matching patterns
6851 with multiple consecutive `*'s
6852
6853 6/20
6854 ----
6855parse.y
6856 - inhibit history expansion when calling pre_process_line() from
6857 shell_getc() if the current delimiter is a single quote, even
6858 if we're on a different line than the opening quote
6859 - make sure read_a_line prints a prompt if we're interactive and
6860 not using readline, and make sure we call clearerr() if we
6861 get EOF when interactive and not using readline
6862
6863bashhist.c
6864 - new function history_expansion_p(char *) returns 1 if the string
6865 passed contains the history expansion or history substitution
6866 characters
6867 - pre_process_line() now calls history_expansion_p and calls
6868 the history expansion code only if that returns 1
6869
6870 6/26
6871 ----
6872lib/readline/isearch.c
6873 - swap the behavior of ^J and ^M when i-searching. ^J now terminates
6874 the search without accepting the line. ^M terminates the search
6875 and accepts the line, executing the command
6876
6877examples/loadables/sprintf.c
6878 - new `sprintf' builtin: sprintf var format [args...]
6879
6880lib/readline/readline.c
6881 - added a line in _rl_dispatch that sets _rl_suppress_redisplay if
6882 the function is rl_insert and there is input available
6883
6884 6/27
6885 ----
6886builtins/getopts.def
6887 - new function, getopts_bind_variable(), used when assigning a value
6888 to the user-supplied variable passed to getopts(). It makes sure
6889 that that variable name is legal and prints an error message if it
6890 is not
6891
6892builtins/getopt.c
6893 - don't increment sh_optind until after we've checked whether or not
6894 the current option character appears in the list of options passed
6895 to getopts by the user
6896
6897 6/28
6898 ----
6899variables.c
6900 - added a new parameter to print_var_value: QUOTE. If it's non-zero
6901 and the variable's value contains shell metacharacters, quote the
6902 value so it can be read back in
6903
6904variables.h
6905 - changed extern declaration for print_var_value
6906
6907siglist.h
6908 - if SYS_SIGLIST_DECLARED is not defined, but HAVE_UNDER_SYS_SIGLIST
6909 is, only declare sys_siglist as extern char *sys_siglist[] if
6910 sys_siglist is not `#define'd
6911
6912parse.y
6913 - make sure a reserved word is acceptable before returning `}' as
6914 a token from special_case_tokens, even if the token read so far
6915 is "}"
6916 - make reset_parser set allow_open_brace to 0
6917
6918 7/1
6919 ---
6920test.c
6921 - fixed binop to not try to read s[3] if s[2] == '\0'. There are
6922 no one-character binary operators that begin with `-'
6923
6924variables.c
6925 - fixed kill_all_local_variables to do nothing if variable_context
6926 is >= local_variable_stack_size (indicating that we do have some
6927 local variables, but not at this level of function nesting, and
6928 we are beyond the end of the array allocated the last time we
6929 had local variables)
6930
6931 7/2
6932 ---
6933execute_cmd.c
6934 - non-interactive shells in posix mode should exit if the variable
6935 in a for command is not a valid identifier. This should really
6936 be caught by the parser
6937 - non-interactive shells in posix mode should exit if a function
6938 name is not a valid identifier. This should also be caught by
6939 the parser
6940
6941 7/3
6942 ---
6943jobs.c
6944 - non-interactive shells should ignore stopped children, so
6945 waitchld() should set waitpid_flags to WUNTRACED only if the
6946 shell is interactive and it's not a subshell environment
6947
6948lib/readline/signals.c
6949 - if not being compiled as part of the shell, readline should
6950 catch SIGTERM and clean up
6951
6952shell.c
6953 - change to isnetconn: on Solaris 2.5, getpeername() can return
6954 EINVAL rather than ENOTSOCK if the fd passed as the first
6955 argument is not a socket
6956
6957 7/5
6958 ---
6959lib/readline/complete.c
6960 - new variable, available to library users, to inhibit completion
6961 and cause the completion character to be inserted into the
6962 line with self-insert: rl_inhibit_completion. Set to 0 by default.
6963
6964lib/readline/readline.h
6965 - extern declaration for rl_inhibit_completion
6966
6967lib/readline/doc/rltech.texinfo
6968 - documented rl_inhibit_completion
6969
6970lib/readline/bind.c
6971 - new readline user variable: disable-completion. This provides
6972 users a way to toggle the value of rl_inhibit_completion
6973
6974doc/{bash.{1,html},readline.3}, lib/readline/doc/rluser.texinfo
6975 - documented disable-completion variable
6976
6977lib/readline/doc/Makefile
6978 - added `html' target to create html from rlman.texinfo and
6979 hist.texinfo
6980
6981 7/8
6982 ---
6983builtins/cd.def
6984 - only try cd spelling correction if the shell is currently
6985 interactive, regardless of value of `cdspell' option
6986
6987lib/posixheaders/alloca.h
6988 - AIX 4.2 needs `#pragma alloca' if gcc is not being used
6989
6990 7/9
6991 ---
6992builtins/getopts.def
6993 - return EXECUTION_FAILURE from getopts if it's trying to assign
6994 to a read-only variable
6995 - reset sh_badopt to zero in getopts_reset()
6996
6997builtins/getopt.c
6998 - new variable, sh_badopt, set to 1 if we find an illegal option
6999 - do the increment of sh_optind if sh_badopt is non-zero and we're
7000 at the end of the option string at the beginning of sh_getopt().
7001 The increment is deferred until the next call so $OPTIND is
7002 correct
7003
7004builtins/getopt.h
7005 - extern declaration of sh_badopt
7006
7007 7/10
7008 ----
7009Makefile.in
7010 - don't pass ALLOCA_SOURCE or ALLOCA_OBJECT to the make in lib/malloc
7011 - don't make libmalloc.a depend on ALLOCA_DEP -- it causes some
7012 compilers to build alloca.o in the top directory, and if ALLOCA
7013 is not defined, makes the malloc library depend on a directory
7014
7015aclocal.m4
7016 - some small changes to make the output look better
7017
7018memalloc.h
7019 - made some small changes suggested by the autoconf documentation
7020
7021 7/11
7022 ----
7023parse.y
7024 - swapped meanings of \h and \H in prompt_string_decode for
7025 bash-1.14.6 compatibility
7026
7027doc/{bash.{1,html},bashref.texi}
7028 - updated prompt string decoding section with swap of \h and \H
7029
7030general.c
7031 - print_timeval and print_time_in_hz now accept a FILE * as the
7032 first argument, so `times' can print to stdout while `time'
7033 prints to stderr
7034
7035execute_cmd.c
7036 - changed time_command to print the timing statistics to stderr
7037
7038builtins/times.def
7039 - added the FILE * argument to the calls to print_timeval and
7040 print_time_in_hz
7041
7042support/texi2html
7043 - upgraded to version 1.50
7044
7045error.c
7046 - include bashhist.h if HISTORY is defined for declarations of
7047 last_history_line() and remember_on_history
7048
7049lib/glob/glob.c
7050 - add a `#pragma alloca' as the first thing in the file if we're
7051 not using gcc and _AIX is defined
7052
7053lib/posixheaders/memalloc.h
7054 - remove the `#pragma alloca' stuff; it is done in the C source
7055 files now, to avoid problems with other AIX header file
7056 declarations
7057
7058 7/12
7059 ----
7060lib/readline/rltty.c
7061 - some changes to work around AIX 4.2 bugs (sometimes OPOST is unset
7062 in termios, sometimes FLUSHO is inexplicably set in termios, etc.)
7063
7064 7/15
7065 ----
7066lib/readline/rltty.c
7067 - make SETATTR use TCSADRAIN on POSIX machines. This setting is
7068 supposed to be used for changes that affect output
7069
7070[bash-2.0-alpha4 released]
7071
7072 7/16
7073 ----
7074trap.c
7075 - changed reset_or_restore_signal_handlers to honor traps before
7076 special signals, so that `trap "" 2' works right and causes
7077 children to ignore SIGINT
7078
7079locale.c
7080 - added lc_all variable to track the value of LC_ALL
7081 - added new functions: set_default_locale_vars, set_locale_var,
7082 set_lang, get_locale_var, removed get_current_messages_locale
7083
7084subst.h
7085 - added extern declaration for sv_locale
7086
7087subst.c
7088 - LC_ALL, LC_CTYPE, LC_MESSAGES, and LANG are now special variables;
7089 sv_locale() is called when they are assigned a value
7090
7091shell.c
7092 - call set_default_locale_vars after initializing the shell variables
7093 in main(), so LC_CTYPE and LC_MESSAGES (if present) have values
7094 - shell.c does not need to include <locale.h>
7095
7096general.c
7097 - changed print_timeval and print_time_in_hz to format their output
7098 as Posix.2 specifies for `time -p' if the new POSIX_TIME argument
7099 is non-zero
7100
7101parse.y
7102 - new grammar production: timespec, to handle `time' and `time -p'
7103 - change to special_case_tokens so that -p after `time' returns
7104 TIMEOPT
7105
7106execute_cmd.c
7107 - set posix_time in time_command if the command's flags include
7108 CMD_TIME_POSIX
7109 - call print_timeval and print_time_in_hz with posix_time as
7110 the new third argument
7111 - use a space to separate the word (`real') and the time if we're
7112 in posix mode. This is what POSIX.2 defines for `time -p'
7113
7114builtins/times.def
7115 - call print_timeval and print_time_in_hz with 0 as the new third
7116 argument
7117
7118command.h
7119 - new flag: CMD_TIME_POSIX, used to handle `time -p'
7120
7121doc/{bash.{1,html},bashref.texi}
7122 - documented `time -p'
7123
7124 7/17
7125 ----
7126support/mkversion.c
7127 - include `config.h' before any other include files
7128
7129parse.y
7130 - initialize was_dollar to 0 in parse_matched_pair
7131
7132configure.in
7133 - removed duplicate check for <sys/file.h> from call to
7134 AC_HAVE_HEADERS
7135
7136sig.c
7137 - include siglist.h so we can find out if it defines HAVE_SYS_SIGLIST
7138
7139siglist.h
7140 - define HAVE_SYS_SIGLIST if we end up defining sys_siglist as
7141 _sys_siglist (Solaris 2.[45])
7142
7143siglist.c
7144 - include "siglist.h" before testing whether or not HAVE_SYS_SIGLIST
7145 is defined; it may be defined in there (Solaris 2.[45])
7146
7147 7/19
7148 ----
7149examples/misc/alias-conv.sh
7150 - updated, now uses code from examples/functions/csh-compat to do
7151 the alias conversion, uses `command' builtin in functions it
7152 creates, does some substitution of csh special variables to
7153 bash equivalents
7154
7155examples/misc/cshtobash
7156 - a more ambitious script that attempts to convert csh aliases,
7157 environment variables, and local variables to bash equivalents
7158
7159 7/22
7160 ----
7161bashline.c
7162 - added `:' to the set of completion word break characters so that
7163 individual directories in $PATH assignments can be completed
7164
7165aclocal.m4
7166 - added a new macro, BASH_CC_WORKS, that aborts configuration if
7167 ${CC} can't compile a simple program successfully
7168
7169configure.in
7170 - call BASH_CC_WORKS before doing anything else
7171
7172 7/23
7173 ----
7174execute_cmd.c
7175 - fixed select_query to print the prompt ($PS3) to stderr
7176
7177support/bashbug.sh
7178 - workaround for bug in SunOS 5.x /bin/sh that causes it to
7179 not ignore interrupts while waiting for a foreground process
7180 to exit
7181
7182 7/24
7183 ----
7184general.c
7185 - added new functions to decompose `timeval's and `clock_t's into
7186 seconds and thousandths of seconds: timeval_to_secs and
7187 clock_t_to_secs
7188 - changed print_timeval and print_time_in_hz to call timeval_to_secs
7189 and clock_t_to_secs, respectively
7190 - removed no-longer-used third argument for print_timeval and
7191 print_time_in_hz -- `time' output is now done in execute_cmd.c
7192
7193general.h
7194 - new extern declarations for timeval_to_secs and clock_t_to_secs
7195
7196builtins/times.def
7197 - changed calls to print_timeval and print_time_in_hz, removing the
7198 no-longer-used third argument
7199
7200execute_cmd.c
7201 - changed the way time_command prints its output: it now interprets
7202 a format string, replacing several escape sequences prefixed with
7203 a `%' with the real, user, and system times. There are options in
7204 the format string to ask for the `long' format that `times' uses
7205 as well as to specify the number of places after the decimal point,
7206 and whether to output fractional seconds at all
7207 - time_command now uses the value of the `TIMEFORMAT' variable, if
7208 present, to format the timing output. This is flexible enough to
7209 encompass the bash default, posix `time -p', BSD, and SV time
7210 formats
7211
7212 7/25
7213 ----
7214Makefile.in
7215 - `make clean' should delete the files listed in $(CREATED_SUPPORT);
7216 `make mostlyclean' should not
7217
7218doc/{bash.{1,html},bashref.texi}
7219 - fixed an error in the description of the effect that setting and
7220 unsetting GLOBIGNORE has on the setting of the `dotglob' option
7221
7222doc/bashref.texi
7223 - updated the section listing the major differences between bash
7224 and the SVR4.2 shell
7225
7226lib/readline/readline.c
7227 - removed the setting of _rl_suppress_redisplay, since it doesn't
7228 really do anything yet
7229
7230oslib.c
7231 - new function get_clk_tck (void), returns the value of _SC_CLK_TCK
7232 if sysconf(3) is available, otherwise returns the value of
7233 CLOCKS_PER_SEC (default 60)
7234
7235general.c
7236 - moved CLOCKS_PER_SEC defines to oslib.c
7237 - changed clock_t_to_secs to call get_clk_tck once to get the
7238 right value to use
7239
7240externs.h
7241 - extern declaration for get_clk_tck
7242
7243execute_cmd.c
7244 - changed print_formatted_time so that a `%' at the end of the string
7245 is output literally
7246 - changed print_formatted_time to output a newline after the
7247 translated format string, so it does not need to be included in
7248 the format
7249 - changed BASH_TIMEFORMAT (the default time format) to have a leading
7250 newline to match ksh93
7251
7252configure.in
7253 - use `shlicc2' on BSD/OS machines
7254
7255 7/26
7256 ----
7257doc/bash.html
7258 - major overhaul, cleaned up text, corrected some minor HTML errors
7259
7260variables.c
7261 - call sv_optind and sv_opterr to initialize the getopts stuff in
7262 initialize_shell_variables
7263
7264 7/29
7265 ----
7266shell.c
7267 - don't let maybe_execute_file try to read files that are not
7268 `regular files'
7269
7270 7/30
7271 ----
7272parse.y
7273 - cast `string' in yy_string_get() to unsigned char * to avoid
7274 sign extension bugs. For example, bash -c $'ls\377who'
7275
7276
7277builtins/reserved.def
7278 - add help text for the `time' reserved word
7279 - deleted description of `HISTCONTROL'
7280 - added descriptions for HISTIGNORE, PWD, HOSTNAME, GLOBIGNORE,
7281 MACHTYPE
7282
7283 7/31
7284 ----
7285builtins/common.c
7286 - parse_and_execute saves and restores the line number around
7287 calls, and resets it to 0 when pushing the string onto the
7288 input stack
7289
7290parse.y
7291 - added code that parses `` within a double-quoted string as a
7292 single word
7293
7294 8/6
7295 ---
7296configure.in, config.h.in
7297 - look for `textdomain' as well as `gettext' for internationalization
7298
7299locale.c
7300 - when LC_MESSAGES is set, call textdomain as well as setlocale
7301 - new variable `default_domain', used to track the value of
7302 $TEXTDOMAIN
7303
7304subst.c
7305 - call sv_locale when TEXTDOMAIN changes
7306
7307 8/7
7308 ---
7309error.c
7310 - new function, sys_error(), which prints a formatted string followed
7311 by a colon and strerror(errno) to stderr
7312
7313error.h
7314 - extern declaration for sys_error
7315
7316jobs.c, nojobs.c, input.c, execute_cmd.c, subst.c
7317 - changes to use sys_error()
7318
7319[many files]
7320 - changes to many of the literal strings in the code for consistency
7321 and easier potential translation
7322
7323 8/8
7324 ---
7325parse.y
7326 - new function debug_parser(int) to toggle the value of yydebug
7327 if YYDEBUG != 0
7328
7329 8/9
7330 ---
7331oslib.c
7332 - don't use CLOCKS_PER_SEC, just try to get CLK_TCK (60 by default)
7333
7334bashline.c
7335 - set saved_history_line_to_use to -1 when it's not going to be used
7336 rather than 0. A value of 0 can be confused with the first
7337 history line
7338
7339builtins/evalstring.c
7340 - moved parse_and_execute and auxiliary functions here from
7341 builtins/common.c
7342
7343builtins/evalfile.c
7344 - moved maybe_execute_file here from shell.c
7345
7346Makefile.in, builtins/Makefile.in
7347 - changes necessitated by the new files
7348
7349 8/12
7350 ----
7351builtins/common.c
7352 - fixed an off-by-one bug in single_quote that could make bash
7353 run off the end of a string if it consisted entirely of single
7354 quotes
7355
7356 8/13
7357 ----
7358shell.c
7359 - moved code from main() to a new function: open_shell_script
7360 - don't try to fclose(default_input) if BUFFERED_INPUT is defined
7361 - moved argument binding code out of two places in main() and
7362 open_shell_script() to a new function: bind_args(). This takes
7363 an additional argument telling whether to bind starting at $0
7364 or $1
7365 - moved the code that calls the with_input_from_* functions into
7366 a new function: set_bash_input
7367 - moved the normal shell command-line option parsing code out of
7368 main() into a new function: parse_shell_options
7369 - moved the long option parsing code out of main() into a new
7370 function: parse_long_options()
7371
7372general.c
7373 - new function: move_to_high_fd(fd), which tries to move FD to a
7374 file descriptor close to the allowed maximum, returning the new
7375 fd and closing the old one (or returning the old one if something
7376 goes wrong)
7377
7378general.h
7379 - new extern declaration for move_to_high_fd
7380
7381variables.c
7382 - moved indirection_level_string() here from shell.c
7383
7384jobs.c
7385 - change initialize_jobs to use move_to_high_fd() instead of the
7386 inline code to do the same thing
7387
7388 8/14
7389 ----
7390lib/readline/readline.c
7391 - add `en_US.ISO8859-1' to the list of legal LANG values that turns
7392 on readline's 8-bit mode
7393
7394 8/15
7395 ----
7396builtins/evalfile.c
7397 - combined source_file and maybe_execute_file into a new function
7398 _evalfile(fname, flags), where the flags select the appropriate
7399 behavior
7400
7401eval.c
7402 - moved the functions that perform the read-eval loop here from
7403 shell.c
7404
7405execute_cmd.c
7406 - changed CPU calculation for printing timing statistics using
7407 ideas and code from Deven Corzine (deven@ties.org)
7408
7409eval.c, builtins/evalstring.c
7410 - make sure we dispose of global_command if set -n is on and the
7411 shell is not interactive
7412
7413 8/16
7414 ----
7415variables.c
7416 - make a new array variable, BASH_VERSINFO, with version information:
7417
7418 BASH_VERSINFO[0] = release (2)
7419 BASH_VERSINFO[1] = version (00)
7420 BASH_VERSINFO[2] = patch level (0)
7421 BASH_VERSINFO[3] = build version (1058)
7422 BASH_VERSINFO[4] = release status (beta1)
7423 BASH_VERSINFO[5] = $MACHTYPE (sparc-sun-sunos4.1.4)
7424
7425doc/{bash.{1,html},bashref.texi}
7426 - Documented BASH_VERSINFO
7427
7428configure.in, config.h.in
7429 - look for bindtextdomain(), set HAVE_BINDTEXTDOMAIN if found
7430
7431subst.c
7432 - call sv_locale if TEXTDOMAINDIR is set or changes
7433
7434locale.c
7435 - handle TEXTDOMAINDIR in set_locale_var; call bindtextdomain if
7436 it is present
7437
7438tests/array.tests
7439 - added calls to egrep to filter out BASH_VERSINFO and PIPESTATUS,
7440 which can vary from system to system
7441
7442 8/19
7443 ----
7444shell.c
7445 - moved line_buffer_stream from here to oslib.c, made it into a
7446 replacement for setlinebuf() if that is not available
7447
7448externs.h
7449 - extern declaration for setlinebuf()
7450
7451lib/readline/input.c
7452 - in rl_gather_tyi, punt if chars_avail < 0 after checking input fd
7453
7454 8/20
7455 ----
7456builtins/suspend.def
7457 - send SIGSTOP instead of SIGTSTP
7458
7459 8/21
7460 ----
7461builtins/colon.def
7462 - added true and false as builtins (undocumented)
7463
7464CWRU/POSIX.NOTES, doc/bashref.texi
7465 - note that process substitution is not available in posix mode
7466
7467bashintl.h
7468 - new header file for internationalization, included by locale.c
7469
7470 8/22
7471 ----
7472subst.c
7473 - in command_substitute, set istring to NULL before trying to
7474 make the pipe, so if that fails, the code at error_exit:
7475 doesn't try to free it
7476
7477execute_cmd.c
7478 - when executing a shell script without a leading `#!' internally,
7479 and the shell is not interactive, close the fd to the script
7480 we're reading. If this is called by the exec builtin, the shell
7481 will not have forked, and the fd will not have been closed, even
7482 though it's marked close-on-exec
7483 - if subshell_argv is non-null, free its members (except 0) and
7484 subshell_argv in shell_execve before reassigning it
7485 - dispose of currently_executing_command before jumping back to
7486 subshell_top_level
7487
7488builtins/hash.def
7489 - use a sentinel variable so we only initialize the hash table
7490 once in initialize_filename_hashing
7491
7492shell.c
7493 - don't flush the filename hash table in shell_reinitialize
7494 - free dollar_vars[0] in set_shell_name before assigning it
7495 - don't fetch the current hostname more than once
7496 - don't fetch the current user information more than once unless
7497 the uid changes
7498
7499parse.y
7500 - initialize_bash_input should free bash_input.name if it is
7501 non-null before zeroing it
7502
7503 8/23
7504 ----
7505aclocal.m4
7506 - changed BASH_CHECK_SOCKLIB: if -lsocket is present, check for
7507 and cache the existence of -lnsl. Define LIBS appropriately
7508 based on the values of the cache variables rather than relying
7509 on the autoconf tests to do it
7510
7511 8/26
7512 ----
7513parse.y
7514 - fix up yy_readline_get and yy_stream_get to fix the sign
7515 extension problem
7516
7517shell.c
7518 - move the setjmp(top_level) that catches early SIGINTs to the
7519 first statement in main()
7520
7521Makefile.in
7522 - added a `strip' target to strip the binary
7523
7524[bash-2.0-beta1 frozen]
7525
7526 8/27
7527 ----
7528parse.y
7529 - replaced several static state variables with a single flags word:
7530 parser_state
7531
7532 8/28
7533 ----
7534parse.y
7535 - in read_token_word, combined the ${...} case with the other
7536 expansion cases -- the code was identical
7537 - added code to handle ksh-style ((...)) -- equivalent to
7538 `let "..."'. In fact, the above construct is translated internally
7539 into `let "..."', so error messages output by the evaluator
7540 will contain `let'
7541
7542expr.c
7543 - changed evalerror to call internal_error so the name of the
7544 shell script is prefixed to the message, if necessary
7545
7546Makefile.in
7547 - changed RELSTATUS to `beta2'
7548
7549tests/{arith,new-exp}.{tests,right}
7550 - changed the expected error message because of the change in format
7551 of the arithmetic evaluation error messages in expr.c
7552
7553builtins/pushd.def
7554 - changed pushd_builtin so `pushd -' is equivalent to `pushd $OLDPWD'
7555
7556externs.h
7557 - changed the extern declaration for setlinebuf() to avoid having
7558 to include stdio.h before externs.h everywhere
7559
7560 8/29
7561 ----
7562error.c
7563 - new function, parser_error, for use by parts of the parser that
7564 don't want to call report_syntax_error
7565
7566error.h
7567 - extern declaration for parser_error
7568
7569parse.y
7570 - changed some parts of the parser to use parser_error
7571 - made the ((...)) code #ifdef'd on DPAREN_ARITHMETIC
7572
7573shell.c
7574 - added a line to the --help output saying to use `bashbug' to
7575 report bugs
7576
7577configure.in
7578 - added new option: --enable-dparen-arithmetic; it controls
7579 the DPAREN_ARITHMETIC define in config.h
7580 - changed $host_os check for SCO to only enable -DWAITPID_BROKEN
7581 for sco3.2v5; all other SCO versions enable -DMUST_UNBLOCK_CHILD
7582
7583config.h.in
7584 - added line for DPAREN_ARITHMETIC, modified by configure
7585
7586doc/{bash.{1,html},bashref.texi}
7587 - documented new ((...)) command and new configuration option
7588
7589execute_cmd.c
7590 - shell_execve should not try to close default_buffered_input unless
7591 it is >= 0. Other code that closes it and deallocates the buffer
7592 should set default_buffered_input to -1
7593
7594 8/30
7595 ----
7596configure.in
7597 - more changes to LOCAL_CFLAGS for sco machines
7598
7599error.c
7600 - changed parser_error to handle all cases of the shell being
7601 interactive, not interactive, reading from a script, and reading
7602 from some other file
7603
7604parse.y
7605 - changed report_syntax_error to call parser_error for consistent
7606 messages
7607
7608dispose_cmd.c
7609 - change dispose_command to use programming_error instead of
7610 report_error
7611
7612execute_cmd.c, input.c, general.c
7613 - changed calls to report_error to internal_error, since we don't
7614 want to possibly exit in any of those cases
7615
7616 9/3
7617 ---
7618input.c
7619 - changed the `localbuf' type to `unsigned char'
7620
7621parse.y
7622 - changed yy_stream_get to use feof to test for end of file when
7623 not using getc_with_restart
7624
7625 9/6
7626 ---
7627config.h.top
7628 - added a commented-out define for SYS_BASH_LOGOUT, which is a
7629 system-wide .bash_logout file, run when a login shell exits
7630 - added /sbin to STANDARD_UTILS_PATH
7631
7632builtins/exit.def
7633 - added support for SYS_BASH_LOGOUT
7634
7635 9/10
7636 ----
7637lib/readline/{{chardefs,histlib}.h,{bind,histexpand,readline,util,vi_mode}.c}
7638 - changed to_upper to _rl_to_upper and to_lower to _rl_to_lower
7639 - changed digit_value to _rl_digit_value
7640 - changed digit_p to _rl_digit_p
7641 - changed uppercase_p and lowercase_p to _rl_uppercase_p and
7642 _rl_lowercase_p respectively
7643 - changed pure_alphabetic to _rl_pure_alphabetic
7644
7645support/zecho.c
7646 - new file, implements a bare-bones echo (no -n, no \-escapes),
7647 to be used by tests
7648
7649tests/rhs-exp.tests
7650 - changed calls to echo to use recho to avoid errors when bash is
7651 configured with --enable-usg-echo-default
7652
7653tests/more-exp.tests
7654 - changed some calls to echo to use zecho to avoid errors when bash
7655 is configured with --enable-usg-echo-default
7656
7657 9/11
7658 ----
7659lib/readline/histexpand.c
7660 - fixed a possible off-by-one error in history_expand_internal when
7661 deciding whether or not to reallocate `result'
7662
7663expr.c
7664 - fixed expcond() so that an assignment may be supplied as the
7665 token after the `?'
7666 - illegal bases now cause an evaluation error
7667 - multiple base specifications now cause an evaluation error
7668
7669tests/arith.tests
7670 - added more tests for conditional operator and associativity
7671
7672tests/{run-heredoc,heredoc.{tests,right}}
7673 - new set of tests for here-documents
7674
7675builtins/common.c
7676 - print out the name returned by get_name_for_error in
7677 builtin_error()
7678
7679subst.c
7680 - set this_command_name to NULL before processing command-line
7681 assignment statements so arithmetic evaluation errors don't
7682 print garbage
7683 - according to POSIX.2, echo ${foo?$x} should print the expanded
7684 value of $x, even when it doesn't expand into anything
7685
7686 9/12
7687 ----
7688shell.c
7689 - changed the execution of startup files so that $ENV is never
7690 run by a non-interactive shell and an interactive shell begun
7691 as `sh' reads and executes $ENV, as posix specifies
7692
7693doc/{bash.{1,html},bashref.texi}
7694 - updated description of startup file behavior
7695
7696doc/Makefile.in
7697 - make sure references to bashref.texi are preceded by $(srcdir)/
7698 so we can build the documentation in another directory just by
7699 typing `make'; e.g. after giving configure the --srcdir option
7700
7701subst.c
7702 - change to array_remove_pattern to avoid evaluating the `param'
7703 part of the ${param#word} spec twice when doing things like
7704 echo ${A[x=(i+=1)]#${A[y=(i+=2)]}}
7705
7706 9/13
7707 ----
7708builtins/bashgetopt.c
7709 - fixed a problem with `;' option specifier (optional argument)
7710
7711support/config.{sub,guess}
7712 - added cases to recognize CRAY C90 and T90
7713
7714builtins/ulimit.def
7715 - rewritten almost from scratch to use internal_getopt and to not
7716 mask the return value from getrlimit/setrlimit, and to make it
7717 easier to maintain
7718 - added `-l' option for systems with RLIMIT_MEMLOCK (4.4 BSD)
7719
7720doc/{bash.{1,html},bashref.texi}
7721 - documented new `-l' option to `ulimit'
7722
7723 9/24
7724 ----
7725parse.y
7726 - added `in' to the list of tokens that should not be followed by
7727 a semicolon when combining history lines
7728 - removed the special-case code in history_delimiting_chars that
7729 tried to be smart about `()'
7730
7731 9/25
7732 ----
7733print_cmd.c
7734 - fixes to print_group_command from Andreas Schwab
7735 - rewrote indent() to use a single malloced string for the spaces
7736 to print, rather than calling cprintf multiple times
7737
7738shell.c
7739 - make sure to set the strings in current_user to NULL after freeing
7740 their contents in uidget().
7741
7742parse.y
7743 - make sure decode_prompt_string quotes the values inserted by the
7744 \w and \W escape sequences using backslashes if the string will be
7745 expanded later because promptvars is set
7746
7747support/mkdirs
7748 - removed leading `^' from regular expressions to be matched by
7749 `expr' on the advice of meyering@appaloosa.asic.sc.ti.com
7750
7751 9/26
7752 ----
7753parse.y
7754 - added a few more possible flag values for parser_state
7755 - changed history_delimiting_chars to not add a semicolon after a
7756 right paren if we're parsing a case statement
7757
7758 9/27
7759 ----
7760builtins/ulimit.def
7761 - a few minor cleanups
7762
7763 10/1
7764 ----
7765builtins/trap.def
7766 - make sure first_arg is non-empty before calling signal_object_p()
7767
7768[bash-2.0-beta2 frozen]
7769
7770 10/2
7771 ----
7772bashintl.h
7773 - if we have setlocale(), but don't have a definition for LC_ALL,
7774 undefine HAVE_SETLOCALE
7775
7776configure.in
7777 - set LOCAL_LDFLAGS on AIX 4.2 to allow dynamic loading of builtins
7778
7779builtins/enable.def
7780 - use correct flags for AIX 4.2 in dlopen call if _AIX is defined
7781
7782examples/loadables/Makefile
7783 - add sample commands for AIX 4.2
7784
7785 10/3
7786 ----
7787variables.c
7788 - new functions: merge_temporary_env(), merge_builtin_env(), to
7789 take temporary_env and builtin_env, respectively, and create
7790 shell variables from them
7791
7792variables.h
7793 - new extern declarations for merge_temporary_env() and
7794 merge_builtin_env()
7795
7796execute_cmd.c
7797 - if variable assignments preceds a posix special builtin, and the
7798 shell is in posix mode, those assignments should persist in the
7799 shell environment after the builtin completes
7800
7801doc/bashref.texi
7802 - modified description of what's changed by posix mode to include
7803 the persistance of assignment statements preceding special builtins
7804
7805doc/mkposix
7806 - new script to create CWRU/POSIX.NOTES directly from the `Bash
7807 POSIX Mode' node of bashref.texi, like INSTALL is created
7808
7809 10/4
7810 ----
7811lib/{malloc,glob,readline}/Makefile.in, builtins/Makefile.in
7812 - don't have autoconf substitute LOCAL_CFLAGS into the CFLAGS
7813 assignment so people on SCO 3.2v[45] can still build with
7814 NO_MEMSCRAMBLE even when they run `make CFLAGS=...'
7815
7816test.c
7817 - renamed eaccess() to test_eaccess() to avoid conflict with SCO
7818
7819config.h.bot
7820 - #undef HAVE_GETCWD if GETCWD_BROKEN is defined, so we use the
7821 replacement in getcwd.c
7822
7823general.c
7824 - fixed a small memory leak in full_pathname that occurs if
7825 getcwd() returns NULL
7826
7827oslib.c
7828 - new constant string variable: bash_getcwd_errstr, to use when
7829 getcwd() returns NULL
7830
7831{general,jobs}.c, parse.y, builtins/{cd.def,common.c}
7832 - change calls to getwd() to use getcwd() instead
7833
7834general.c, builtins/common.c, builtins/cd.def
7835 - changed error behavior when getcwd() returns NULL to use
7836 bash_getcwd_errstr, sys_error(), and strerror(errno) where
7837 appropriate
7838
7839sig.c
7840 - change a couple of calls to signal to set_signal_handler
7841
7842aclocal.m4
7843 - added definitions of _popen and _pclose to the BASH_FUNC_GETCWD
7844 macro
7845
7846configure.in
7847 - added -DPATH_MAX=1024 to LOCAL_CFLAGS for sco3.2v[45] on the
7848 advice of <grog@lemis.de>
7849 - removed check for getwd(3)
7850
7851externs.h
7852 - removed extern declaration for getwd(), added extern declaration
7853 for getcwd() if HAVE_GETCWD is not defined
7854
7855oslib.c
7856 - removed definition of getwd(); it is no longer used
7857
7858lib/readline/rltty.c
7859 - changed SETATTR macro for SCO POSIX systems to call tcsetattr
7860 with TCSANOW, on advice of <wbader@nacs.fast.net>
7861
7862 10/7
7863 ----
7864support/mkdirs
7865 - slight change to work around a bug in the HP-UX `expr'
7866
7867 10/8
7868 ----
7869lib/readline/vi_mode.c
7870 - changes so that the text inserted with an `i' command is available
7871 to be reinserted with `.'
7872
7873examples/functions/autoload.v2
7874 - new implementation: uses arrays, keeps a list of autoloaded
7875 functions, allows autoloaded functions to be removed, allows
7876 autoloaded functions to be listed
7877
7878execute_cmd.c
7879 - when freeing the members of subshell_argv in shell_execve(), free
7880 only the members up to subshell_argc
7881
7882 10/9
7883 ----
7884configure.in
7885 - replaced calls to AC_HAVE_FUNCS with AC_CHECK_FUNCS
7886 - replaced calls to AC_FUNC_CHECK with AC_CHECK_FUNC
7887 - replaced calls to AC_HAVE_HEADERS with AC_CHECK_HEADERS
7888 - added additional code to check for libintl.{a,so} for the
7889 internationalization functions if bindtextdomain is not found
7890 in libc
7891 - define HAVE_WAIT3 if AC_FUNC_CHECK(wait3,...) succeeds, rather
7892 than HAVE_FUNC_WAIT3, which is not used in the source
7893 - added a call to AC_FUNC_STRCOLL to check for the presence of a
7894 working strcoll(3)
7895
7896config.h.in
7897 - removed HAVE_FUNC_WAIT3
7898 - added HAVE_STRCOLL
7899
7900variables.c, stringlib.c
7901 - move sort_char_array from variables.c to stringlib.c
7902
7903variables.h, externs.h
7904 - move extern declaration of sort_char_array from variables.h to
7905 externs.h
7906
7907variables.c
7908 - don't sort the exported environment, even when we're not in
7909 posix mode
7910
7911stringlib.c
7912 - changed qsort_string_compare to use strcoll(3) if it is available
7913 (HAVE_STRCOLL is defined). This means that the results of glob
7914 expansions are now sorted in the per-locale collation order
7915
7916locale.c
7917 - track the value of $LC_COLLATE and call setlocale(LC_COLLATE,...)
7918 when it changes. Also, set its default value
7919
7920subst.c
7921 - LC_COLLATE is now a special variable; call sv_locale when it is
7922 assigned to or unset
7923
7924lib/readline/util.c
7925 - move compare_strings here from complete.c; renamed it
7926 _rl_qsort_string_compare; made it use strcoll(3) if it's
7927 available; made it global so other library files can use it
7928
7929lib/readline/complete.c
7930 - use _rl_qsort_string_compare instead of static compare_strings.
7931 This means that completions are now sorted in a locale-specific
7932 collation order
7933
7934lib/readline/funmap.c
7935 - removed static declaration of qsort_string_compare; qsort now
7936 uses _rl_qsort_string_compare instead
7937
7938oslib.c
7939 - rewrote stricmp, strnicmp; renamed them strcasecmp and
7940 strncasecmp, since they're only compiled in if HAVE_STRCASECMP
7941 is not defined
7942
7943externs.h
7944 - removed extern declarations of strnicmp, stricmp, replacing them
7945 with declarations of strcasecmp and strncasecmp if HAVE_STRCASECMP
7946 is not defined; removed #defines of stricmp and strnicmp to
7947 strcasecmp and strncasecmp
7948
7949trap.c
7950 - changed calls to stricmp to direct calls to strcasecmp
7951
7952Makefile.in
7953 - bumped RELSTATUS to `beta3'
7954
7955doc/bash.{1,html}
7956 - added mention of LC_COLLATE
7957
7958doc/bashref.texi
7959 - removed item about sorting environment from the section on posix
7960 mode
7961
7962 10/16
7963 -----
7964subst.c
7965 - fixed array_length_reference to return 0 for an unbound variable
7966 and 1 for a variable that is not an array
7967
7968examples/scripts.v2/cdhist.bash
7969 - package with functions to replace cd and maintain a cd directory
7970 stack
7971
7972examples/scripts.v2/pmtop
7973 - a `poor man's top' for SunOS 4.x and BSD
7974
7975examples/scripts.v2/bashrand
7976 - a script to return a random number within a specified range, with
7977 an optional seed
7978
7979examples/scripts/zprintf
7980 - printf(1) replacement that uses gawk to do the output
7981
7982doc/{bash.{1,html},bashref.texi}, lib/readline/doc/hsuser.texinfo
7983 - several small corrections
7984
7985 10/17
7986 -----
7987variables.c
7988 - changed the calls to list_string_with_quotes and then
7989 expand_words_no_vars in assign_array_var_from_string to a single
7990 call to expand_string. This behaves more rationally, and closer
7991 to ksh93
7992
7993subst.c
7994 - commented out list_string_with_quotes -- it is no longer used
7995
7996lib/readline/terminal.c
7997 - new function, _rl_set_screen_size(int rows, int cols), to set
7998 readline's idea of the screen size
7999
8000jobs.c, nojobs.c
8001 - make sure that window size changes are propagated back down to
8002 the readline code, by calling _rl_set_screen_size with the
8003 new sizes. This happens when bash gets a SIGWINCH or if
8004 `checkwinsize' is set with `shopt'
8005
8006 10/18
8007 -----
8008support/config.guess
8009 - added code to recognize the various NetBSD ports
8010
8011lib/readline/signals.c
8012 - don't install a handler for SIGALRM if the containing application
8013 has installed a handler with SA_RESTART as part of the flags.
8014 This is in effect, obviously, only for systems with POSIX signals.
8015
8016subst.c
8017 - make parameter_brace_expand_length expand variables in a double-
8018 quoted environment so it takes spaces in the variable value into
8019 account
8020
8021 10/21
8022 -----
8023command.h
8024 - flags for possible values of subshell_environment telling what
8025 caused the subshell
8026
8027builtins/command.def
8028 - the `command' builtin should not be setting CMD_NO_FORK at all;
8029 it doesn't know enough about the execution context to do so
8030
8031execute_cmd.c, subst.c
8032 - set subshell_environment to one of the values in command.h rather
8033 than to `1', so we know what kind of subshell it is (just for
8034 informational purposes; nothing actually uses this yet)
8035
8036
8037 10/22
8038 -----
8039execute_cmd.c
8040 - just return EXECUTION_SUCCESS immediately in execute_command_internal
8041 if read_but_dont_execute is set
8042
8043 10/23
8044 -----
8045general.c
8046 - fixed check_dev_tty to return immediately if ttyname() returns NULL
8047
8048builtins/suspend.def
8049 - SIGSTOP cannot be caught, so there's no reason to try to do so
8050
8051examples/loadables/{finfo,pathchk,print}.c
8052 - minor fixes
8053
8054pathexp.c
8055 - fix to off-by-one error in setup_ignore_patterns
8056
8057jobs.c
8058 - try to set the tty pgrp to our pgrp if we change our pgrp to our
8059 pid and become a process group leader. If it doesn't work,
8060 reset our pgrp to what it was originally and disable job control
8061
8062aclocal.m4
8063 - new test, BASH_STRUCT_TERMIO_LDISC, to test for a c_line member
8064 of struct termio
8065
8066config.h.in
8067 - add a new preprocessor variable, TERMIO_LDISC, undefined by default
8068
8069configure.in
8070 - call BASH_STRUCT_TERMIO_LDISC after BASH_STRUCT_TERMIOS_LDISC
8071
8072 10/25
8073 -----
8074lib/readline/terminal.c
8075 - increased the size of the termcap buffers to 4096
8076
8077 10/29
8078 -----
8079parse.y
8080 - include memalloc.h for uses of alloca that the code in the
8081 generated bison parser does not catch (e.g., HP-UX 10.10)
8082
8083aclocal.m4
8084 - new test, BASH_KERNEL_RLIMIT_CHECK, to check whether a given
8085 HP-UX machine needs _KERNEL defined for the RLIMIT_* defines in
8086 <sys/resource.h> (9.05, 10.01 yes, 10.10,10.20 no)
8087
8088configure.in
8089 - call BASH_KERNEL_RLIMIT_CHECK if $host_os begins with `hpux'
8090
8091config.h.in
8092 - new #undef for RLIMIT_NEEDS_KERNEL
8093
8094builtins/ulimit.def
8095 - only define _KERNEL before including <sys/resource.h> if HPUX
8096 and RLIMIT_NEEDS_KERNEL are both defined
8097
8098[bash-2.0-beta3 frozen]
8099
8100 11/1
8101 ----
8102locale.c
8103 - if setting LC_ALL to a null value (as is done when `unset LC_ALL'
8104 is run), call setlocale() to set LC_ALL back to default_locale
8105
8106lib/readline/readline.c
8107 - moved i18n code from here to nls.c
8108
8109lib/readline/Makefile.in, Makefile.in
8110 - new readline library member, nls.c
8111
8112lib/readline/nls.c
8113 - new file, with internationalization code from readline.c (such as
8114 it is)
8115 - updated legal_lang_values to just contain a list of codesets
8116 - added code modified from a diff sent by Ulrich Drepper
8117 <drepper@cygnus.com> to parse a locale specification and isolate
8118 and normalize the codeset part, for checking against the values
8119 in legal_lang_values
8120
8121 11/4
8122 ----
8123builtins/setattr.def, locale.c, aclocal.m4, oslib.c
8124 - minor cleanups
8125
8126 11/5
8127 ----
8128lib/readline/complete.c, test.c, trap.c
8129 - more minor cleanups
8130
8131 11/6
8132 ----
8133parse.y
8134 - added a `flags' parameter to parse_matched_pair, currently unused
8135
8136 11/7
8137 ----
8138configure.in, config.h.in
8139 - add a check for time_t, defaulting to `long' if it's not
8140 defined in <sys/types.h>
8141
8142builtins/fc.def
8143 - use `time_t *' instead of `long *' in call to time()
8144
8145 11/8
8146 ----
8147configure.in
8148 - removed check for getpwent in libsun.a; it's not necessary for
8149 recent versions of irix (irix[56].?)
8150
8151 11/11
8152 -----
8153test.c
8154 - used `&&' where `||' was needed when testing if HAVE_LSTAT and
8155 S_IFLNK are both defined
8156
8157[bash-2.0-beta3 net release version frozen]
8158
8159 11/12
8160 -----
8161builtins/getopt.c
8162 - when sh_getopt detects that a required argument is not present,
8163 set sh_optarg to "" so that getopts does the right thing
8164
8165 11/15
8166 -----
8167builtins/ulimit.c
8168 - made the default (without -H or -S) report the soft limit and set
8169 both soft and hard limits (like sh and ksh)
8170
8171expr.c
8172 - changed the maximum base in base#num constants to 64, implemented
8173 just like ksh93
8174
8175doc/{bash.{1,html},bashref.texi}
8176 - updated description of ulimit builtin to new behavior when
8177 neither -H nor -S is supplied
8178 - updated arithmetic evaluation section with new maximum base and
8179 explanation of how numbers between 10 and 63 are represented
8180
8181lib/readline/vi_mode.c
8182 - in rl_vi_done_inserting, don't try to save the text entered while
8183 in insert mode unless rl_undo_list is non-null (indicating that
8184 there was actually some text to be saved)
8185
8186 11/19
8187 -----
8188lib/readline/tcap.h
8189 - new file, for termcap library definitions. Uses <termcap.h> if
8190 it is available
8191
8192lib/readline/rldefs.h
8193 - remove inclusion of termcap.h; now included in tcap.h
8194
8195lib/readline/{terminal,display,readline}.c
8196 - include tcap.h
8197
8198lib/readline/Makefile.in
8199 - update dependencies to include tcap.h
8200
8201 11/21
8202 -----
8203lib/readline/complete.c
8204 - broke the code that computes the lcd of the list of completion
8205 matches out into a separate function, compute_lcd_of_matches()
8206
8207lib/readline/complete.c
8208 - call compute_lcd_of_matches after calling the application-specific
8209 completion ignore function, since it may have eliminated some
8210 names from the match list
8211
8212builtins/cd.def
8213 - replaced instances of MAXNAMLEN in the spelling correction code
8214 with PATH_MAX
8215
8216lib/readline/terminal.c
8217 - new termcap capabilities: kh (sent by Home key) and kH (sent by
8218 End key) automatically bound to beginning-of-line and end-of-line
8219 respectively in emacs_standard and vi_movement maps
8220
8221mailcheck.c
8222 - fix to remember_mail_dates so any message following the
8223 filename is saved correctly
8224
8225 11/22
8226 -----
8227lib/readline/bind.c
8228 - fixed extern declaration of _rl_parsing_coditionalized_out
8229 to match declaration in readline.c
8230
8231 11/25
8232 -----
8233doc/{bash.{1,html},bashref.texi}
8234 - fixed a gross documentation error in the description of
8235 ${parameter:offset:length} (offset and length were transposed)
8236 - slight changes to the description of output redirection
8237
8238subst.c
8239 - new function, quoted_substring, to return substrings of variables
8240 when the expression is within double quotes and the value has
8241 CTLESC characters embedded within it. Called by
8242 parameter_brace_substring
8243 - get_var_and_type should return VT_POSPARMS if `*' is passed as
8244 the variable name
8245 - added a new first parameter for pos_params -- the variable name
8246 - changed pos_params to obey the rules for "$*" wrt using the
8247 first character of IFS as the separator in the result
8248 - if an unquoted $* or $@ is expanded, call quote_escapes on the
8249 result to protect any special characters from inadvertently
8250 causing quoting
8251
8252 12/3
8253 ----
8254builtins/ulimit.def
8255 - corrected a misspelling of `unlimited'
8256 - added support for linux RLIMIT_AS resource limit for -v option
8257 and changed the block multiplier to 1024 if we have RLIMIT_VMEM
8258 or RLIMIT_AS
8259
8260 12/5
8261 ----
8262lib/readline/readline.c
8263 - fix rl_insert to handle a count of exactly 1024
8264
8265shell.c
8266 - new function: unbind_args(), which removes all the positional
8267 parameters. Just calls remember_args(NULL, 1)
8268
8269execute_cmd.c
8270 - call unbind_args when executing a subshell, after setting up
8271 subshell_argX
8272
8273bashintl.h
8274 - include <libintl.h> if HAVE_LIBINTL_H defined
8275
8276config.h.in
8277 - add HAVE_LIBINTL_H define
8278
8279configure.in
8280 - add call to AC_CHECK_HEADERS for libintl.h
8281
8282doc/Makefile.in
8283 - added infodir and various mandir defines for completeness
8284
8285Makefile.in
8286 - changed some of the *dir defines to use the autoconf values
8287 (e.g., bindir = @bindir@)
8288 - changed manroot to mandir, removed old mandir and manext variables
8289 - added `manpfx' variable; should be either `man' or `cat'
8290
8291 12/6
8292 ----
8293lib/readline/readline.c
8294 - fixed rl_digit_loop so it once again displays the argument count
8295 as it's being entered (added calls to _rl_save_prompt and
8296 _rl_restore_prompt)
8297
8298 12/7
8299 ----
8300support/config.guess
8301 - recognize netbsd/vax
8302 - recognize openbsd on all supported platforms
8303 - recognize tenon's machten running on powerpc and macintosh
8304
8305 12/9
8306 ----
8307support/config.guess
8308 - added all sorts of systems from config.guess distributed with
8309 autoconf-2.12
8310
8311 12/10
8312 -----
726f6388 8313subst.c
ccc6cda3
JA
8314 - new function quoted_strchr(); does the same thing as strchr but
8315 honors shell backslash and CTLESC quoting conventions
8316 - parameter_brace_patsub now calls quoted_strchr
8317
8318 12/11
8319 -----
8320shell.c
8321 - if the shell is named `-su', run the normal login shell startup
8322 files, even if the shell is not interactive. This handles the
8323 case of `su - username -c command' compatibly
8324
8325lib/readline/readline.c
8326 - minor change to rl_digit_loop so that M-- and M--1 are equivalent,
8327 as the prompt for digit arguments has always implied
8328
8329lib/malloc/malloc.c
8330 - added definitions of calloc() and cfree(), compiled in unless
8331 NO_CALLOC is defined to cpp
8332
8333
8334 12/16
8335 -----
8336parse.y
8337 - protect uses of history_expansion_inhibited with #ifdef
8338 BANG_HISTORY
8339
8340[bash-2.0-release candidate frozen]
8341
8342builtins/common.c
8343 - changed backslash_quote to quote a tilde if it's the first
8344 character in the string
8345
8346 12/17
8347 -----
8348aclocal.m4
8349 - changed BASH_CC_WORKS to provide a cross-compiling default for
8350 better error messages
8351
8352configure.in
8353 - generated configure using autoconf-2.12
8354 - changed the default value of CFLAGS to `-g -O2'
8355
8356 12/18
8357 -----
8358aclocal.m4
8359 - look for /var/spool/mail before /usr/spool/mail when checking
8360 for the default mail directory
8361
8362jobs.c, builtins/shopt.def
8363 - fixed a couple of `macro replacement within a string literal'
8364 problems
8365
8366Makefile.in
8367 - removed `realclean' target
8368
8369shell.c
8370 - changed the first line ouput by bash --version to conform to
8371 the latest GNU coding standards (replace space between version
8372 and machtype with a hyphen)
8373
8374 12/19
8375 -----
8376execute_cmd.c
8377 - when looking at the debug trap in execute_function and
8378 execute_command_internal, make sure it's trapped and not
8379 ignored before trying to save the value of the trap string
8380
8381 12/20
8382 -----
8383trap.c
8384 - changed set_signal and ignore_signal to handle EXIT_TRAP and
8385 DEBUG_TRAP specially, so we don't try to fetch signal handlers
8386 or do other unnecessary things
8387
8388 12/22
8389 -----
8390builtins/ulimit.def
8391 - if the current euid is not 0, and we're trying to set the hard
8392 limit of a resource to RLIM_INFINITY, set it to the current hard
8393 limit to avoid error messages
8394
8395builtins/read.def
8396 - fix for bug that caused core dump if line read had leading white
8397 space and IFS was set to ''
8398
8399[bash-2.0-release frozen]