3 lib/readline/readline.c
4 - fixed an off-by-one error in the kill ring reallocation code
8 - replaced instances of /bin/sh with $(SHELL)
10 Makefile, cpp-Makefile, documentation/Makefile
11 - added a working `uninstall' target
13 [1.14.0 FCS release made available for FTP]
18 - added note about building with gcc, same as in Makefile
20 documentation/Makefile
21 - some versions of make don't understand `$*' in a regular recipe;
22 replace with features.dvi in the recipe for features.ps
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'
34 lib/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
40 - fixed a typo in the test for a restricted shell
43 - need to include flags.h
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 `&'
55 - make sure we don't try to reference a command struct without
56 first checking it (case '&')
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
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
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)
80 documentation/Makefile
81 - make sure all of the directories exist before trying to install
84 lib/readline/history.c
85 - add a missing O_TRUNC to the open call for writing in
89 - run_interrupt_trap should only try to run the trap command if
90 the value is not IMPOSSIBLE_TRAP_HANDLER
95 lib/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
101 - fixed the variable initialization so that history_control/HISTCONTROL
102 can be inherited from a parent shell
104 INSTALL, README, cpp-Makefile, documentation/bash.1, documentation/readline.3
105 - ai.mit.edu -> prep.ai.mit.edu
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
113 - `make distclean' will now remove the `installed-bash' link
116 - fixed a problem with undefined variables when HAVE_VARARGS_H is
121 lib/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'
125 lib/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
132 - initialize prev_line_found to 0 at the top of rl_search_history
133 to avoid duplicate history lines being saved across searches
136 - consolidated repeated code for setting special characters into
137 `SET_SPECIAL' defines
139 lib/readline/readline.c
140 - include <sys/ioctl.h> if VSTATUS is defined
141 - add bindable command rl_tty_status (unbound by default)
143 lib/readline/funmap.c
144 - assign bindable command name `tty-status' to rl_tty_status
147 - add note about compiling with gcc, same text as README
149 lib/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
157 documentation/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 $<
163 - if rmail doesn't exist or fails, save the bug report in
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
173 - fixed up a problem with char_is_quoted that caused backslash-
174 escaped characters to cause incorrect results
176 tests/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
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
185 - on hpux 9.x, don't try to link with -lPW if compiling with gcc
189 - an ugly fix for a compiler problem with structure assignment on
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)
200 lib/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
205 documentation/Makefile
206 - use $(INSTALL_DATA) instead of $(CP) to install the man pages and
210 - use INSTALL_PROGRAM and INSTALL_DATA to install binaries and
211 documentation; pass both values to installs in subdirectories
216 - compensate for systems which define RLIMIT_OFILE instead of
217 RLIMIT_NOFILE, or don't provide such a compatibility define
221 - make maybe_execute_file check for directories and print an
222 appropriate error message, since it's doing an fstat anyway
225 - added support for a `-s srcdir' option so it can find
226 cpp-Makefile if ansi-Makefile is to be created
229 - call mksysdefs with -s $(srcdir)
232 - add the magic #undef lines to avoid redefinition warnings on
238 - install `bashbug' with `make install'
241 - make sure that `interactive' is set to 0 when running trap
245 - fixed typo in usage error message
248 - fix process_substitute to set subshell_environment
251 - only mess with the terminal settings for an interactive shell
252 that is not in a subshell environment
256 lib/readline/history.h
257 - add extern declaration of history_get
260 - make history replacement when using `r' or `fc -s' obey the
261 setting of HISTCONTROL
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
269 - updated information about submitting bug reports
271 lib/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
277 lib/readline/complete.c
278 - add `#' to the list of characters which cause a completed filename
282 - be more careful about closing pipe file descriptors in do_piping;
283 don't want to have `dup2(i, i); close(i);' problem
285 lib/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>
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>
298 - check for clobbering the bash input stream before closing a file
299 descriptor due to an r_close_this redirection
301 lib/readline/history.c
302 - made history_expand inhibit history expansion if the history
303 expansion char is set to 0
305 lib/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
310 lib/readline/bind.c, general.c, general.h
311 - use strcasecmp, strncasecmp instead of str[n]icmp if
312 HAVE_STRCASECMP is defined
315 - pass -DHAVE_STRCASECMP to builds in the libraries, primarily
319 - add HAVE_STRCASECMP to the entries for BSD/386, NetBSD, FreeBSD,
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)
328 - call remember_filename with an initial value of 1 for times_found
331 - handle a null argument with an error message
334 - parse_and_execute now takes a third parameter: the value for
335 `interactive' while it is executing commands
337 bashline.c, jobs.c, parse.y, shell.c, subst.c, trap.c, variables.c
338 - set the new third argument to parse_and_execute appropriately
340 builtins/eval.def, builtins/fc.def, builtins/source.def
341 - set the new third argument to parse_and_execute appropriately
344 - changed a call to strnicmp to strncmp when trying to find what
345 to give help on; it seems more correct
350 - cleaned up the SunOS section so it no longer relies on
351 HAVE_SHARED_LIBS being defined; it uses SunOS4 and SunOS5
355 - define SYSDEF to be SunOS4 or SunOS5 depending on the output
356 of uname rather than looking for ld.so
361 - minor change to the ardent titan machine description
362 - move the ardent and stardent descriptions before the
363 mips riscos description
366 - ardent machines also need the extern declaration for printf
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
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
383 - `fg' and `bg' now print error messages if invoked when job control
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
391 lib/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
396 lib/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
406 - add #undef HAVE_DIRENT_H to the ardent titan description
410 lib/readline/chardefs.h
411 - removed META_P define, renamed CTRL_P to CTRL_CHAR
413 lib/readline/bind.c, lib/readline/isearch.c
414 - changed instances of CTRL_P to CTRL_CHAR
416 lib/readline/search.c
417 - include <unistd.h> before rldefs.h, if HAVE_UNISTD_H is defined
419 lib/readline/readline.c
420 - declare PC, UP, and BC as extern rather than `local' to the
426 - implement command word completion inside of command substitution
427 with a new function: `command_subst_completion_function'
430 - new function to help with command subst completion: unclosed_pair
432 lib/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
436 lib/readline/readline.h
437 - declare rl_filename_completion_desired and
438 rl_filename_quoting_desired
441 - don't save the old value of rl_outstream before initializing
442 readline -- it saves garbage values and screws up readline
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
449 lib/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)
456 - fix up the declaration of getenv() for convex machines
460 lib/readline/readline.c
461 - fixed up typos in the declaration of `savestring'
463 lib/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
469 lib/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
474 lib/readline/chardefs.h
475 - fixed the CTRL macro to be right (agree with the BSD kernel, for
479 - fixed typo in the `install' recipe
484 - fixed to handle srcdir when it begins with ./ or ../ to handle
485 $(srcdir) being a relative path better
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
495 - added a -i option to specify an alternate set of directories to
496 search for include files
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
504 - SCOv4 has a `robust' opendir that checks that you're actually
509 lib/readline/complete.c
510 - make sure a word break character is unquoted before using it to
511 separate out the current word for completing
514 - new machine description: NetBSD on motorola m68k machines like
516 - undef HAVE_GETWD in the generic svr4 machine description, like
517 other svr4 descriptions
520 - make sure to fflush (rl_outstream) after toggling the setting
521 of the keypad and meta key
524 - add a test for OPENDIR_NOT_ROBUST
527 - output __svr4__ if we find __uxps__ (this makes the Fujitsu port of
528 SVR4 to the sparc build OK)
532 lib/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
536 lib/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)
543 lib/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
552 documentation/Makefile
553 - change instances of `groff' to `${GROFF}', GROFF is set to
556 general.c, variables.c
557 - moved `qsort_string_compare' from variables.c to general.c
559 general.h, variables.h
560 - moved declaration of `qsort_string_compare' from variables.h
563 alias.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
568 - hpux_9 needs alloca declared as `extern void *' if __STDC__
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
577 - new descriptions: Intel i860 running SVR4, Tahoe running 4.3 BSD
578 - changed descriptions: Mips/RiscOS, DG AViiON, unknown machine
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
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
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
603 - if output is being flushed on termios systems, loop until the
604 FLUSHO bit is no longer set in the termios struct
607 - added a -A flag to force creation of ansi-Makefile
610 - new entry for Tandem machines running SVR3
614 lib/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
619 lib/readline/rldefs.h, lib/readline/history.c
620 - include "config.h" if HAVE_CONFIG_H is defined
622 lib/readline/{rldefs.h,signals.c,readline.c}
623 - WINSIZE_IN_IOCTL_H -> GWINSZ_IN_SYS_IOCTL for compatibility with
626 lib/readline/doc/Makefile
627 - fixed up to create the readline and history manuals in dvi and
630 lib/readline/Makefile
631 - changes inspired by the standalone readline-2.0 distribution
635 lib/readline/history.c
636 - new function, history_is_stifled (), returns history_stifled
637 - set history_state flags member in the history state functions
639 lib/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
645 - use history_is_stifled () instead of history_stifled
647 lib/readline/readline.c, lib/readline/vi_mode.c
648 - filled in correct argument declarations for functions called via
651 lib/readline/complete.c
652 - efficiency improvement for compare_strings
657 - new directory functions from ksh book, contributed by
658 Ken Konecki (kenk@wfg.com)
661 - hpux_8 and hpux_9 should both #undef HAVE_ALLOCA unless gcc is
667 - fixed up command_word_completion_function so that filenames with
668 leading tildes are completed correctly
673 - if -r not given, make sure CTLESC is removed from input string
674 when reading \<newline>
676 lib/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
680 - new function rl_yank_last_arg, which does what insert-last-arg
683 lib/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
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)
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
699 lib/readline/funmap.c
700 - `yank-last-arg' is now a named command for rl_yank_last_arg
703 documentation/bash.1, documentation/readline.3
704 - add description of yank-last-arg as one of the readline user
707 lib/readline/doc/rluser.texinfo
708 - added description of yank-last-arg
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
718 lib/readline/display.c
719 - fixes to the display code for single-line-display in the presence
720 of prompts containing invisible characters
722 lib/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
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
737 - check that `~' is unquoted before performing tilde expansion in
738 an assignment statement
743 - keep brace completion from dumping core if there is only one
746 lib/readline/chardefs.h
747 - add a define for digit_p, which returns the value of isdigit()
749 lib/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 ()
755 lib/readline/history.c
758 lib/readline/vi_mode.c
759 - replaced uses of the `isletter' define to use pure_alphabetic
761 - replaced uses of `numeric' with calls to digit_p
762 - added do...while(0) to `exchange' define
768 - make sure execute_function saves and restores the current loop
769 count with unwind_protect_int
771 documentation/features.texi
772 - change the `Shell Command Line Options' section to `Invoking
773 Bash' to be closer to the GNU coding standards
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
786 lib/readline/readline.h
787 - removed definition of rl_show_star -- the variable no longer
790 lib/readline/readline.h, lib/readline/history.h
791 - reorganized to follow texinfo manual structure
794 - rl_function_dumper is now static
795 - rl_list_funmap names does not take any arguments
798 - rl_list_funmap names does not take any arguments
800 lib/readline/readline.c, lib/readline/signals.c
801 - rl_init_argument ->_rl_init_argument
804 - remove declaration and references to output_was_flushed
807 - if __uxps__ is defined, define __uxps__ and __svr4__
812 - added a -r option to set the `root name' of the distribution
813 (e.g., `bash' or `readline')
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
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
832 - fixed an off-by-one error in test_stat when testing /dev/fd/n.
835 - add -I$(incdir) to CPPFLAGS
836 - add `incdir = $(prefix)/include' assignment
840 lib/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
847 - changed some calls to signal () to call set_signal_handler()
850 - include config.h before anything else if HAVE_CONFIG_H is defined
852 lib/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
858 lib/readline/readline.h
859 - added declarations for rl_vi_set_mark and rl_vi_goto_mark
861 lib/readline/readline.c, lib/readline/readline.h
862 - added a new bindable command to set the mark, rl_set_mark
864 lib/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
869 documentation/{bash.1,readline.3}, lib/readline/doc/rluser.texinfo
870 - added documentation for `set-mark' (unbound)
872 lib/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
879 lib/readline/vi_keymap.c
880 - new vi command-mode bindings to set the mark (`m') and to go to
883 documentation/readline.3
884 - added vi-set-mark and vi-goto-mark to list of key bindings for
887 lib/readline/{readline.c,display.c}
888 - renamed term_xn to _rl_term_autowrap
890 lib/readline/display.c
891 - new function _rl_redisplay_after_sigwinch to encapsulate the
892 necessary redisplay code after a SIGWINCH is received
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 `.'
901 - FreeBSD does not need a definition of sys_siglist[]
906 - don't try to use FLUSHO unless FLUSHO is defined
909 - make sure to pass $(CC) to the make in the lib/malloc subdirectory
911 lib/readline/readline.c
912 - don't declare PC, UP, and BC as extern; it causes too many problems
917 - add -DNO_SBRK_DECL to SYSDEP_CFLAGS for SVR4.2 on i386
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'
925 lib/readline/memalloc.h
926 - removed from the library; not needed since readline does not use
929 lib/readline/{history.c,isearch.c,search.c,rldefs.h}, lib/tilde/tilde.c
930 - no longer include memalloc.h
932 lib/readline/Makefile
933 - remove dependencies on memalloc.h
935 lib/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
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
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
956 - changes so that fewer -Idir arguments are passed to the make
962 - use KEYMAP_SIZE instead of 128 in rl_invoking_keyseqs_in_map
964 lib/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
968 - some fixes to the loop that prints the list of completions
970 lib/readline/keymaps.c
971 - run the loop up to 127 when creating a new keymap in rl_make_keymap
973 input.h, general.h, lib/readline/keymaps.h, lib/readline/tilde.h
974 - use _FUNCTION_DEF instead of __FUNCTION_DEF
976 lib/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
982 lib/readline/readline.c, lib/readline/rltty.c
983 - the __GO32__ include file is <pc.h>
986 - rewrote tilde_expand_word, eliminated static u_name array in
987 favor of using xmalloc
990 - use single leading underscore for file inclusion guard
992 lib/readline/vi_mode.c
993 - use KEYMAP_SIZE rather than a literal 127 as the loop limit when
994 creating the overstrike keymap
997 - new file, from the make-3.71 distribution
1001 lib/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
1006 lib/readline/parens.c
1007 - use rl_basic_quote_characters when trying to find a matching
1010 lib/readline/doc/rltech.texinfo
1011 - description of rl_basic_quote_characters
1016 - renamed to support/mkversion.c, which builds to mkversion
1019 - changed to use support/mkversion
1020 - removed instances of $< except in suffix rules -- some makes don't
1023 lib/readline/rldefs.h
1024 - make sure to #undef HAVE_DIRENT_H on NeXT machines
1029 lib/readline/readline.h
1030 - removed some duplicate function declarations
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
1039 - extend trap_list and sigmodes to NSIG+1
1040 - initialize DEBUG_TRAP to do nothing; changes to functions to handle
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
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
1058 - arrange things so that signal_names[NSIG] == "DEBUG"
1061 - make sure traps on DEBUG are printed
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
1069 documentation/bash.1, documentation/features.texi
1070 - documented the new DEBUG trap
1075 - made the name of the restricted shell configurable in config.h;
1076 the option is RESTRICTED_SHELL_NAME
1079 - if the shell is invoked as `sh', enter Posix.2 mode after running
1080 /etc/profile and ~/.profile
1083 - added a -p option for a prompt string, which is displayed before
1084 trying to read anything
1086 documentation/bash.1
1087 - description of `read -p'
1088 - description of new -r and -s options to `jobs'
1090 documentation/features.texi
1091 - description of new -r and -s options to `jobs'
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
1098 - list_one_job type now void, calls print_job to do the work
1101 - new declarations for list_running_jobs, list_stopped_jobs
1102 - list_one_job now void
1103 - list_jobs -> list_all_jobs
1106 - new options: -r to print only running jobs, -s to print only
1111 lib/readline/readline.c
1112 - don't try to expand a null prompt string
1115 - remove special handling of hostname_completion_file and
1116 history_control; HOSTFILE and HISTCONTROL are the acceptable
1118 - new function sv_histignore; call if HISTIGNORE variable is
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
1127 documentation/bash.1, documentation/features.texi
1128 - removed mention of history_control and hostname_completion_file
1129 - added description of HISTIGNORE
1134 - promoted to the shell mainline code; the `array' subdir is now
1138 - include `array.h' for the ARRAY typedef
1141 - changes to assignment() to handle array assignments a[x]=b
1142 - split off the creation of new variables into a new function:
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
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
1156 - new functions for referencing indexed arrays and to find the length
1157 of arrays or array indices
1162 - fixed up error reporting to use get_name_for_error if not executing
1166 - everywhere evalexp() is called, use maybe_expand_string to expand
1167 the expression (calls expand_string if necessary)
1170 - extern declarations for array convenience functions exported to the
1174 - more new convenience array functions: make_new_array_variable and
1175 convert_var_to_array
1177 builtins/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
1184 builtins/setattr.def
1185 - made set_or_show_attributes understand array variables and `-a'
1188 - changes to make `unset name' work, where name is an array variable
1189 - changes to make `unset name[xxx]' work
1194 lib/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
1203 - make sure <sys/types.h> is included before <fcntl.h>
1206 - new entry for Bull DPX2
1209 - include <sys/types.h> before <pwd.h>
1212 - PS1 and PS2 are no longer non-unsettable
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
1224 - new define `non_unsettable_p' to test nounset attribute
1227 - `unset' now uses non_unsettable_p to tell whether a variable can
1228 be unset even if it's not readonly
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)
1235 builtins/declare.def
1236 - print values of arrays when `display -a' is invoked
1239 - remove references to `bye'
1243 lib/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
1248 - support for optionally linking array.o into the shell
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
1260 - the `for' and `select' commands should expand their word lists
1261 using expand_words_no_vars
1263 command.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
1270 - make get_string_value return array[0] if called with a variable
1275 lib/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
1280 lib/readline/examples/rltest.c
1281 - new file, test code moved here from readline.c
1283 documentation/features.texi, lib/readline/doc/hsuser.texinfo
1284 - fixed up printing of some of the shell options and the history
1285 commands and modifiers
1288 - make sure $name, where `name' is an array variable, returns
1292 - convert a variable to an array even if index 0 is being assigned to,
1293 instead of leaving it a `normal' variable
1298 builtins/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
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.
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
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)
1323 lib/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
1340 lib/readline/isearch.c
1341 - call _rl_save_prompt and _rl_restore_prompt when changing the prompt
1346 lib/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
1356 lib/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
1362 lib/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
1369 lib/readline/funmap.c
1370 - new bindable function names: exchange-point-and-mark, kill-region,
1371 copy-region-as-kill, character-search
1373 lib/readline/readline.h
1374 - declare rl_exchange_point_and_mark, rl_copy_region_to_kill,
1375 rl_kill_region, and rl_char_search externally
1377 documentation/{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
1384 lib/readline/rldefs.h
1385 - moved values for `dir' when searching for characters in the line
1386 from vi_mode.c to here
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
1396 - new expansion $'...' which translates ANSI-C backslash escapes
1397 in `...' and expands to the result
1400 - ifdefs for ANSI-C for \a and \v rather than just expanding to
1401 literal ASCII values
1403 documentation/bash.1
1404 - documented new $'...' expansion
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
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)
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
1429 - allow $PATH to be unset
1434 - added a new `input type': st_stdin, for use when using readline,
1435 since readline is not properly a string
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
1456 - a couple of changes to the way functions are printed
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
1467 - all interactive shells SIGHUP running jobs when exiting due to
1468 a SIGHUP, not just login shells
1472 config.h, config.h.mini
1473 - changed the default primary prompt (PPROMPT) to "\s\$ "
1474 - removed the INTERACTIVE_COMMENTS define
1477 - interactive comments are now enabled by default, regardless of the
1478 INTERACTIVE_COMMENTS define
1481 - a new enum: stream_type, used in the BASH_INPUT struct
1484 - bash_input.type is now initialized to st_none
1487 - command_oriented_history is now the default
1489 documentation/bash.1
1490 - removed description of `nolinks' variable, updated set -P
1492 - removed description of `notify' variable, updated set -b
1494 - removed description of `noclobber' variable, updated set -C
1498 - IFS may now be unset
1501 - now does the right thing if IFS is unset (acts as if it is
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
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
1519 - function replacements for string_to_rlimtype and print_rlimtype
1520 for machines which have RLIMTYPE defined in the machine description
1523 - extern declarations for string_to_rlimtype and print_rlimtype
1526 - don't source file named by $ENV at script startup if act_like_sh
1530 - new entry for amiga/netbsd
1531 - change all the netbsd entries to add -DRLIMTYPE=quad_t to
1535 - define sys_siglist as _sys_siglist on the amiga only if USGr4 is
1539 - change so that printf is not prototyped on LynxOS with gcc
1541 lib/readline/Makefile
1542 - changed the `installdirs' target to not fail if the directories
1543 do not need creating
1545 lib/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 !*)
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
1563 - don't look for $command_oriented_history at startup, since it now
1566 general.h, general.c
1567 - new function posix_initialize to do whatever is necessary to enable
1571 - call posix_initialize
1574 - rewrote replacements for strchr, strrchr to make them faster
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
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
1587 builtins/mkbuiltins.c
1588 - change to creat static_shell_builtins[] and declare shell_builtins
1590 - change to declare `current_builtin' in created builtins.c
1593 - print an error message and return failure if no filename argument
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
1602 builtins/{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
1608 - support for the HAVE_DLOPEN and HAVE_DLSYM defines
1611 - added -ldl and -Bdynamic to the SunOS4 entry
1613 documentation/{bash.1,features.texi}
1614 - documented new enable -f option to dynamically load builtins
1619 - added `==' as a synonym for `='
1624 - include readline/rlconf.h so that VI_MODE is defined if
1628 - removed `-nobraceexpansion' option
1631 - added new -B flag; enabled if brace expansion is turned on
1634 - use brace_expand instead of !no_brace_expand
1637 - change set -o braceexpand to be equivalent to set -B
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
1646 documentation/bash.1, documentation/features.texi
1647 - doeumented new set -B option
1648 - removed -nobraceexpansion shell startup option
1652 builtins/reserved.def
1653 - made `help select' work
1656 - removed references to the nonexistant `load.def'
1657 - removed conditionals based on GETOPTS_BUILTIN
1659 builtins/getopts.def
1660 - no longer $DEPENDS_ON GETOPTS_BUILTIN
1662 config.h, config.h.mini, builtins/help.def
1663 - made the `help' builtin dependent on the HELP_BUILTIN define
1664 - removed GETOPTS_BUILTIN
1666 builtins/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
1674 shell.c, documentation/bash.1
1675 - removed `-quiet' long option
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
1683 - new readline variable `mark-directories': if set, completed
1684 directory names have a slash appended
1686 lib/readline/complete.c
1687 - support for `mark-directories'
1689 documentation/{bash.1,readline.3}, lib/readline/doc/rluser.texinfo
1690 - documented the new `mark-directories' variable
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
1697 documentation/{bash.1,features.texi}
1698 - documented new bind -r option
1703 - new `disown' builtin
1705 documentation/{bash.1,features.texi}
1706 - documented new `disown' builtin
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
1719 - don't compile in body of file unless ARRAY_VARS is defined
1722 - don't compile in body of file unless BRACE_EXPANSION is defined
1725 - don't compile in body of file unless ALIAS is defined
1728 - don't compile in body of file unless BRACE_EXPANSION and READLINE
1732 - don't compile in body of file unless READLINE is defined
1735 - don't compile in body of file unless HISTORY is defined
1738 - don't compile in body of file unless HAVE_SYS_SIGLIST is not
1742 - don't compile in body of file unless HAVE_GETCWD is not defined
1745 - don't compile in body of file unless USE_VFPRINTF_EMULATION
1749 - for SCO machines, define SYSDEF as SCO or SCOv4
1751 lib/readline/readline.[ch]
1752 - new function rl_push_macro_input (s), which makes s the current
1756 - renamed to support/endian.c
1760 lib/readline/complete.c
1761 - more file types for the VISIBLE_STATS code:
1763 % character special devices
1764 # block special devices
1766 lib/readline/isearch.c
1767 - made RETURN an alternate search string terminator
1770 - removed use of stdio -- unbuffered stdio on a dup of fd 0 is
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
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
1783 - don't compile in the body of the file unless BUFFERED_INPUT
1784 is defined in config.h
1789 - replaced instances of Solaris with SunOS5
1792 - changed long option parsing code so that --arg is equivalent
1793 to -arg, when `arg' is one of the recognized multichar options
1795 builtins/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
1803 - added new -p option to display specified trap values, or all
1804 trap values if no other arguments supplied
1806 documentation/{bash.1,features.texi}
1807 - documented new history -p option
1808 - documented new trap -p option
1812 lib/readline/display.c
1813 - fixed up the calcluation of the correct cursor line number (a `+'
1814 and `-' were transposed in the calculation of `nleft')
1819 - moved isint() here from test.c, renamed to legal_number
1822 - extern declaration of legal_number
1825 - only compile isint() if SHELL is not defined, define it as
1826 legal_number otherwise
1829 - use legal_number in decode_signal instead of sscanf()
1832 - moved list_sigs to here from trap.def, renamed to
1834 - changed get_numeric_arg to use legal_number instead of doing
1835 the parsing and calculation itself
1838 - extern declaration for display_signal_list
1841 - changed to use display_signal_list for trap -l
1844 - changed to use display_signal_list for kill -l
1845 - added new kill -n signum option
1847 documentation/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
1853 - added a char *handle member to `struct builtin' for later use
1854 - new flags value: BUILTIN_DELETED
1856 builtins/mkbuiltins.c
1857 - added code to inintialize the `handle' member to null in the
1858 static builtin array definition
1861 - don't `find' a builtin if the BUILTIN_DELETED flag is set in the
1862 flags word of the struct builtins array
1865 - new option -d to remove a builtin loaded with -f, depends on
1869 - pass -DHAVE_DLCLOSE through from machines.h to compilation
1872 - change SunOS4 machine description to define HAVE_DLCLOSE
1877 - split shell exit code off into a separate function: exit_shell(status)
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
1885 documentation/bash.1
1886 - documented the new options to `exec'
1891 - if the execve fails and the shell is not going to exit, reinitialize
1893 - only call end_job_control if subshell_environment != 0
1894 - exec should exit unconditionally if the execve fails and
1895 subshell_environment != 0
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'
1902 - add $(CPPFLAGS) to the compilation flags when making `mksignames'
1904 documentation/features.texi
1905 - fixed a typo in the tilde expansion section
1910 - DEC OSF/1 has the dlopen/dlsym/dlclose set of library functions
1913 - don't execute /etc/profile if -noprofile given
1916 - new file, pushd/popd/dirs split off from cd.def
1917 - replaced calls to sscanf with calls to legal_number
1919 builtins/Makefile, cpp-Makefile
1920 - changes for pushd.def
1922 config.h, config.h.mini
1923 - ALLOW_RIGID_POSIX_COMPLIANCE is no longer used
1925 subst.c, variables.c
1926 - GETOPTS_BUILTIN is no longer used
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
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
1940 - don't dlclose the shared object in dyn_unload_builtin unless its
1941 reference count drops to 0
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
1951 - remove C-e binding in vi movement mode which switches into emacs
1955 - make xfree only try to call free on non-null strings
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
1964 builtins/reserved.def
1965 - changed the `Variables' to `variables' so `help variables' works
1968 - set startup_state to 2 in child of command substitution to try to
1969 avoid some unneeded forks
1972 - removed call to reset_terminating_signals in restore_original
1973 signals; callers are now required to take care of that themselves,
1976 execute_cmd.c, subst.c
1977 - added necessary calls to reset_terminating_signals before calls
1978 to restore_original_signals
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
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
1990 - new function, ignore_tty_job_signals, to set SIGTTIN, SIGTTOU, and
1992 - new function, default_tty_job_signals, to set those signals
1994 - new function, cleanup_the_pipeline to free up the_pipeline and
1999 builtins/history.def
2000 - the history -p option is now -s (to sort of parallel the ksh
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
2007 documentation/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
2013 - changed cd and pwd to use internal_getopt
2014 - added the -L option to cd and pwd to follow symlinks (like if
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
2025 - split the command searching code into a new function:
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
2032 lib/readline/chardefs.h
2033 - new macro ALPHABETIC(c), returns 1 if c is a letter or digit
2035 lib/readline/readline.c
2036 - don't call abort() in rl_change_case(); it's impolite in a
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
2043 lib/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)
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
2059 - added an extern declaration for alias_expand_word
2062 - broke the alias expansion code off into a function
2063 alias_expand_token; its return value says whether to re-read
2065 - changed the alias expansion code to handle aliases that expand
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
2077 lib/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
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
2092 lib/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
2099 lib/readline/history.c
2100 - made a version of single_quote be compiled in if SHELL is not
2102 - the `q' and `x' modifiers are now compiled in by default, not
2103 just if SHELL is defined
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."
2114 lib/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
2121 lib/readline/history.h
2122 - extern declaration of history_quotes_inhibit_expansion
2123 - extern declaration of history_search_delimiter_chars
2126 - set history_quotes_inhibit_expansion to 1 in bash_initialize_history
2127 - initialize history_search_delimiter_chars to ";&()|<>"
2129 lib/readline/doc/{rltech,hstech}.texinfo
2130 - documented new readline and history library interfaces
2133 - split the part of read_token that reads a single word off into
2134 a new function: read_token_word
2136 lib/readline/chardefs.h
2137 - include <string.h> by default; only check HAVE_STRING_H if
2138 HAVE_CONFIG_H is defined
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
2151 - new entry for m68k machines running Linux
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
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
2164 - in assign_in_env, only call tilde_expand if a `~' appears somewhere
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
2174 - char_is_quoted should not be compiled in if READLINE is not
2177 lib/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
2183 lib/readline/readline.h
2184 - extern declaration for rl_char_is_quoted_p
2187 - initialize rl_char_is_quoted_p to char_is_quoted
2189 lib/readline/doc/rltech.texinfo
2190 - documented rl_char_is_quoted_p
2192 lib/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'
2197 lib/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'
2204 - rewrote unop() to use a switch statement instead of a call to
2206 - remove #ifdef SHELL blocks by defining getuid, geteuid, getgid
2207 and getegid as references to current_user.{uid,euid,gid,egid}
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
2212 documentation/bash.1
2213 - fixed description of ${#@} expansion
2218 - add a `From:' line to the mail message handed to rmail
2223 - rewrote binary_operator for speed and clarity
2224 - removed age_of, added arithcomp(), filecomp() to support new
2226 - removed support for `-l string'
2228 documentation/bash.1
2229 - removed mention of `-l string' from `test' description
2234 - pass PROGRAM as the double-quoted shell name to compilation of
2240 - don't try to use ${word:-expansion}; ultrix sh doesn't understand it
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
2248 - new functions free_hashed_filenames and free_filename_data to
2249 flush the table of hashed filenames
2252 - change sv_path to call flush_hashed_filenames directly
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
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
2269 - rewrote delete_all_aliases so it looks like flush_hash_table
2274 - changed delete_all_aliases to call flush_hash_table directly
2275 and use free_alias_data as the `free function' argument
2278 - changed delete_all_variables to call flush_hash_table directly
2280 tests/run-test, tests/test-tests
2281 - new scripts to run tests of the `test' builtin as part of the
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
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
2296 - removed copy_select_command; overload copy_for_command, since the
2297 select and for command structs are exactly the same
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
2304 builtins/common.c, builtins/hash.def
2305 - moved remove_hashed_filename from common.c to hash.def
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
2314 - changed how set -o options are set and retrieved, using set and get
2315 functions to avoid all that special-case inline code
2320 - added unary operator `-o', which returns true of the shell option
2321 name given as an argument is set
2323 lib/readline/readline.c
2324 - added a definition of set_lines_and_columns to be called if the
2325 library is not compiled -DSHELL
2328 - added a --verbose startup long option
2329 - renamed `--nolineediting' to `--noediting'
2334 - new file, for readline utility functions
2336 lib/readline/readline.c
2337 - moved a bunch of functions to util.c
2340 - make sure set_sigint_handler is called only by the subshells doing
2341 command and process substitution
2344 - make sure that rlbuf is initialized to null
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 ''
2353 - changed to use the builtin getopt
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
2363 lib/readline/Makefile
2364 - added definition of INSTALLED_HEADERS, just in case
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
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
2380 general.c, variables.c, subst.c, expr.c
2381 - use legal_variable_starter and legal_variable_char
2383 shell.c, nojobs.c, trap.c, jobs.c, builtins/suspend.def
2384 - change to use SIGRETURN macro
2387 - massive changes to clean up the code and remove unused code and
2389 - expanded the ${#param} code so that all of the shell special
2390 variables may have their length taken
2393 - new test for tilde expansion
2396 - fix a bug in command_subst_completion_matches: make sure that
2400 - don't print a prompt when not using readline if the current
2401 input type is st_string
2404 - add -DINT_GROUPS_ARRAY to SYSDEP_CFLAGS on ultrix
2405 - fixes to the cray machine description from Bill Jones
2408 - fixed a bug in brace_gobbler that prevented a backslash from
2409 escaping an open brace
2413 tests/braces-tests, tests/run-braces
2414 - new regression tests for brace expansion
2417 - new -p option for `dirs' that prints dirstack on per line
2423 - move redirection error values here from execute_cmd.c
2424 - new defines INPUT_REDIRECT and OUTPUT_REDIRECT
2427 - make the default MAINTAINER `bash-maintainers@prep.ai.mit.edu'
2430 - many changes to clean up the code and remove unused variables and
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
2439 - removed the lexical_scoping code and variable
2441 documentation/{bash.1,features.texi}
2442 - removed the description of the `-l' option to `set'
2445 - don't try to open /dev/tty to get the controlling tty, use
2446 fd 2 like other job control shells
2448 lib/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
2454 lib/readline/vi_keymap.c
2455 - change to call rl_vi_undo instead of rl_undo_command
2457 lib/readline/readline.h
2458 - extern declaration for rl_vi_undo
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
2469 - remove `in' from the list of tokens that cannot take trailing
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
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.
2489 - new variable: `source_uses_path', set to 1 by default. If
2490 non-zero, the `.' builtin uses $PATH to find the script to
2494 - cut out everything not needed by bash
2497 - cut out everything not needed by bash
2499 builtins/getopts.def
2500 - removed the call to getopt_set_posix_option_order, which is no
2504 - split the code that writes out here documents to files out into
2509 builtins/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
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
2519 documentation/bash.1
2520 - documented the new ${var:exp1[:exp2]} syntax
2524 builtins/setattr.def
2525 - don't allow readonly -n at all
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
2534 - augmented the substring code to handle the positional parameters
2536 - made quote_list and dequote_list return their WORD_LIST *
2537 arguments so they can be used like
2539 z = string_list ((quoted ? quote_list (l) : l), xxx);
2541 - augmented the ${xxx} expansion code to do indirect variable
2542 references if the first character of the variable name is `!'
2545 - added regression tests for substring expansion
2546 - added regression tests for indirect variable references
2551 - added set -o hashfunc and set -o onecmd, synonyms for set -h
2552 and set -t, respectively
2555 - changed shift so that the positional parameters are not changed
2556 if the argument is > $# (this is ksh and Posix.2, unlike sh)
2558 documentation/bash.1
2559 - documented true behavior of `shift'
2562 - split the kill ring management code and the kill commands out
2563 from readline.c into this file
2566 - split the code that does undoing out of readline.c into this file
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
2575 - don't throw away partial lines after reading EOF
2578 - command substitution should not inherit the -e flag
2581 - make sure to set the exit status correctly when in posix mode
2582 and the filename argument to `.' does not exist
2586 lib/readline/input.c
2587 - split the input buffering and character input code out of
2590 lib/readline/macro.c
2591 - moved the keyboard macro management code to here from readline.c
2593 lib/readline/readline.c
2594 - removed the STATIC_MALLOC code
2596 lib/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
2603 - fixes to the hpux_8 and hpux_9 machine descriptions
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
2614 - change definition for run_exit_trap
2617 - call run_exit_trap only if trap[0] is set and not ignored
2620 - make sure we only source the .bash_logout file once, even if it
2621 contains a call to `exit'
2624 - if we run an exit trap in a (...) user subshell, allow it to
2625 override the exit status of the subshell
2627 lib/readline/readline.c
2628 - made rl_delete_text bounds check its `to' argument, and limit
2631 lib/readline/vi_mode.c
2632 - make rl_vi_subst call `rl_delete_text' directly for the `s'
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
2640 - don't `#undef' HAVE_GETCWD on ISC 4.x machines
2641 - `#undef' HAVE_RESOURCE on ISC 4.x machines
2644 - include "posixstat.h" rather than <sys/stat.h> for the benefit
2649 lib/readline/complete.c
2650 - changed username_completion_function so that a null username
2651 generates a list of all users as possible completions
2653 lib/readline/readline.h
2654 - added definitions for STREQ, STREQN
2656 lib/readline/{search.c,isearch.c,kill.c}
2657 - removed private definitions of STREQ, STREQN
2660 - in find_user_command_internal, just return a copy of the pathname
2661 passed as an argument if there is no PATH
2666 - NetBSD 1.0 does not need a define for strsignal()
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
2678 - if PATH is set to the empty string, find executables in the
2681 shell.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]
2688 - rewrote set_sigint_handler to use SIG_IGNORED rather than checking
2690 - changed ignore_signal, run_exit_trap, maybe_call_trap_handler, and
2691 run_trap_internal to check SIG_IGNORED
2694 - removed the check for signal_is_ignored(SIGINT) in sigint_sighandler
2699 - new files, moved signal-related definitions and code here from
2700 shell.c, general.h, general.c, jobs.c, jobs.h, externs.h
2702 unwind_prot.c, shell.h, nojobs.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]
2715 - bases < 2 or > 36 are now accepted without silently being reset
2719 - make sure array_concat copies the array it returns if one of
2720 the arguments is null [In 1.14.3]
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
2735 - fixes to freebsd description for FreeBSD 2 [In 1.14.3]
2738 - changed to use /usr/lib/sendmail if present or /usr/sbin/sendmail
2739 if present, defaulting to rmail [In 1.14.3]
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.
2746 documentation/bash.1
2747 - documented change to treatment of HISTSIZE when saving history
2750 - removed the calls to sigsetmask() in malloc(). This should
2751 result in a speed improvement
2756 - don't allow -f or -d in a restricted shell
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'
2763 documentation/{bash.1,features.texi}
2764 - updated the documentation for `alias'
2765 - updated the documentation for $_
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.
2773 - call empty_array() before assigning list of values with read -a
2774 - changed dispose_array to use empty_array to destroy the
2778 - set $_ to argv[0] at variable initialization time
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 `*'
2789 documentation/bash.1
2790 - documented new pattern removal functionality for the positional
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
2797 - changed strindex() to avoid multiple calls to strnicmp by
2798 checking first character of the string
2801 - changed to use builtin_getopt with a check for fc numbers as
2803 - some code rearranging for efficiency and clarity
2804 - fc_dosubs now just calls strsub(); fc_replace is gone
2809 - new function, match_pattern, which matches a shell globbing
2810 pattern anywhere in a string and returns the boundaries of the
2813 lib/readline/readline.h
2814 - declarations for rl_insert_command and rl_backward_char_search
2816 lib/readline/readline.c
2817 - new function rl_insert_comment, no longer vi-mode-specific
2818 - new function rl_backward_char_search
2821 - comment-begin now sets the comment char for emacs and vi modes
2822 - variable holding the value is now _rl_comment_begin
2824 lib/readline/vi_mode.c
2825 - move the `comment-begin' stuff to readline.c and bind.c
2827 lib/readline/funmap.c
2828 - vi-comment is now insert-comment
2829 - new bindable command character-search-backward
2831 lib/readline/vi_mode.c
2832 - command mode `#' now invokes rl_insert_comment
2834 lib/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
2840 - posix_readline_initialize now calls rl_variable_bind to set the
2841 value of comment-begin rather than directly modifying
2844 documentation/{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-]
2851 - only call posix_initialize if posixly_correct is set
2856 - make $(Program) depend on $(srcdir)/.distribution, for the
2857 benefit of systems where `make' does not have VPATH support
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]
2866 - make sure bashline_reinitialize resets rl_completion_entry_function
2867 to NULL, as the comment says it should [In 1.14.3]
2872 - fix a problem that caused core dumps if a `)' was missing in a
2873 parenthesized expression [In 1.14.3]
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
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
2891 - fixed expand_word_internal so that any word that expands into
2892 nothing and contains a double-quoted $@ is removed, like sh
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
2908 - now an official part of the distribution, moved from CWRU/misc
2912 - copy support/printenv into the `tests' directory when making tests
2914 - change to understand GCC_STANDARD [in 1.14.3]
2917 - fixed a typo that caused it to not parse correctly [in 1.14.3]
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]
2926 - added FS_DIRECTORY to the list of flags that file_status returns
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
2933 - new function, is_directory (char *), which returns non-zero if the
2934 filename argument is a directory
2937 - extern declaration for is_directory
2940 - hashing_disabled and locate_commands_in_functions were removed,
2941 hashing_enabled added
2943 execute_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
2947 documentation/bash.1, documentation/features.texi
2948 - changed description of `set -h/set -o hashcmds', removed
2949 set -d/set -o nohash
2952 - changed command_word_completion_function to return matches if names
2953 are directories as well as if they are executable files
2956 - look for `ranlib' in $PATH before searching the file system;
2957 look in /usr/gnu/bin for it; default to `:' if not found
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
2965 - changed extern declaration of ansicstr
2968 - call ansicstr with an extra argument
2973 - rewrote to use ansicstr() with the new argument
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
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]
2986 lib/*/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]
2991 - changed `hashcmds' to `hashall'
2993 documentation/{bash.1,features.texi}
2994 - changed `hashcmds' to `hashall'
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]
3005 - don't import exported function definitions at startup if the
3009 - don't allow use of pathname arguments containing `/' in a
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
3017 - added a new long option `--restricted'
3019 documentation/bash.1
3020 - added a section on the restricted shell, and documented the
3021 new `--restricted' long invocation option
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]
3031 - make sure to initialize arg_index in the non-varargs implementation
3032 of cprintf [in 1.14.4]
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]
3041 lib/readline/rltty.c
3042 - call control_keypad iff the value of a new variable,
3043 _rl_enable_keypad, is non-zero
3046 - new readline variable `enable-keypad' to control whether readline
3047 tries to manipulate the application keypad
3049 documentation/{bash.1,readline.3}, lib/readline/doc/rluser.texinfo
3050 - documented new `enable-keypad' variable
3054 lib/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]
3059 - make sure make_select_command is declared even if SELECT_COMMAND
3063 - make sure the \[ and \] escape sequences are not recognized if
3064 READLINE is not defined [in 1.14.4]
3067 - make sure HISTORY is defined if READLINE is; code moved here
3068 from bashhist.c [in 1.14.4]
3071 - removed check for READLINE being defined without HISTORY; now
3073 - new function, bash_history_reinit
3075 flags.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]
3080 - don't include sv_histchars unless BANG_HISTORY is defined
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
3092 - call bash_history_reinit rather than manipulating history
3096 - don't auto-export $BASH [in 1.14.4]
3099 - new test script to check for behavior fixed by changes to
3100 string_extract_double_quoted and parameter_brace_expand_rhs
3103 - `for' and `select' must now take non-empty lists between
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
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]
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
3129 - added \n to the list of characters in slashify_in_double_quotes
3134 - make string_extract_single_quoted and string_extract_double_quoted
3136 - new function skip_single_quoted, used when we used to call
3137 string_extract_single_quoted and just throw the returned string
3139 - new function skip_double_quoted for the same purpose
3144 - fixed expand_word_internal so that if an assignment word
3145 is expanded, no word splitting is performed [in 1.14.4]
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]
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]
3158 - only test interactive_shell before calling maybe_save_shell_history
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
3166 - look for <locale.h>, define HAVE_LOCALE_H if found
3169 - pass HAVE_LOCALE_H through from sysdefs.h to the build process
3172 - remove test against interactive_shell in maybe_save_shell_history
3176 - moved definition of DEFAULT_MAIL_PATH to config.h
3178 config.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:.'
3184 documentation/bash.1
3185 - updated the example of the default path in the description of
3188 lib/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
3196 - moved strindex, stricmp, and strnicmp to lib/readline/util.c,
3197 added _rl_ prefix to names
3198 - some miscellaneous code cleanups and speedups
3200 lib/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
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]
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]
3223 - fix a typo in a call to `access' in AFS-specific code [in 1.14.4]
3228 - finally added new `shopt' builtin
3231 - converted to use builtin_getopt
3234 - support for storing literal newlines in the history list when
3235 command_oriented_history is enabled, rather than using semicolons
3238 - changed rule to make a .o file from a .def file to remove the
3239 .c file if the compilation fails
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
3250 - changed the `-d' option to -p
3253 - added `allenv' as a -o synonym for `set -k'. Now all of the
3254 single-letter shell options have -o equivalents
3257 - added -p option to display shell options, like other builtins
3258 - added `interactive_comments' as a shell option, like set -o
3260 builtins/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
3264 documentation/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
3268 - updated the description of the `shopt' builtin
3270 builtins/history.def
3271 - changed -a option to use maybe_append_history
3274 - changed the substring/subarray code to make negative offsets
3275 count backwards from the end of the string or array
3277 builtins/bashgetopt.c
3278 - added option modifiers `;' (argument is optional) and `#'
3279 (argument is optional, but if present must be numeric)
3282 - converted to use builtin_getopt
3283 - broke code out into a new function: add_hashed_command
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
3292 - removed some dead code
3294 builtins/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]
3298 lib/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'
3302 lib/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]
3309 lib/posixheaders/stdc.h
3310 - test for each special keyword being defined individually, rather
3311 than just testing on `const' [in 1.14.4]
3314 - new function _rl_abort_internal; rl_abort just calls this
3317 - include error.h for extern function definitions [in 1.14.4]
3320 - include <unistd.h> if HAVE_UNISTD_H is defined
3321 - use HAVE_LIMITS_H to decide whether or not to include <limits.h>
3323 variables.c, subst.c, builtins/set.def
3324 - removed special handling of `noclobber' variable
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
3336 - call initialize_shell_options at the end of shell_initialize()
3338 execute_cmd.c, general.c
3339 - moved extract_colon_unit from execute_cmd.c to general.c
3341 execute_cmd.h, general.h
3342 - moved extern declaration of extract_colon_unit from
3343 execute_cmd.h to general.h
3345 documentation/{bash.1,features.texi}
3346 - documented SHELLOPTS
3350 builtins/{shopt,pushd,jobs,umask}.def
3351 - removed the `longjobs', `longdirs', `pushd_home' and `symbolic_umask'
3354 lib/readline/{histexpand,histsearch,histfile}.c, lib/readline/histlib.h
3355 - new files, split off from old history library history.c
3357 lib/readline/history.c, lib/readline/history.h
3358 - new function clear_history() to clear the history list
3360 lib/readline/doc/hstech.texinfo
3361 - documented clear_history ()
3364 - new function clear_directory_stack() to delete all elements of
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.
3375 builtins/history.def
3376 - new -c option to clear the history list
3378 documentation/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
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
3398 - changed indirection_level_string to return the null string if
3399 $PS4 is unset or null [in 1.14.4]
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
3407 - new readline functions to expand glob patterns and insert or
3408 list the expansions (special completion functions)
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
3422 - new functions to copy words to the kill ring, backward or
3425 lib/readline/readline.h
3426 - extern declarations for rl_copy_{backward,forward}_word
3429 lib/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
3434 documentation/{bash.1,readline.3}, lib/readline/doc/hsuser.texinfo
3435 - documented the new copy-backward-word and copy-forward-word
3438 mailcheck.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]
3446 - changes to fix `RELEASE' if it ends up being set to the empty string
3448 - check for amdahl UTS [in 1.14.4]
3449 - check for SGI Irix version 6.x [in 1.14.4]
3452 - new entry for Amdahl UTS [in 1.14.4]
3453 - changes to the SGI entry for Irix 6.x [in 1.14.4]
3458 - changes for BSD/OS 2.0 (M_OS now set to `BSD_OS') [in 1.14.4]
3461 - change to recognize BSD/OS 2.0 and set SYSDEF to BSDI2 [in 1.14.4]
3464 - don't declare sys_siglist on BSD/OS 2.0 [in 1.14.4]
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]
3477 - new header file for mail-checking and related definitions
3478 - declaration of DEFAULT_MAIL_PATH is now here
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
3487 - moved function declarations for functions in mailcheck.c to
3491 - change initialize_shell_variables to call make_default_mailpath
3493 - removed some unneeded variables in initialize_shell_variables
3497 lib/readline/callback.c
3498 - new file with readline callback function interface
3500 lib/readline/rlconf.h
3501 - new READLINE_CALLBACKS define for the readline callback code to
3502 be compiled in and available
3504 lib/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
3509 lib/readline/readline.h
3510 - extern declarations for the readline callback code
3513 - added lib/readline/callback.c to the list of readline files
3515 lib/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
3522 lib/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
3527 lib/readline/readline.c
3528 - extern declarations for rl_getc_function and rl_redisplay_function
3530 lib/readline/{readline,display,isearch,search,parens}.c
3531 - changed to call through rl_redisplay_function rather than
3532 rl_redisplay directly
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]
3538 lib/readline/readline.c
3539 - call rl_expand_prompt unconditionally [in 1.14.4]
3541 lib/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]
3546 lib/readline/doc/rltech.texinfo
3547 - documented the callback code and functions
3548 - documented rl_getc_function and rl_redisplay_function
3550 lib/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,
3556 lib/readline/readline.h
3557 - make rl_term_prep_function and rl_term_deprep_function available
3562 lib/readline/complete.c
3563 - broke the (long, complicated) rl_complete_internal code into a
3564 number of separate functions:
3566 find_completion_word
3567 gen_completion_matches
3568 remove_duplicate_matches
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)
3579 lib/readline/rldefs.h
3580 - use #defines for the possible values ORed into `found_quote' by
3585 make_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
3591 - changed to use word_list_to_argv, not mallocing space for the
3594 builtins/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
3599 - changed to use word_list_to_argv
3601 builtins/{getopts,test}.def
3602 - changed to use make_builtin_argv
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
3613 - renamed flush_child to sigchld to capture the functionality better
3616 - new function array_pat_subst, to do pattern substitution on each
3620 - extern declaration for array_pat_subst
3623 - new function pat_subst to do pattern matching and substitution on
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}
3631 - extern declaration for pat_subst so array.c can find it
3636 - <>filename now dups filename to file descriptor 0 for both input
3637 and output even when not in posix.2 mode
3640 - add the globbing characters to the list of characters that need
3641 to be quoted by filename completion
3644 - new convenience macros:
3645 RUNNING, STOPPED, DEADJOB - to test a job's state
3646 IS_FOREGROUND, IS_NOTIFIED, IS_JOBCONTROL - flags
3648 jobs.c, builtins/{kill,fg_bg}.def
3649 - changed to use new jobs.h macros
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
3663 - pass the quoted flag to array_subrange and array_pat_subst
3664 - quote_string is no longer static
3667 - extern declaration for quote_string
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.
3673 lib/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
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
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
3704 - made getting -u work for systems that have a MAXUPRC define.
3705 it still cannot be set without RLIMIT_NPROC
3708 - include trap.h for sig definitions
3710 builtins/common.h, subst.h, general.h, externs.h
3711 - more extern function declarations
3714 - new function, bash_history_disable(), to turn off history and
3716 - bash_history_disable now sets history_expansion_inhibited
3719 - new file with extern declarations from bashline.c
3721 parse.y, bashhist.c, builtins/bind.def, subst.c, sig.c
3722 - include bashline.h
3727 - new file with extern declarations for local glob library
3730 - include glob.h, mailcheck.h
3733 - changes to dependencies due to mailcheck.h, bashline.h, glob.h
3738 - new function execute_connection to execute commands of type
3740 - new function execute_pipeline, to execute pipelines
3742 lib/readline/rltty.c
3743 - add a `tty' argument to the set_winsize function/macro, the
3744 non-shell version needs it
3749 - added \a (bell) and \e (escape) prompt string escape sequences
3753 lib/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]
3758 lib/readline/doc-support
3759 - brought in the GNU getopt because texindex needs it
3761 documentation/Makefile
3762 - adopted the BSD convention of a suffix of `.0' for formatted
3768 - a script to find out if a particular command name appears in
3769 a directory in $PATH [in 1.14.4]
3772 - changed to use inpath to find `ranlib' [in 1.14.4]
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
3782 - moved definition of BRACE_COMPLETION to config.h
3785 - conditional definition of BRACE_COMPLETION is now here
3788 - new file with defines that are absolute pathnames
3791 - include pathnames.h
3794 - def of DEFAULT_MAIL_PATH now moved to pathnames.h
3797 - def of SYS_PROFILE moved to pathnames.h
3800 - removed a bunch of extra definitions
3802 lib/readline/{vi_mode.c,bind.c}
3803 - removed superfluous STATIC_MALLOC code
3806 - removed SHADOWED_ENV code
3811 - don't define USG or USGr3 for linux machines [in 1.14.4]
3812 - change REVERSED_SETVBUF_ARGS to SETVBUF_REVERSED for autoconf
3816 - change REVERSED_SETVBUF_ARGS to SETVBUF_REVERSED for autoconf
3819 support/mksysdefs, maxpath.h
3820 - change HAVE_SYS_PARAM to HAVE_SYS_PARAM_H for autoconf
3823 support/mksysdefs, jobs.h
3824 - use HAVE_SYS_WAIT_H
3827 - change HAVE_VFPRINTF to HAVE_VPRINTF for autoconf compatibility
3830 - replace UID_T and GID_T with GETGROUPS_T, the size of the elements
3831 of the array returned by getgroups
3834 - define HAVE_KILLPG if killpg() is present; compile in a replacement
3838 - change BSD_GETPGRP to HAVE_BSD_PGRP
3841 - don't call initialize_siglist if HAVE_SYS_SIGLIST is defined, no
3842 longer use INITIALIZE_SIGLIST
3844 machines.h, lib/malloc/malloc.c
3845 - change NO_SBRK_DECL to SBRK_DECLARED
3850 - BSD/OS 2.0 does not need INT_GROUPS_ARRAY in SYSDEP_CFLAGS
3852 lib/readline/rldefs.h
3853 - don't check `Linux'; just include <termcap.h> if HAVE_TERMCAP_H
3856 builtins/command.def
3857 - changed get_standard_path to use HAVE_CONFSTR
3860 - execute_simple_command no longer uses alloca
3861 - don't check RISC6000 anymore when deciding whether to use
3864 execute_cmd.c, shell.c
3865 - check for ultrix instead of Ultrix when calling alloca(0)
3868 - check HAVE_UNISTD_H to see whether to declare fork, getpid,
3872 - include <signal.h> for NSIG
3875 - don't define SIGABRT as SIGIOT unless SIGIOT is defined
3878 - check for ultrix instead of Ultrix
3882 general.c, general.h
3883 - new function check_dev_tty, which makes sure we can open
3887 - call check_dev_tty instead of having the code inline
3890 - removed references to isc386
3893 - code to define one of TERMIOS_TTY_DRIVER, TERMIO_TTY_DRIVER,
3897 - use the general.h code to define the tty driver types
3901 builtins/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'
3905 builtins/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
3912 - declarations for new functions in setattr.def
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]
3919 - fixed an off-by-one bug in make_default_mailpath [in 1.14.4]
3923 [changes for autoconf-generated config files]
3926 - use HAVE_GETPAGESIZE, HAVE_BSD_SIGNALS, HAVE_POSIX_SIGNALS
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
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
3941 - cleaned up strchr, strrchr definitions
3942 - removed tests against USG
3943 - use HAVE_MEMMOVE instead of MEMMOVE_MISSING
3946 - use HAVE_WAIT3, MUST_REINSTALL_SIGHANDLERS, GETPGRP_VOID
3949 - removed definition of DEFAULT_MAIL_DIRECTORY; now set by
3950 autoconf in config.h
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
3959 - use HAVE_KILLPG, HAVE_RESTARTABLE_SYSCALLS, HAVE_UNAME,
3960 ULIMIT_MAXFDS, HAVE_TIMEVAL, HAVE_TIMES
3962 lib/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
3967 - redid the DIRENT defines and includes
3968 - redid other includes to remove dependencies on USG and system
3972 - changed to use HAVE_GETRUSAGE, HAVE_TIMEVAL, HAVE_TIMES, and
3973 the autoconf way to include <sys/time.h> and <time.h>
3976 - changed to use HAVE_GETRLIMIT
3977 - removed test of USG being defined
3980 - changed to use SYS_SIGLIST_DECLARED, HAVE_UNDER_SYS_SIGLIST, and
3984 - use PRINTF_DECLARED
3986 builtins/command.def
3987 - use HAVE_CONFSTR along with _CS_PATH to get the standard path
3990 - only compile in execute_shell_script if HAVE_HASH_BANG_EXEC is not
3994 - use HAVE_SIGINTERRUPT, HAVE_KILLPG, HAVE_POSIX_SIGNALS,
3995 MUST_REINSTALL_SIGHANDLERS, HAVE_WAITPID, *_TTY_DRIVER defines
3998 - set up a new `getmaxgroups' define, moving the code out of inline
3999 - eliminate use of GETGROUPS_T
4002 - use CAN_REDEFINE_GETENV
4005 - use HAVE_POSIX_SIGNALS, MUST_REINSTALL_SIGHANDLERS
4008 - removed the default mail directory defines; now set by autoconf
4011 - new file, functions from general.c that are unix-version variable
4014 - slightly changed function declarations for use by oslib.c
4017 - changed @xxx@ to !xxx! for sed substitutions to avoid conflicts
4018 with autoconf substitutions in the Makefile
4019 - added MACHTYPE variable
4022 - changed DEFAULT_MAIL_PATH to DEFAULT_MAIL_DIRECTORY, since that
4023 more clearly defines its function
4025 lib/readline/rltty.h
4026 - new file, to include the correct tty driver #include file
4028 lib/readline/rltty.c
4032 - make systems with Posix signals block all signals while malloc
4038 - use off_t as the type of a seek offset, rather that int or long
4040 variables.c, oslib.c
4041 - moved `getenv' from variables.c to oslib.c
4046 - new function, jump_to_top_level, which just calls longjmp with
4047 top_level as an argument -- here to isolate calls to longjmp
4050 - replaced calls to longjmp with jump_to_top_level
4053 - new file with setjmp/longjmp defines and declarations
4056 - include bashjmp.h in place of setjmp.h
4058 shell.c, sig.c, execute_cmd.c, unwind_prot.h, expr.c,
4059 builtins/{return,source}.def
4060 - change to use new defs in bashjmp.h
4063 - make sure PAT and REP in pattern substitution are run through
4064 expand_string_unsplit
4067 - don't try to blindly dereference the value returned by
4068 find_flags in set_shellopts
4072 aclocal.m4, config.h.in, config.h.top, config.h.bot, configure.in,
4073 support/install.sh, support/config.guess, support/config.sub
4074 - new files for (now official) autoconf-based configuration
4076 Makefile.in, builtins/Makefile.in,
4077 lib/{doc-support,malloc,glob,termcap,tilde,readline}/Makefile.in
4078 - new Makefiles for autoconf
4080 [additionally, all source files now include config.h]
4085 - index_t --> arrayind_t, because some systems define index_t in
4091 - fix test for broken dup2
4094 - make all object files depend on $(BUILD_DIR)/config.h
4099 - fixed problems in empty_array: need to reset max_index
4100 and max_size, and remove the links in the element chain
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
4111 documentation/bash.1
4112 - documented $PIPESTATUS
4117 - added new --with-afs argument to #define AFS for execute_cmd.c
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
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
4134 lib/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 `.'
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
4148 lib/readline/readline.c
4149 - new variable Keymap rl_executing_keymap, which is set to the
4150 keymap the last function was invoked out of
4153 - new variable Keymap rl_binding_keymap, which is set to the last
4154 keymap a function and key sequence were bound in
4159 - removed xmalloc, xrealloc, xfree to xmalloc.c
4161 lib/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
4167 lib/malloc/gmalloc.c
4168 - new file, GNU libc malloc code
4171 - new source file, xmalloc.c, new object file, xmalloc.o
4174 - changed type of size argument to xmalloc, xrealloc to `size_t'
4177 - changes for new argument `--with-glibc-malloc' that includes
4178 gmalloc.o in libmalloc.a
4183 - if malloc or realloc return null, report in the error message
4184 how many bytes have been allocated
4186 lib/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
4193 [Bash-1.14.4 released to net]
4197 lib/readline/signals.c
4198 - changed last call to signal() to call rl_set_sighandler()
4202 lib/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
4207 - moved #define constants for parameter pattern substitution here
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
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
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.
4240 - add `documentation' as a dependency of `.made'
4245 - added `installdirs' target that makes bindir, infodir, mandir,
4246 and man3dir [in 1.14.5 cpp-Makefile]
4251 - fixed problem with `fc -l' that occurred when fewer than 16 lines
4252 were in the history list [in 1.14.5]
4256 Makefile.in, {builtins,documentation}/Makefile.in, lib/*/Makefile.in
4257 - fixed up the various `clean' targets to agree with Gnu coding
4262 lib/readline/complete.c
4263 - made insert_all_matches correctly quote each of the filenames
4264 inserted into the line, if necessary
4267 - surround definitions of DEFAULT_PATH_VALUE and STANDARD_UTILS_PATH
4268 with #ifndef/#endif to allow them to be overridden from the command
4272 - changed set -o allenv to set -o keyword for ksh88 compatibility
4274 documentation/{bash.1,features.texi}
4275 - changed set -o allenv to set -o keyword
4277 builtins/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
4282 builtins/declare.def
4283 - changed calls to set_or_show_attributes, and show_var_attributes
4289 - LIBPATH -> LIBSUBDIR
4294 - renamed readline variable meta-flag to be input-meta
4296 documentation/bash.1, lib/readline/doc/rluser.texinfo
4297 - changed meta-flag to input-meta
4299 documentation/Makefile.in
4300 - use groff -Tascii to convert .1 -> .0
4303 - new function, strip_trailing_ifs_whitespace, does the obvious
4306 - call strip_trailing_ifs_whitespace before assigning last
4307 variable to remainder of input string [in 1.14.5]
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
4316 builtins/hash.def, builtins/common.c
4317 - instead of xxx->check_dot, use (xxx->flags & HASH_CHKDOT)
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
4324 - if a hashed filename as HASH_RELPATH set, check ./filename,
4325 returning null if that filename is not executable
4327 execute_cmd.c, general.c, execute_cmd.h, general.h
4328 - moved same_file and check_binary_file from execute_cmd.c to
4331 hashlib.c, Makefile.in
4332 - renamed hash.c to hashlib.c
4334 hashlib.h, Makefile.in, builtins/Makefile.in, alias.h, variables.h,
4335 execute_cmd.c, hashlib.c, builtins/hashcom.h
4336 - renamed hash.h to hashlib.h
4338 variables.c, alias.c
4339 - removed inclusion of `hash.h'; header files already include
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
4349 documentation/Makefile.in
4350 - use `texi2dvi' to make dvi files rather than tex and texindex
4352 - don't install `bash_builtins.1' [in 1.14.5]
4355 - removed instances of doc-support/texindex
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
4366 subst.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
4373 - removed special handling of $POSIX_PEDANTIC
4378 - broke the code that fetches the uids and gids into a new
4382 - EUID and UID are no longer handled specially, since they're
4384 - removed sv_uids function
4385 - merge sv_histfilesize into sv_histsize
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
4394 - call sv_histsize instead of sv_histfilesize
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
4406 - setup_ignore_patterns now in pathexp.c
4407 - renamed _ignore_names to ignore_completion_names
4410 - new function sv_globignore to be called when GLOBIGNORE changes
4413 documentation/{bash.1,features.texi}
4414 - documented GLOBIGNORE
4418 documentation/texinfo.tex
4419 - upgraded to version 2.145 from autoconf-2.3 distribution
4423 lib/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
4430 lib/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
4437 - new macros: SETINTERRUPT, CLRINTERRUPT, ADDINTERRUPT, DELINTERRUPT
4438 to manipulate the value of interrupt_state
4440 trap.c, sig.c, jobs.c
4441 - changes to use the new macros from quit.h
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
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
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
4461 - changes to make things like $(( aa[1] + aa[2])) work without
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
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
4475 - made the `fignore' variable static
4480 - made the `distclean' target remove the Makefiles in subdirectories
4485 builtins/command.def
4486 - don't allow `command -p' if the shell is restricted
4488 documentation/bash.1
4489 - documented the restriction on command -p for rbash
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
4500 - check for getrusage and gettimeofday functions/syscalls
4501 - use BASH_CHECK_TYPE to check for clock_t in sys/types.h and
4503 - use BASH_CHECK_TYPE to check for sigset_t instead of a special
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
4510 - print_time_in_hz takes a `clock_t', not a `time_t'
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
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
4525 - new code to print `time ' before a command if the CMD_TIME_PIPELINE
4526 flag bit is turned on
4529 - added description of string1 < string2 and string1 > string2 to
4533 - added `<' and `>' string binary operators
4535 documentation/bash.1
4536 - documented the `time' reserved word and command timing
4537 - documented the new test `<' and `>' binary operators
4539 documentation/features.texi
4540 - documented the `time' reserved word and command timing
4541 - added more to the section detailing the differences between bash
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
4548 - added a `quoted' parameter to extract_dollar_brace_string; changed
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
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)
4569 documentation/{bash.1,features.texi}
4570 - documented new `expr?expr:expr' conditional expression syntax
4571 now arithmetic evaluation is Posix.2-conformant
4573 lib/readline/readline.c
4574 - added several more locale names to the list of legal $LANG
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
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
4588 - new variable `two_tokens_ago' to remember the token read before
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
4598 - put `.' first in $PATH and don't export ENV
4599 - set THIS_SH to ../bash if it's unset
4601 lib/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
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
4620 - changed start_job so that an attempt to start a job marked as
4621 JDEAD elicits an error message [in 1.14.5]
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
4630 builtins/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
4640 - new SETVARATTR macro to set or unset attributes for a specific
4643 builtins/setattr.def
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
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]
4660 - Linux needs LOCAL_LDFLAGS set to -rdynamic
4665 - canonicalize_pathname should not attempt to interpret backslash
4666 quoting `/', since Unix doesn't really allow it [in 1.14.5]
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
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
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
4692 - extern declaration for bash_history_enable
4694 lib/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 `"'
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
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
4712 - new function, pop_expansion, to remove the top string on the
4713 expanded token stack
4714 - renamed save_expansion to push_expansion
4716 lib/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]
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
4729 - don't attempt hostname completion if multiple consecutive `@'
4735 - initialize top_level early, and exit if a longjmp sends us there
4736 before we reinitialize
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
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
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.
4758 - added a `flags' member to the ASSOC struct and renamed it to
4761 alias.c, bashline.c, builtins/alias.def, builtins/type.def
4762 - changed ASSOC to alias_t
4765 - changed add_alias to set the AL_EXPANDNEXT flag when the alias is
4766 inserted into the hash table
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
4773 - pop_string marks the alias being popped as no longer being
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
4784 - make the definition of bzero be surrounded by #ifdef HAVE_BZERO
4785 rather than lumping it in with bcopy
4788 - add a test for bzero
4791 - add a template for HAVE_BZERO
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
4800 documentation/bash.1
4801 - augmented description of the `set' builtin
4806 - make sure that temp_handler is not set to SIG_DFL before calling
4810 - rewrote cd_builtin to make the code flow clearer
4811 - broke full directory name construction out into a separate
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
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
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
4837 mailcheck.c, shell.c, parse.y
4838 - change calls to the expand_string* functions to pass an explicit
4839 Q_DOUBLE_QUOTES where appropriate
4844 - getpattern now passes Q_NOQUOTE to expand_word_internal, indicating
4845 that quotes in the pattern spec are not to be treated specially
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]
4854 [Bash-1.14.5 released to net 7/16]
4858 documentation/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
4865 documentation/features.texi
4866 - changed the name of this document to the Bash Reference Manual
4867 - added sections on POSIX mode and restricted shell
4869 lib/readline/doc/hsuser.texinfo
4870 - added the text from the bash manual page about the bash history
4871 facilities if BashFeatures is set
4875 documentation/features.texi
4876 - added more stuff to the bash basics section
4878 lib/readline/doc/rluser.texinfo
4879 - added a sample inputrc file
4883 documentation/features.texi
4884 - added section on shell expansions to bash basics section
4886 builtins/Makefile.in, lib/glob/Makefile.in, lib/malloc/Makefile.in,
4887 lib/readline/Makefile.in, lib/termcap/Makefile.in, lib/tilde/Makefile.in
4888 - ar is now called with flags `cr' when building libraries
4892 lib/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
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
4906 subst.c, general.c, shell.c, execute_cmd.c, variables.c, bashline.c,
4908 - changed calls to tilde_expand to calls to bash_tilde_expand instead
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
4919 - bash_history_enable now calls sv_history_control and sv_histignore
4922 - if history_list() returns a null pointer, immediately return
4925 documentation/{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
4932 - new builtin variable $HOSTNAME, initialized to current_host_name
4935 documentation/bash.1, documentation/features.texi
4936 - documented $HOSTNAME
4941 - new program, a texinfo-html converter
4943 documentation/Makefile.in
4944 - added directives to produce features.html from features.texi
4947 - added features.html and features_toc.html to the doc distribution
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
4957 lib/readline/readline.h
4958 - extern declarations for rl_variable_dumper, rl_dump_variables, and
4962 - added -V flag to print variable names and bindings
4963 - added -P flag to print variable names and bindings in the syntax
4966 lib/readline/funmap.c
4967 - added new bindable `dump-variables' readline command
4969 documentation/{bash.{1,html},readline.3,features.html},
4970 lib/readline/doc/rluser.texinfo
4971 - documented new `dump-variables' readline command
4973 documentation/{bash.{1,html},features.{texi,html}
4974 - documented new bind -P and -V options
4976 documentation/bashbug.1
4979 documentation/Makefile.in
4980 - changes to build and install bashbug.1
4985 - new function `xprintf' that just calls vfprintf(stdout, ...)
4986 to avoid having to declare printf
4989 - slight change in how read_token_word computes `all_digits'
4995 - new function dequote_escapes to remove CTLESC escaping
4996 CTLESC and CTLNUL in a string, returning a new string
5001 - execute the file SYS_BASHRC for interactive shells if SYS_BASHRC
5002 is defined, before executing ~/.bashrc
5005 - add a dummy commented definition for SYS_BASHRC, defaulting to
5008 lib/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)
5013 lib/posixheaders/posixdir.h
5014 - new file to localize the <dirent.h>/<sys/dir.h> and dirent/direct
5017 posixdir.h, lib/readline/posixdir.h
5018 - symlinks to lib/posixheaders/posixdir.h
5020 lib/readline/rldefs.h
5021 - removed the posix dir includes and defines
5023 lib/readline/complete.c, getcwd.c
5024 - include posixdir.h rather than having the code inline
5027 - new code to do spelling correction on the directory name
5028 modified from patch sent by Neil Russell (caret@c-side.com)
5033 - new option `cdspell' to toggle cd directory name spelling
5036 documentation/{bash.{1,html},features.texi}
5037 - documented new shopt `cdspell' option
5042 - $'' should expand to the same thing as '' (a quoted null string)
5045 - changed CTLNUL to '\177'; some scripts use ^B for things like IFS
5050 support/config.guess
5051 - added code to identify a PPC running Solaris 2
5054 - new directory replacing documentation
5056 Makefile.in, MANIFEST, MANIFEST.doc, configure.in
5057 - replaced `documentation' with `doc'
5061 lib/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
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
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
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
5088 lib/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
5094 - new attribute: att_local
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
5107 lib/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
5115 - fixed the non-SHELL case in brace_gobbler so the loop exits when
5118 lib/readline/bind.c, lib/readline/readline.h
5119 - added functions to dump key sequences bound to macros and their
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)
5127 doc/{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
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
5140 - new extern declaration for xtrace_print_word_list
5143 - call xtrace_print_word_list in execute_simple_command
5147 builtins/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
5154 lib/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.
5161 lib/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
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
5174 trap 'rm /tmp/z ; exit 5' 0
5177 exits with status 5; while
5186 - moved the $'...' code from subst.c to parse.y, more like ksh
5189 doc/bash.1, doc/bash.html, doc/features.texi
5190 - moved the description of $'...' from the expansion section to
5196 - added a `line' member to the function struct for the source line
5197 the function definition starts on
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
5206 - changed prototype for make_function_def
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
5213 - pass function_dstart and function_bstart to make_function_def
5214 - new function strtrans to do the $"..." locale-specific translation
5216 - call strtrans() to translate $"string". The translated string is
5220 - updated the description of LINENO now that line numbers within
5221 functions are correct
5224 - look for the `gettext' library function
5227 - define HAVE_GETTEXT if gettext(3) exists in a findable library
5232 - changed backslash_quote so that `#' is only quoted at the start
5234 - new function contains_shell_metas returns 1 if the argument
5235 string contains one or more shell meta-characters that require
5239 - extern declaration for contains_shell_metas
5242 - changed xtrace_print_word_list to print words containing
5243 shell metacharacters within single quotes
5246 - upgraded to GNU termcap version 1.3
5250 lib/readline/readline.c
5251 - call setlocale(LC_CTYPE, ...) after finding a legal value for
5252 one of LC_ALL, LC_CTYPE, or LANG
5256 lib/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
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
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]
5274 - in CHECK_FOR_RESERVED_WORD, make sure that reading a `}'
5275 decrements open_brace_awaiting_satisfaction if it is non-zero
5279 - don't run the shell startup files if the shell is running
5281 - don't source $ENV if the shell is running setuid
5284 - new parameter to initialize_shell_variables: no_functions. If
5285 non-zero, don't import functions from the environment
5288 - change to function prototype for initialize_shell_variables
5290 lib/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
5300 - new function ungetc_with_restart that handles the local buffering
5304 - changed yy_stream_unget to call ungetc_with_restart if the OS
5305 does not have restartable syscalls [in 1.14.6]
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]
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
5327 lib/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
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
5337 - rewrote ignore_globbed_names to be more like _ignore_completion_names
5339 lib/readline/doc/rltech.texinfo
5340 - updated documentation for rl_filename_dequoting_function
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
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)
5356 - bind HOSTTYPE, OSTYPE, and HOSTNAME unconditionally
5359 - new function quote_globbing_chars, adds `\' before globbing
5360 chars in its string argument, returns new string
5363 - extern declaration for quote_globbing_chars
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 `&'
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
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]
5385 - added a new job listing format: JLIST_NONINTERACTIVE -- like
5386 JLIST_LONG, but does not print the job number
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
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
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
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
5414 - added a `release_status' variable that's set to RELSTATUS if
5418 - added the `RELSTATUS' variable to the report with heading
5420 - set the bug address to chet@po.cwru.edu if the release status
5421 is `alpha' or `beta'
5426 shell.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
5432 - perform alias expansion if expand_aliases is non-zero rather than
5433 checking the value of interactive_shell
5438 - new option `expand_aliases' to control the value of expand_aliases
5440 doc/bash.1, doc/bash.html
5441 - updated the description of `shopt' with the `expand_aliases' option
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]
5450 - change to define WAITPID_BROKEN on SCO 3.2v5
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
5458 - remove superfluous call to reset_readline_prompt in yy_readline_get
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
5472 - now includes definition of struct dstack
5475 - include parser.h for struct dstack
5476 - refer to dstack.delimiter_depth instead of delimiter_depth
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)
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
5495 - changed initialize_job_signals to install a signal handler for
5496 SIGWINCH with set_sigwinch_handler
5499 - extern declarations for set_sigwinch_handler and
5500 unset_sigwinch_handler
5504 doc/bash.{1,html}, doc/readline.3, lib/readline/doc/rluser.texinfo
5505 - documented the readline `visible-stats' variable
5510 - new global variable `running_trap' incremented and decremented
5511 around running a trap command in _run_trap_internal
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
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
5525 - new function assign_lineno, to assign a value to line_number
5527 - changed get_lineno to call executing_line_number() rather than
5528 returning line_number
5531 - new argument for push_stream telling it whether or not to reset
5535 - change to parse_and_execute to call push_stream with an argument
5540 - set subshell_environment in command_substitute and process_substitute
5541 for the child process
5546 - made decode_signal recognize signal names case insensitively
5549 - make the shell exit on a longjmp (DISCARD, ...) if
5550 subshell_environment is non-zero
5554 lib/readline/histexpand.c
5555 - let the `!' in ${!xxx} pass through without error
5558 - new --help long option
5559 - new function show_shell_usage() for use by --help
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
5570 aclocal.m4, configure.in
5571 - added a check for -lsocket (and -lnsl) to fix solaris problems
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()
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
5587 parse.y, general.c, subst.c, bashhist.c, alias.c, array.c, variables.c
5588 - use RESIZE_MALLOCED_BUFFER where appropriate
5592 support/config.{guess,sub}
5593 - merged in latest changes from GNU master copies
5599 - make sure to freeze the jobs list when calling a trap handler
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
5607 - make get_tty_state reset $LINES and $COLUMNS after each process
5608 exits if the variable `check_window_size' is non-zero
5611 - new variable `checkwinsize', which controls the value of
5614 doc/{bash.{1,html},features.texi}
5615 - updated description of `shopt' to include `checkwinsize'
5617 execute_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
5622 - new file, with `union wait' defines from jobs.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
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
5637 lib/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
5644 lib/readline/readline.h
5645 - declaration for rl_completion_append_character
5647 lib/readline/doc/rltech.texinfo
5648 - documented rl_completion_append_character as int variable available
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
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
5660 - in execute_disk_command, after forking the child, put the GNU
5661 getopt helper environment variable into the child's export_env
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
5670 - new define, unwind_protect_short, to protect variables smaller
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)
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
5684 - make canonicalize_pathname be more careful about what it checks
5685 for being a directory name when processing a full pathname
5687 Makefile.in, configure.in, doc/Makefile.in
5688 - small changes to get bash to build better in a directory not the
5694 - added `install-strip' target
5698 doc/bash.{1,html}, doc/features.texi
5699 - documented the `--verbose' startup option
5701 lib/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
5708 - changed to use WORDS_BIGENDIAN instead of LITTLE_ENDIAN or
5711 configure.in, config.h.in
5712 - call AC_C_BIGENDIAN, define WORDS_BIGENDIAN
5715 - remove all references to mkendian.c, mkendian, and bash_endian.h
5716 - added a `symlinks' target that just runs support/fixlinks
5719 - mkendian.c is no longer in the distribution
5724 - include <sys/times.h> if HAVE_SYS_TIMES_H and HAVE_TIMES are
5728 - fix to bash_directory_completion_hook to compensate for
5729 canonicalize_pathname returning NULL
5732 - fix to initialize_shell_variables to compensate for
5733 canonicalize_pathname returning NULL
5737 tests/test-tests, tests/test.right
5738 - changes to avoid writing in the source directory -- all temp files
5741 [First alpha release at Thu Feb 22 15:59:51 EST 1996]
5745 lib/readline/rldefs.h
5746 - work around SVR4.2 bug including <sys/ptem.h> and <termios.h>
5748 lib/readline/chardefs.h
5749 - fix to CTRL_CHAR macro for chars > 128 on systems with signed
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
5758 - add a definition for INSTALL, set by autoconf
5763 - if USER is unset, assign it the value of $LOGNAME or `whoami`
5765 Makefile.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
5769 lib/readline/Makefile.in, lib/glob/Makefile.in
5770 - use $(srcdir)/ instead of $(srcdir) in the CSOURCES variable
5773 - new define, FS_NODIRS, to not find directory names when searching
5777 - fix to find_in_path_element so it does not return directories
5778 - executable_file() no longer returns directories as executable
5783 - new flag value: J_NOHUP
5786 - new function: nohup_job(job). Sets J_NOHUP flag for specified
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
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
5797 - new option for disown: `-h'. Marks the specified jobs J_NOHUP.
5799 doc/{bash.{1,html},features.texi}
5800 - added description of `disown -h'
5803 - include some files needed for struct winsize by SCO
5805 lib/readline/input.c
5806 - added some #ifdefs to avoid including <sys/time.h> on systems
5807 with select but without <sys/select.h>
5810 - check for <stdarg.h>, define HAVE_STDARG_H in config.h if found
5813 - define USE_VARARGS and either PREFER_STDARG or PREFER_VARARGS
5814 if one of <stdarg.h> or <varargs.h> is present
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
5823 - no longer includes <varargs.h>
5825 builtins/Makefile.in
5826 - add -I$(topdir)/builtins to list of includes
5828 execute_cmd.c, lib/glob/glob.c
5829 - include memalloc.h for correct alloca definitions
5831 error.[ch], print_cmd.c, builtins/common.[ch]
5832 - changes to include new ANSI-C stdargs code if PREFER_STDARG is
5838 - more minor fixes from Andreas Schwab
5841 - change TEXINPUTS makefile variables to TEXINPUTDIR to avoid
5842 conflict with shell variable of the same name
5845 - fix to avoid a bad call to free after a call to
5846 polite_directory_format does not change its argument string
5849 - fixes to _rl_macro_dumper_internal so that it prints whatever
5850 prefix it's passed, if any
5855 - slight change to the rule for `stamp-h': it should be created by
5856 running `config.status', not explicitly by the makefile rule
5858 builtins/Makefile.in
5859 - replace `..' in the dependencies with `$(topdir)'
5860 - replace `.' in the dependencies with `$(srcdir)'
5865 - add a rule to build builtins/builtext.h for the benefit of
5866 deficient makes like the SunOS one
5869 - fix to assign_in_env so that values in the environment are
5870 properly null-terminated
5872 builtins/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
5878 - new script to replace clone-bash that works from MANIFEST to link
5879 only those files contained in a distribution
5882 - change so that it doesn't try to get `.build' from the source
5883 directory when that's different from the build directory
5888 - #undef setjmp and longjmp before redefining them as sigsetjmp and
5889 siglongjmp, respectively
5892 - fixed an uninitialized variable problem in expand_histignore_pattern
5895 - used `on_or_off' where `value' was needed in minus_o_option_commands
5898 - added extern declaration for set_var_attribute
5901 - include `bashansi.h' instead of just string.h or strings.h
5903 builtins/*.def, builtins/common.c
5904 - include `../bashansi.h' where appropriate
5907 - fixed a parenthesization problem in alias_expand_token
5910 - added extern declaration for `ungetc_with_restart'
5912 lib/readline/readline.c
5913 - renamed LibraryVersion to rl_library_version, made it extern,
5914 assigned `2.1' to it
5916 lib/readline/readline.h
5917 - extern declaration for `rl_library_version'
5919 lib/readline/doc/rltech.texinfo
5920 - added description of `rl_library_version'
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
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>
5934 - call BASH_FUNC_LSTAT if $ac_cv_func_lstat has value `no'
5939 - changed the occurrences of `list' in the if command productions
5940 to use `compound_list' instead
5945 - changed the occurrences of `list' in the while and until command
5946 productions to use `compound_list'
5948 lib/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
5956 - made the POSIX.2 behavior of PWD not containing symlinks after
5957 using $CDPATH part of `posix mode', not default shell behavior
5959 lib/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
5966 examples/functions/csh-compat
5967 - replaced the defintion for `alias' with a better one posted to
5968 usenet by Mohit Aron <aron@cs.rice.edu>
5973 - fix to wait_for_background_pids to keep `wait' from hanging
5977 lib/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
5982 lib/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
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
5998 - changed prototype for show_shell_version
6000 shell.c, bashline.c, builtins/help.def
6001 - changed calls to show_shell_version to add appropriate argument
6004 - pass a `MACHTYPE' define to the compiler
6009 - changed print_timeval() and print_time_in_hz() to output three
6010 fractional digits after the decimal point
6012 examples/loadables/sleep.c
6013 - changed to an implementation that will sleep fractional portions
6014 of seconds if select() is available
6019 - fixes to shopt -o from Andreas Schwab. Use FLAG_ON/FLAG_OFF
6020 instead of SETOPT/UNSETOPT
6024 Makefile.in, builtins/Makefile.in
6025 - use `@includedir@' instead of `@incdir' for autoconf 2.9
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
6033 - replace uses of [...] with `test'
6038 - fix for a problem with \@ prompt expansion from Tim Mooney
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
6049 - changed process_substitute to call save_pipeline and
6050 restore_pipeline in the appropriate places
6055 - ansicstr now takes an additional parameter, the length of the
6056 string to be translated. It's the second paramter.
6059 - changed call to ansicstr to pass strlen(list->word->word)
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
6067 tests/nquote.{tests,right}, tests/run-nquote
6068 - tests for the $'...' and $"..." quoting stuff -- simple-minded
6071 - on systems without /dev/fd, open the named pipe for a `reading
6072 in child' process substitution (>(...)) with O_NONBLOCK
6074 lib/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>
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
6085 lib/readline/funmap.c
6086 - made `vi-fetch-history' a bindable command name
6089 - many cleanups, updated the list of default bindings
6093 doc/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
6097 configure.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
6105 - another small change to localeexpand to handle backslash-escaped
6106 double quotes in the double-quoted string
6111 - add the value of MACHTYPE to the text output by `--help'
6116 - more changes to the $"..." and $'...' code to move it into
6118 - don't try to check token[token_index - 1] unless token_index
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
6131 - extern declaration for run_trap_cleanup
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
6139 - new extern declaration for unfreeze_jobs_list
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
6150 - don't try to make `doc' as a dependency of `install'
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
6159 - fixed an off-by-one error in glob_dir_to_array
6162 - removed an extra increment of arg_index when setting up the
6163 arguments for -c command
6168 - made quote_globbing_chars backslash-quote backslashes as well as
6169 `?*[]'; changed it to be a little faster
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
6179 [bash-2.0-alpha2 frozen]
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
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
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
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
6205 builtins/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
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'
6221 - fixed a memory-freed-twice error in find_in_path_element
6223 lib/readline/rltty.c
6224 - include <sys/ioctl.h> if GWINSZ_IN_SYS_IOCTL is defined and
6225 SHELL is not defined
6227 lib/readline/input.c
6228 - changed a stray HAVE_FIONREAD to FIONREAD
6229 - include <sys/ioctl.h> if FIONREAD_IN_SYS_IOCTL is defined
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
6237 - new line for FIONREAD_IN_SYS_IOCTL
6240 - call BASH_HAVE_FIONREAD
6245 - fixed a memory-freed-twice error in mkpath()
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')
6255 - definition for a `generic pointer' type PTR_T -- `void *' on ANSI
6256 C systems, `char *' otherwise
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
6263 - initialize j_cleanup and cleanarg to NULL in stop_pipeline
6264 - call j_cleanup from waitchld() when a job is marked JDEAD
6267 - fixed binop() so it recognizes `<' and `>' as binary operators
6268 - fixed a bug in binary_operator so `<' works correctly
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
6277 - include <unistd.h> if HAVE_UNISTD_H is defined for a prototype
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
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)
6289 lib/malloc/gmalloc.c
6290 - latest version from GNU sources
6295 - changed the description of `unset' to include a description of
6299 - fixed a problem with conversion to 12-hour time in
6300 decode_prompt_string that made 12:00pm show up as 00:00pm
6304 builtins/common.c, subst.c
6305 - a couple of fixes from Andreas Schwab
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'
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
6316 - set MALLOC_SRC to have the $(ALLOC_LIBSRC)/ prefix to avoid having
6317 a directory in the dependencies when making without the gnu
6320 lib/malloc/Makefile.in
6321 - make gmalloc.o depend on $(BUILD_DIR)/config.h
6326 - new file listing user-visible incompatibilites between bash-1.14
6330 - new prompt expansions, \v (version) and \V (version + patchlevel)
6333 - the default value of PS1 is now '\s-\v\$ '
6335 doc/{bash.{1,html},features.texi}
6336 - added descriptions of \v and \V prompt expansions
6337 - changed default value of PS1
6340 - added dependencies on config.h.top for files that use definitions
6344 - removed reference to `no_exit_on_failed_exec' from the help text
6349 - fixed a typo in fix from 4/22
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
6359 - extern declaration for no_options
6362 - corrected the error message to include returning from a sourced
6365 builtins/{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:
6369 getopts eval wait source . fg bg help
6372 - error messages are now printed using builtin_error
6377 - fixed an unitialized variable problem
6379 tests/more-exp.tests
6380 - added additional tests for IFS problem uncovered by `iffe'
6384 lib/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
6388 lib/readline/rldefs.h
6389 - fix workaround for SVR4.2 bug
6392 - even though SVR4.2 has getpeername(), isnetconn() should not use it
6395 - rework to make sure PATH_MAX and NAME_MAX are defined, and remove
6396 the BUILDING_MAKEFILE code
6398 general.c, parse.y, oslib.c, jobs.c, builtins/common.c, builtins/cd.def
6399 - change uses of MAXPATHLEN to PATH_MAX
6401 examples/loadables/{{log,base,dir}name,tty,pathchk,tee}.c
6402 - new loadable builtins:
6404 logname basename dirname tty pathchk tee
6406 configuure.in, config.h.in
6407 - look for tzset(3), define HAVE_TZSET if found
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
6415 - extern declaration for sv_tz
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
6427 - moved some variable declarations out of this file to more
6430 support/config.guess
6431 - small fixes from rfg@monkeys.com
6434 - moved functions for getting, setting, and displaying shell version
6435 information here from shell.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
6442 - renamed find_name_in_list to find_name_in_array to match rest
6443 of functions that operate on arrays of strings
6445 configure.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
6451 - new file, list manipulation functions from general.c
6453 externs.h, general.h
6454 - moved extern declarations for functions defined in oslib.c and
6455 list.c to externs.h from general.h
6460 - new file, with locale code from parse.y and shell.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
6474 - new define for EX_NOINPUT exit status (126)
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
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
6489 lib/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
6497 - if we are providing our own version of getenv(), provide a function
6498 _getenv() as well, which just calls getenv()
6501 - #define _KERNEL before including <sys/resource.h> if HPUX is
6502 defined. This makes the full set of limits available on hpux
6506 - new function, enable_hostname_completion, sets up readline to
6507 perform or not perform hostname completion. Hostname completion
6509 - don't attempt hostname completion in attempt_shell_completion()
6510 unless perform_hostname_completion is set
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
6519 doc/{bash.{1,html},features.texi}
6520 - added description of new shopt `hostcomplete' variable
6525 - don't try to save the shell history in termination_unwind_protect
6526 if we're dying due to SIGABRT
6529 - new functions: last_history_entry (static), last_history_line
6532 - extern declarations for new functions in bashhist.c
6535 - have programming_error() report the last command in the history
6539 - if the editor returns a non-zero exit status when using `fc -e',
6540 return immediately without trying to execute the commands, as
6542 - when using `fc -s', echo the command to be executed to stderr,
6545 lib/readline/terminal.c
6546 - new file, with all code related to termcap/terminfo
6548 lib/readline/{readline,rltty,display,util}.c
6549 - moved functions dealing with termcap to terminal.c
6551 lib/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
6556 lib/readline/rltty.c
6557 - do not enable and disable the meta key each time readline is
6558 called; do it once at initialization
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
6569 support/config.guess
6570 - recognize linux/sparc
6573 - don't use GNU malloc on linux/sparc
6576 - initialize a new $MACHTYPE variable to the value of MACHTYPE as
6579 doc/{bash.{1,html},features.texi}
6580 - documented $MACHTYPE
6585 - allow the max vm size to be set via setrlimit() if RLIMIT_VMEM
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
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
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
6615 builtins/{set,unset}.def
6616 - return EX_USAGE instead of EXECUTION_FAILURE if a bad option is
6620 - return EX_USAGE instead of EXECUTION_FAILURE if the required
6621 filename argument is missing
6623 builtins/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)
6628 builtins/declare.def
6629 - don't allow `declare var=value' to assign value to a readonly
6632 lib/readline/rldefs.h
6633 - include <stdarg.h> if we're going to be using stdarg instead of
6636 lib/readline/display.c
6637 - added `stdarg' version of rl_message
6639 lib/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
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
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
6655 [bash-2.0-alpha3 released]
6660 - array_length_reference and parameter_brace_expand_length now
6662 - parameter_brace_expand now returns &expand_param_error if
6663 paramter_brace_expand_length returns something < 0
6666 - assign_in_env now checks for assignments to readonly shell
6667 variables and disallows them
6672 - only do pointer arithmetic on pointers cast to (char *), since
6673 it's not required that compilers support arithmetic on void *
6676 - make sure <sys/socket.h> is included with the same conditions
6677 used to call getpeername(2) in isnetconn()
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
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
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.
6702 - don't compile in the memory scrambling code (#define MEMSCRAMBLE)
6703 if NO_MEMSCRAMBLE is defined.
6706 - define NO_MEMSCRAMBLE in LOCAL_CFLAGS for SCO 3.2v[45]
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
6719 - augmented parse_matched_pair
6720 o fixed up backslash quoting and CTLESC handling after
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
6729 o set EOF_Reached to 1 if we get an EOF before finding the
6731 - rewrote read_token_word from scratch to use parse_matched_pair:
6732 o shell quote characters use parse_matched_pair to find
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')
6753 - make sure `newnames' is freed in _ignore_completion_names
6755 lib/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
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
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
6771 - removed the INC_NEST and DEC_NEST defines
6776 - don't print status messages for background jobs that complete
6777 successfully when running shell scripts
6780 - when using shopt -o as a synonym for set -o, make sure $SHELLOPTS
6782 - make sure to update $SHELLOPTS when using shopt to set or unset
6783 interactive comments
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)
6792 lib/readline/complete.c
6793 - after printing possible completions, all lines of a multi-line
6794 prompt are redisplayed using rl_forced_update_display()
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.
6805 support/config.guess
6806 - recognize the new Pyramid DC-OSx as `mips-pyramid-sysv4'
6809 - set LOCAL_CFLAGS to -Xa for mips-pyramid-sysv4 as per
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
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
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
6828 - renamed features.* to bashref.*, since that more accurately
6829 reflects the current contents
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
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
6844 - added a check for libncurses in BASH_CHECK_LIB_TERMCAP
6847 - added an initial message saying we're configuring for bash-2.0
6850 - made a small change to fnmatch() to fix a bug matching patterns
6851 with multiple consecutive `*'s
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
6864 - new function history_expansion_p(char *) returns 1 if the string
6865 passed contains the history expansion or history substitution
6867 - pre_process_line() now calls history_expansion_p and calls
6868 the history expansion code only if that returns 1
6872 lib/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
6877 examples/loadables/sprintf.c
6878 - new `sprintf' builtin: sprintf var format [args...]
6880 lib/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
6886 builtins/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
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
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
6905 - changed extern declaration for print_var_value
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
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
6916 - make reset_parser set allow_open_brace to 0
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 `-'
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)
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
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
6948 lib/readline/signals.c
6949 - if not being compiled as part of the shell, readline should
6950 catch SIGTERM and clean up
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
6959 lib/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.
6964 lib/readline/readline.h
6965 - extern declaration for rl_inhibit_completion
6967 lib/readline/doc/rltech.texinfo
6968 - documented rl_inhibit_completion
6971 - new readline user variable: disable-completion. This provides
6972 users a way to toggle the value of rl_inhibit_completion
6974 doc/{bash.{1,html},readline.3}, lib/readline/doc/rluser.texinfo
6975 - documented disable-completion variable
6977 lib/readline/doc/Makefile
6978 - added `html' target to create html from rlman.texinfo and
6984 - only try cd spelling correction if the shell is currently
6985 interactive, regardless of value of `cdspell' option
6987 lib/posixheaders/alloca.h
6988 - AIX 4.2 needs `#pragma alloca' if gcc is not being used
6992 builtins/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()
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
7005 - extern declaration of sh_badopt
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
7016 - some small changes to make the output look better
7019 - made some small changes suggested by the autoconf documentation
7024 - swapped meanings of \h and \H in prompt_string_decode for
7025 bash-1.14.6 compatibility
7027 doc/{bash.{1,html},bashref.texi}
7028 - updated prompt string decoding section with swap of \h and \H
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'
7036 - changed time_command to print the timing statistics to stderr
7039 - added the FILE * argument to the calls to print_timeval and
7043 - upgraded to version 1.50
7046 - include bashhist.h if HISTORY is defined for declarations of
7047 last_history_line() and remember_on_history
7050 - add a `#pragma alloca' as the first thing in the file if we're
7051 not using gcc and _AIX is defined
7053 lib/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
7060 lib/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.)
7066 lib/readline/rltty.c
7067 - make SETATTR use TCSADRAIN on POSIX machines. This setting is
7068 supposed to be used for changes that affect output
7070 [bash-2.0-alpha4 released]
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
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
7085 - added extern declaration for sv_locale
7088 - LC_ALL, LC_CTYPE, LC_MESSAGES, and LANG are now special variables;
7089 sv_locale() is called when they are assigned a value
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>
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
7102 - new grammar production: timespec, to handle `time' and `time -p'
7103 - change to special_case_tokens so that -p after `time' returns
7107 - set posix_time in time_command if the command's flags include
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'
7115 - call print_timeval and print_time_in_hz with 0 as the new third
7119 - new flag: CMD_TIME_POSIX, used to handle `time -p'
7121 doc/{bash.{1,html},bashref.texi}
7122 - documented `time -p'
7127 - include `config.h' before any other include files
7130 - initialize was_dollar to 0 in parse_matched_pair
7133 - removed duplicate check for <sys/file.h> from call to
7137 - include siglist.h so we can find out if it defines HAVE_SYS_SIGLIST
7140 - define HAVE_SYS_SIGLIST if we end up defining sys_siglist as
7141 _sys_siglist (Solaris 2.[45])
7144 - include "siglist.h" before testing whether or not HAVE_SYS_SIGLIST
7145 is defined; it may be defined in there (Solaris 2.[45])
7149 examples/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
7155 examples/misc/cshtobash
7156 - a more ambitious script that attempts to convert csh aliases,
7157 environment variables, and local variables to bash equivalents
7162 - added `:' to the set of completion word break characters so that
7163 individual directories in $PATH assignments can be completed
7166 - added a new macro, BASH_CC_WORKS, that aborts configuration if
7167 ${CC} can't compile a simple program successfully
7170 - call BASH_CC_WORKS before doing anything else
7175 - fixed select_query to print the prompt ($PS3) to stderr
7178 - workaround for bug in SunOS 5.x /bin/sh that causes it to
7179 not ignore interrupts while waiting for a foreground process
7185 - added new functions to decompose `timeval's and `clock_t's into
7186 seconds and thousandths of seconds: timeval_to_secs and
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
7194 - new extern declarations for timeval_to_secs and clock_t_to_secs
7197 - changed calls to print_timeval and print_time_in_hz, removing the
7198 no-longer-used third argument
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
7215 - `make clean' should delete the files listed in $(CREATED_SUPPORT);
7216 `make mostlyclean' should not
7218 doc/{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
7223 - updated the section listing the major differences between bash
7224 and the SVR4.2 shell
7226 lib/readline/readline.c
7227 - removed the setting of _rl_suppress_redisplay, since it doesn't
7228 really do anything yet
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)
7236 - moved CLOCKS_PER_SEC defines to oslib.c
7237 - changed clock_t_to_secs to call get_clk_tck once to get the
7241 - extern declaration for get_clk_tck
7244 - changed print_formatted_time so that a `%' at the end of the string
7246 - changed print_formatted_time to output a newline after the
7247 translated format string, so it does not need to be included in
7249 - changed BASH_TIMEFORMAT (the default time format) to have a leading
7250 newline to match ksh93
7253 - use `shlicc2' on BSD/OS machines
7258 - major overhaul, cleaned up text, corrected some minor HTML errors
7261 - call sv_optind and sv_opterr to initialize the getopts stuff in
7262 initialize_shell_variables
7267 - don't let maybe_execute_file try to read files that are not
7273 - cast `string' in yy_string_get() to unsigned char * to avoid
7274 sign extension bugs. For example, bash -c $'ls\377who'
7277 builtins/reserved.def
7278 - add help text for the `time' reserved word
7279 - deleted description of `HISTCONTROL'
7280 - added descriptions for HISTIGNORE, PWD, HOSTNAME, GLOBIGNORE,
7286 - parse_and_execute saves and restores the line number around
7287 calls, and resets it to 0 when pushing the string onto the
7291 - added code that parses `` within a double-quoted string as a
7296 configure.in, config.h.in
7297 - look for `textdomain' as well as `gettext' for internationalization
7300 - when LC_MESSAGES is set, call textdomain as well as setlocale
7301 - new variable `default_domain', used to track the value of
7305 - call sv_locale when TEXTDOMAIN changes
7310 - new function, sys_error(), which prints a formatted string followed
7311 by a colon and strerror(errno) to stderr
7314 - extern declaration for sys_error
7316 jobs.c, nojobs.c, input.c, execute_cmd.c, subst.c
7317 - changes to use sys_error()
7320 - changes to many of the literal strings in the code for consistency
7321 and easier potential translation
7326 - new function debug_parser(int) to toggle the value of yydebug
7332 - don't use CLOCKS_PER_SEC, just try to get CLK_TCK (60 by default)
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
7339 builtins/evalstring.c
7340 - moved parse_and_execute and auxiliary functions here from
7344 - moved maybe_execute_file here from shell.c
7346 Makefile.in, builtins/Makefile.in
7347 - changes necessitated by the new files
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
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
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()
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
7379 - new extern declaration for move_to_high_fd
7382 - moved indirection_level_string() here from shell.c
7385 - change initialize_jobs to use move_to_high_fd() instead of the
7386 inline code to do the same thing
7390 lib/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
7397 - combined source_file and maybe_execute_file into a new function
7398 _evalfile(fname, flags), where the flags select the appropriate
7402 - moved the functions that perform the read-eval loop here from
7406 - changed CPU calculation for printing timing statistics using
7407 ideas and code from Deven Corzine (deven@ties.org)
7409 eval.c, builtins/evalstring.c
7410 - make sure we dispose of global_command if set -n is on and the
7411 shell is not interactive
7416 - make a new array variable, BASH_VERSINFO, with version information:
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)
7425 doc/{bash.{1,html},bashref.texi}
7426 - Documented BASH_VERSINFO
7428 configure.in, config.h.in
7429 - look for bindtextdomain(), set HAVE_BINDTEXTDOMAIN if found
7432 - call sv_locale if TEXTDOMAINDIR is set or changes
7435 - handle TEXTDOMAINDIR in set_locale_var; call bindtextdomain if
7439 - added calls to egrep to filter out BASH_VERSINFO and PIPESTATUS,
7440 which can vary from system to system
7445 - moved line_buffer_stream from here to oslib.c, made it into a
7446 replacement for setlinebuf() if that is not available
7449 - extern declaration for setlinebuf()
7451 lib/readline/input.c
7452 - in rl_gather_tyi, punt if chars_avail < 0 after checking input fd
7456 builtins/suspend.def
7457 - send SIGSTOP instead of SIGTSTP
7462 - added true and false as builtins (undocumented)
7464 CWRU/POSIX.NOTES, doc/bashref.texi
7465 - note that process substitution is not available in posix mode
7468 - new header file for internationalization, included by locale.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
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
7489 - use a sentinel variable so we only initialize the hash table
7490 once in initialize_filename_hashing
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
7500 - initialize_bash_input should free bash_input.name if it is
7501 non-null before zeroing it
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
7514 - fix up yy_readline_get and yy_stream_get to fix the sign
7518 - move the setjmp(top_level) that catches early SIGINTs to the
7519 first statement in main()
7522 - added a `strip' target to strip the binary
7524 [bash-2.0-beta1 frozen]
7529 - replaced several static state variables with a single flags word:
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
7543 - changed evalerror to call internal_error so the name of the
7544 shell script is prefixed to the message, if necessary
7547 - changed RELSTATUS to `beta2'
7549 tests/{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
7554 - changed pushd_builtin so `pushd -' is equivalent to `pushd $OLDPWD'
7557 - changed the extern declaration for setlinebuf() to avoid having
7558 to include stdio.h before externs.h everywhere
7563 - new function, parser_error, for use by parts of the parser that
7564 don't want to call report_syntax_error
7567 - extern declaration for parser_error
7570 - changed some parts of the parser to use parser_error
7571 - made the ((...)) code #ifdef'd on DPAREN_ARITHMETIC
7574 - added a line to the --help output saying to use `bashbug' to
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
7584 - added line for DPAREN_ARITHMETIC, modified by configure
7586 doc/{bash.{1,html},bashref.texi}
7587 - documented new ((...)) command and new configuration option
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
7597 - more changes to LOCAL_CFLAGS for sco machines
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
7605 - changed report_syntax_error to call parser_error for consistent
7609 - change dispose_command to use programming_error instead of
7612 execute_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
7619 - changed the `localbuf' type to `unsigned char'
7622 - changed yy_stream_get to use feof to test for end of file when
7623 not using getc_with_restart
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
7633 - added support for SYS_BASH_LOGOUT
7637 lib/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
7646 - new file, implements a bare-bones echo (no -n, no \-escapes),
7650 - changed calls to echo to use recho to avoid errors when bash is
7651 configured with --enable-usg-echo-default
7653 tests/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
7659 lib/readline/histexpand.c
7660 - fixed a possible off-by-one error in history_expand_internal when
7661 deciding whether or not to reallocate `result'
7664 - fixed expcond() so that an assignment may be supplied as the
7666 - illegal bases now cause an evaluation error
7667 - multiple base specifications now cause an evaluation error
7670 - added more tests for conditional operator and associativity
7672 tests/{run-heredoc,heredoc.{tests,right}}
7673 - new set of tests for here-documents
7676 - print out the name returned by get_name_for_error in
7680 - set this_command_name to NULL before processing command-line
7681 assignment statements so arithmetic evaluation errors don't
7683 - according to POSIX.2, echo ${foo?$x} should print the expanded
7684 value of $x, even when it doesn't expand into anything
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
7693 doc/{bash.{1,html},bashref.texi}
7694 - updated description of startup file behavior
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
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)]}}
7708 builtins/bashgetopt.c
7709 - fixed a problem with `;' option specifier (optional argument)
7711 support/config.{sub,guess}
7712 - added cases to recognize CRAY C90 and T90
7715 - rewritten almost from scratch to use internal_getopt and to not
7716 mask the return value from getrlimit/setrlimit, and to make it
7718 - added `-l' option for systems with RLIMIT_MEMLOCK (4.4 BSD)
7720 doc/{bash.{1,html},bashref.texi}
7721 - documented new `-l' option to `ulimit'
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 `()'
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
7739 - make sure to set the strings in current_user to NULL after freeing
7740 their contents in uidget().
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
7748 - removed leading `^' from regular expressions to be matched by
7749 `expr' on the advice of meyering@appaloosa.asic.sc.ti.com
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
7761 - a few minor cleanups
7766 - make sure first_arg is non-empty before calling signal_object_p()
7768 [bash-2.0-beta2 frozen]
7773 - if we have setlocale(), but don't have a definition for LC_ALL,
7774 undefine HAVE_SETLOCALE
7777 - set LOCAL_LDFLAGS on AIX 4.2 to allow dynamic loading of builtins
7780 - use correct flags for AIX 4.2 in dlopen call if _AIX is defined
7782 examples/loadables/Makefile
7783 - add sample commands for AIX 4.2
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
7793 - new extern declarations for merge_temporary_env() and
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
7802 - modified description of what's changed by posix mode to include
7803 the persistance of assignment statements preceding special builtins
7806 - new script to create CWRU/POSIX.NOTES directly from the `Bash
7807 POSIX Mode' node of bashref.texi, like INSTALL is created
7811 lib/{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=...'
7817 - renamed eaccess() to test_eaccess() to avoid conflict with SCO
7820 - #undef HAVE_GETCWD if GETCWD_BROKEN is defined, so we use the
7821 replacement in getcwd.c
7824 - fixed a small memory leak in full_pathname that occurs if
7825 getcwd() returns NULL
7828 - new constant string variable: bash_getcwd_errstr, to use when
7829 getcwd() returns NULL
7831 {general,jobs}.c, parse.y, builtins/{cd.def,common.c}
7832 - change calls to getwd() to use getcwd() instead
7834 general.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
7840 - change a couple of calls to signal to set_signal_handler
7843 - added definitions of _popen and _pclose to the BASH_FUNC_GETCWD
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)
7852 - removed extern declaration for getwd(), added extern declaration
7853 for getcwd() if HAVE_GETCWD is not defined
7856 - removed definition of getwd(); it is no longer used
7858 lib/readline/rltty.c
7859 - changed SETATTR macro for SCO POSIX systems to call tcsetattr
7860 with TCSANOW, on advice of <wbader@nacs.fast.net>
7865 - slight change to work around a bug in the HP-UX `expr'
7869 lib/readline/vi_mode.c
7870 - changes so that the text inserted with an `i' command is available
7871 to be reinserted with `.'
7873 examples/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
7879 - when freeing the members of subshell_argv in shell_execve(), free
7880 only the members up to subshell_argc
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
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
7897 - removed HAVE_FUNC_WAIT3
7898 - added HAVE_STRCOLL
7900 variables.c, stringlib.c
7901 - move sort_char_array from variables.c to stringlib.c
7903 variables.h, externs.h
7904 - move extern declaration of sort_char_array from variables.h to
7908 - don't sort the exported environment, even when we're not in
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
7917 - track the value of $LC_COLLATE and call setlocale(LC_COLLATE,...)
7918 when it changes. Also, set its default value
7921 - LC_COLLATE is now a special variable; call sv_locale when it is
7922 assigned to or unset
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
7929 lib/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
7934 lib/readline/funmap.c
7935 - removed static declaration of qsort_string_compare; qsort now
7936 uses _rl_qsort_string_compare instead
7939 - rewrote stricmp, strnicmp; renamed them strcasecmp and
7940 strncasecmp, since they're only compiled in if HAVE_STRCASECMP
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
7950 - changed calls to stricmp to direct calls to strcasecmp
7953 - bumped RELSTATUS to `beta3'
7956 - added mention of LC_COLLATE
7959 - removed item about sorting environment from the section on posix
7965 - fixed array_length_reference to return 0 for an unbound variable
7966 and 1 for a variable that is not an array
7968 examples/scripts.v2/cdhist.bash
7969 - package with functions to replace cd and maintain a cd directory
7972 examples/scripts.v2/pmtop
7973 - a `poor man's top' for SunOS 4.x and BSD
7975 examples/scripts.v2/bashrand
7976 - a script to return a random number within a specified range, with
7979 examples/scripts/zprintf
7980 - printf(1) replacement that uses gawk to do the output
7982 doc/{bash.{1,html},bashref.texi}, lib/readline/doc/hsuser.texinfo
7983 - several small corrections
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
7994 - commented out list_string_with_quotes -- it is no longer used
7996 lib/readline/terminal.c
7997 - new function, _rl_set_screen_size(int rows, int cols), to set
7998 readline's idea of the screen size
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'
8008 support/config.guess
8009 - added code to recognize the various NetBSD ports
8011 lib/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.
8017 - make parameter_brace_expand_length expand variables in a double-
8018 quoted environment so it takes spaces in the variable value into
8024 - flags for possible values of subshell_environment telling what
8027 builtins/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
8031 execute_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)
8040 - just return EXECUTION_SUCCESS immediately in execute_command_internal
8041 if read_but_dont_execute is set
8046 - fixed check_dev_tty to return immediately if ttyname() returns NULL
8048 builtins/suspend.def
8049 - SIGSTOP cannot be caught, so there's no reason to try to do so
8051 examples/loadables/{finfo,pathchk,print}.c
8055 - fix to off-by-one error in setup_ignore_patterns
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
8063 - new test, BASH_STRUCT_TERMIO_LDISC, to test for a c_line member
8067 - add a new preprocessor variable, TERMIO_LDISC, undefined by default
8070 - call BASH_STRUCT_TERMIO_LDISC after BASH_STRUCT_TERMIOS_LDISC
8074 lib/readline/terminal.c
8075 - increased the size of the termcap buffers to 4096
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)
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)
8089 - call BASH_KERNEL_RLIMIT_CHECK if $host_os begins with `hpux'
8092 - new #undef for RLIMIT_NEEDS_KERNEL
8095 - only define _KERNEL before including <sys/resource.h> if HPUX
8096 and RLIMIT_NEEDS_KERNEL are both defined
8098 [bash-2.0-beta3 frozen]
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
8106 lib/readline/readline.c
8107 - moved i18n code from here to nls.c
8109 lib/readline/Makefile.in, Makefile.in
8110 - new readline library member, nls.c
8113 - new file, with internationalization code from readline.c (such as
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
8123 builtins/setattr.def, locale.c, aclocal.m4, oslib.c
8128 lib/readline/complete.c, test.c, trap.c
8129 - more minor cleanups
8134 - added a `flags' parameter to parse_matched_pair, currently unused
8138 configure.in, config.h.in
8139 - add a check for time_t, defaulting to `long' if it's not
8140 defined in <sys/types.h>
8143 - use `time_t *' instead of `long *' in call to time()
8148 - removed check for getpwent in libsun.a; it's not necessary for
8149 recent versions of irix (irix[56].?)
8154 - used `&&' where `||' was needed when testing if HAVE_LSTAT and
8155 S_IFLNK are both defined
8157 [bash-2.0-beta3 net release version frozen]
8162 - when sh_getopt detects that a required argument is not present,
8163 set sh_optarg to "" so that getopts does the right thing
8168 - made the default (without -H or -S) report the soft limit and set
8169 both soft and hard limits (like sh and ksh)
8172 - changed the maximum base in base#num constants to 64, implemented
8175 doc/{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
8181 lib/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)
8189 - new file, for termcap library definitions. Uses <termcap.h> if
8192 lib/readline/rldefs.h
8193 - remove inclusion of termcap.h; now included in tcap.h
8195 lib/readline/{terminal,display,readline}.c
8198 lib/readline/Makefile.in
8199 - update dependencies to include tcap.h
8203 lib/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()
8207 lib/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
8213 - replaced instances of MAXNAMLEN in the spelling correction code
8216 lib/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
8222 - fix to remember_mail_dates so any message following the
8223 filename is saved correctly
8228 - fixed extern declaration of _rl_parsing_coditionalized_out
8229 to match declaration in readline.c
8233 doc/{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
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
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
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
8262 lib/readline/readline.c
8263 - fix rl_insert to handle a count of exactly 1024
8266 - new function: unbind_args(), which removes all the positional
8267 parameters. Just calls remember_args(NULL, 1)
8270 - call unbind_args when executing a subshell, after setting up
8274 - include <libintl.h> if HAVE_LIBINTL_H defined
8277 - add HAVE_LIBINTL_H define
8280 - add call to AC_CHECK_HEADERS for libintl.h
8283 - added infodir and various mandir defines for completeness
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'
8293 lib/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
8300 support/config.guess
8301 - recognize netbsd/vax
8302 - recognize openbsd on all supported platforms
8303 - recognize tenon's machten running on powerpc and macintosh
8307 support/config.guess
8308 - added all sorts of systems from config.guess distributed with
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
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
8325 lib/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
8330 - added definitions of calloc() and cfree(), compiled in unless
8331 NO_CALLOC is defined to cpp
8337 - protect uses of history_expansion_inhibited with #ifdef
8340 [bash-2.0-release candidate frozen]
8343 - changed backslash_quote to quote a tilde if it's the first
8344 character in the string
8349 - changed BASH_CC_WORKS to provide a cross-compiling default for
8350 better error messages
8353 - generated configure using autoconf-2.12
8354 - changed the default value of CFLAGS to `-g -O2'
8359 - look for /var/spool/mail before /usr/spool/mail when checking
8360 for the default mail directory
8362 jobs.c, builtins/shopt.def
8363 - fixed a couple of `macro replacement within a string literal'
8367 - removed `realclean' target
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)
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
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
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
8396 - fix for bug that caused core dump if line read had leading white
8397 space and IFS was set to ''
8399 [bash-2.0-release frozen]