8 - check return value of fclose() in write_here_document() for error
9 returns; don't just rely on fwrite() failing
12 - set TMPDIR to /tmp if it's null or unset
13 - use $TMPDIR in the TEMP tempfile name template
14 - fixed the call to `mktemp', if it exists, to make it more portable
17 - if WCONTINUED is not defined, define it to 0 and add a define for
18 WIFCONTINUED(wstatus) which expands to 0
19 - add WCONTINUED to the flags passed to waitpid(2) in waitchld()
20 - don't increment children_exited if waitpid's status is WIFCONTINUED,
21 since we don't want to call a SIGCHLD trap handler in this case
22 - in waitchld(), we set child->running to 1 if WIFCONTINUED(status)
24 - make sure pretty_print_job doesn't check for the core dump bit if
25 the process has been continued; it's only valid if the job is dead
26 - in set_job_status_and_cleanup, set the job to JRUNNING if job_state
27 is non-zero and the job was previously marked as JSTOPPED
30 - add -DBROKEN_DIRENT_D_INO to interix LOCAL_CFLAGS
33 - if BROKEN_DIRENT_D_INO is defined, define REAL_DIR_ENTRY to 1
36 - in kill_pid, we only need to block and unblock SIGCHLD if the
37 `group' argument is non-zero, since otherwise we just call `kill'
41 - update copyright date to 2001
44 - prog_complete_return needs to take a `const char *' as its first
46 - history_completion_generator needs to take a `const char *' as
47 its first argument, and `text' needs to be a `const char *'
52 - fixed a weird typo in redir_special_open, case RF_DEVFD, added
53 call to all_digits before call to legal_number
54 - fixed do_redirection_internal to call legal_number instead of atol(3)
55 when translating r_duplicating_{in,out}put_word, so it handles
57 - produce an error message in redirection_error for out-of-range
59 - change allocation strategy in redirection_error so we don't have to
60 malloc scratch memory if redirection_expand() fails
63 - added defines for `running' member of a struct process
66 - fix legal_number to return 0 when strtol(3) reports overflow or
70 - changed read_token_word to call legal_number instead of atoi(3)
73 - return -1/EBADF from close_buffered_fd if fd is < 0
76 - fixed bogus comment about IS_DESCRIPTOR in description of the
80 - change cprintf's 'd' modifier code to display negative numbers as
81 an out-of-range value. We can do this only because the only use
82 of %d is to output file descriptor numbers in redirections
85 - need to include config.h to get a possible value for
90 lib/readline/doc/rluser.texinfo
91 - corrected a small error in one description of M-DEL
96 - need to initialize `ind' before calls to RESIZE_MALLOCED_BUFFER
100 - new file, prints bash version information
103 - rules for building bashversion and linking it to version.o
108 - new file with HOSTTYPE, OSTYPE, MACHTYPE, etc. defines from
111 variables.h, version.c
112 - include conftypes.h
115 - new file, contains define for PATCHLEVEL. Doing away with the old
116 scheme of having the information in configure.in
119 - include patchlevel.h
122 - run bashversion -p to find patch level rather than have configure
123 substitute in a value
124 - pass -S ${top_srcdir} to support/mkversion.sh
127 - don't put PATCHLEVEL define into version.h, but accept and ignore
129 - take a new -S srcdir option
130 - find the patch level by parsing it out of patchlevel.h
133 - hard-code BASHVERS assignment instead of reading it from a file
134 - remove BASHPATCH; don't substitute it
136 _distribution,_patchlevel
142 - call init_noninteractive() in open_shell_script if forced_interactive
143 is non-zero (the shell was started with -i) and fd_is_tty is 0
144 (the script file is a real file, not something like /dev/stdin),
145 since it wasn't done earlier
148 - change for POSIX.2 compliance when conversion errors are encountered
149 when processing %d, %u, and floating point conversion operators
150 (print a warning message, return the value accumulated at the time
151 of the error -- which is always 0 -- and exit with a non-zero status)
154 - added CMD_COMMAND_BUILTIN for use by the `command' builtin and the
155 code in execute_cmd.c
158 - add CMD_COMMAND_BUILTIN to the created command's flags
163 - add call to AC_C_CONST to test `const' compiler behavior
164 - add call to AC_C_INLINE to test `inline' compiler behavior
165 - add call to AC_C_STRINGIZE to test cpp #x stringizing operator
168 - add `#undef const' for configure to substitute
169 - add `#undef inline' for configure to substitute
170 - add `#undef HAVE_STRINGIZE' for configure to substitute
173 - remove code that defines or undefines `const' and `inline'
174 - change the __STRING macro to be defined depending on the value
178 - change the __STRING macro to be defined depending on the value
181 lib/readline/{readline,rlprivate}.h
182 - moved rl_get_termcap to readline.h, making it a public function
184 lib/readline/readline.h
185 - new #define, RL_READLINE_VERSION, hex-encoded library version
186 number, currently set to 0x0402
187 - new public int variable, rl_readline_version
189 lib/readline/readline.c
190 - #define RL_READLINE_VERSION if it is not already defined (which it
191 should be in readline.h)
192 - initialize rl_readline_version to RL_READLINE_VERSION
194 lib/readline/doc/rltech.texinfo
195 - documented rl_get_termcap
196 - documented rl_readline_version
199 - job_exit_status should return an int, not a WAIT (undetected
200 before because on most POSIX-like systems a WAIT is really an int)
203 - added FEVAL_REGFILE (file must be a regular file) to accepted
205 - fc_execute_file() adds FEVAL_REGFILE to _evalfile flags. This
206 means that startup files and files read with `.' no longer need
212 lib/termcap/Makefile.in
213 - fix target for installed termcap library (normally unused)
215 lib/tilde/Makefile.in
216 - fix install target to install in $(libdir) (normally unused)
219 - don't make $(man3dir) since there's nothing installed there
221 Makefile.in,doc/Makefile.in
222 - change `man1ext' to `.1', `man3ext' to `.3'
223 - change appropriate install targets to use new values of man[13]ext
224 - use `test ...' instead of `[...]'
225 - add support for DESTDIR root installation prefix, for package
226 building (installdirs, install, install-strip, uninstall targets)
229 - new function int get_exitstat(WORD_LIST *list) returns an eight-bit
230 exit status value for use in return, exit, logout builtins
233 - extern declaration for get_exitstat()
235 builtins/{exit,return}.def
236 - call get_exitstat where appropriate
239 - add support for "'" flag character as posix 1003.2-200x d6 says
240 - fix core dump when user-supplied field width or precision is 0
241 - fix to printstr() to handle zero-length precision with `%b' format
242 specifier (printf '%.0b-%.0s\n' foo bar)
243 - fix to printstr() to treat a negative field width as a positive
244 field width with left-justification
245 - fix to mklong to avoid static buffers, which can always be overrun
246 by someone sufficiently motivated
249 - change var in add_host_name to type `size_t' for passing to xrealloc
254 - change restore_signal_mask to accept a sigset_t *, since a sigset_t
255 may not fit into a pointer, change call
258 - use a union UWP in restore_variable when restoring a variable whose
259 size is the same as sizeof(int), the reverse of the method used to
260 store it in unwind_protect_int
263 - use a #define LENMODS containing the length modifiers instead of
264 testing against each possible modifier character, save any mod
266 - add support for ISO C99 length specifiers `j', `t', and `z'
267 - if `L' modifier is supplied with a floating point conversion char,
268 pass a `long double' to printf if HAVE_LONG_DOUBLE is defined
270 configure.in,config.h.in
271 - call AC_C_LONG_DOUBLE to check for `long double'; define
272 HAVE_LONG_DOUBLE if supported
275 - fix an inadvertantly-unclosed comment in attempt_shell_completion
276 - make set_saved_history return a value
277 - make dynamic_complete_history return a useful value
279 {make_cmd,execute_cmd,shell,subst,trap,variables,input,unwind_prot,test,
281 - removed some declared-but-unused variables
283 builtins/{cd,enable,fc,set,setattr,type,umask,printf,complete}.def
284 - removed some declared-but-unused variables
286 lib/sh/{zread,netopen}.c
287 - removed some declared-but-unused variables
290 - in execute_arith_command, use a long variable to hold the result
291 of evalexp(), since that's what it returns
293 builtins/evalstring.c
294 - make cat_file return -1 on a read or write error
297 - make merge_stringlists() return the right value
302 - remove typo that caused empty declaration (;;)
305 - fix yyerror() to accept a single string argument; fix callers
308 - cast pointer to long instead of int when printing message with
309 internal_warning() in run_pending_traps()
312 - fix process_substitute to handle stdin being closed
315 - change `while' to `if' in and() and or(), since the loop isn't
316 actually performed -- there's an unconditional `return' in the
318 - check for integer overflow of arguments to `-t'
321 - change _getserv() to reject negative port/service numbers
324 - fix strlong() to not convert the base specification from long to
325 int before checking for overflow, since truncation on machines
326 where sizeof(int) != sizeof(long) may mask errors
328 builtins/{jobs,kill,wait}.def
329 - use legal_number instead of atoi when converting strings to pid_t;
330 check for numeric overflow
333 - fix for cygwin in b_fill_buffer -- off-by-one error when checking
334 buffer for \r\n termination
337 - new #define INT_STRLEN_BOUND(t), computes max length of string
338 representing integer value of type T, possibly including a sign
340 - include <limits.h> if it's present
342 {execute_cmd,findcmd,test}.c
343 - don't include <limits.h>, since general.h does it now
345 {execute_cmd,lib/sh/itos,pcomplete,print_cmd,subst,variables}.c
346 - use INT_STRLEN_BOUND instead of static array sizes when converting
347 various strings to integer values
350 - struct fd_bitmap now uses an `int' size, since it's bounded by
351 the number of file descriptors, which must fit into an `int'
354 - FD_BITMAP_DEFAULT_SIZE is now 32, not 32L
355 - new_fd_bitmap takes an `int' size parameter, not a `long'
358 - change prototype for new_fd_bitmap()
361 - fix test_stat to check for overflow when parsing the integer file
362 descriptor number; return ENOENT instead of EBADF for files that
366 - don't discard the upper 32 bits of the random value, if present
369 - use the same INT_STRLEN_BOUND mechanism to decide how much space to
370 allocated in sh_set_lines_and_columns
375 - add check for libtinfo (termcap-specific portion of ncurses-5.2) to
376 BASH_CHECK_LIB_TERMCAP
377 - new macro, RL_LIB_READLINE_VERSION, checks version of installed
378 readline library and (optionally) writes version #defines to
379 config.h. Bash doesn't use the version defines
382 - call RL_LIB_READLINE_VERSION instead of support/rlvers.sh
385 - fix execute_shell_script and the WHITECHAR and STRINGCHAR macros
386 to check array bounds before indexing into the sample string
389 - import new versions submitted by Paul Eggert <eggert@twinsun.com>
390 with a couple of changes for backwards compatibility, so the rest
391 of the source doesn't need to be changed yet
394 - use unwind_protect_var on last_made_pid in run_sigchld_trap
397 - use unwind_protect_var on rl_outstream
400 - rework print_rlimtype to use INT_STRLEN_BOUND and handle the
401 most negative number correctly
404 - `tokval' should have been a `long', since all arithmetic is done
408 - consolidate tests for valid history position in one block to
409 avoid duplicate code and strings
412 - fix check for overflow when setting limit to work when int is 32
413 bits and RLIMTYPE is 64
416 - don't truncate the result of time(3) to int; just use time_t,
417 since it's being assigned to an `unsigned long'
420 - use legal_number instead of atoi in time_to_check_mail() to catch
421 more numeric errors; consolidate error checking in one block
422 - last_time_mail_checked should be a time_t
427 - recognize `set [-+]o nolog' if HISTORY is defined
430 - new variable `dont_save_function_defs', set by `set -o nolog';
434 - the `dest' member of a REDIRECTEE is now an `int'
437 - changed uses of `redir.test' (where redir is a REDIRECTEE) since
440 lib/readline/rlstdc.h
441 - don't mess around with `const', rely on configure to supply a
442 proper definition if the compiler doesn't support it
445 - include <config.h> if HAVE_CONFIG_H is defined
446 - don't mess around with `const', rely on configure
449 - new read-only `shopt' option, login_shell, non-zero if shell is a
450 login shell (as decided by shell.c)
451 - new function set_login_shell(), sets shopt private value of
455 - new extern declaration for set_login_shell
458 - call set_login_shell after setting value of login_shell (in
459 main() and set_shell_name())
462 - added new `\A' prompt string escape sequence: time in 24-hour
465 configure.in, config.h.in
466 - check for <grp.h>, define HAVE_GRP_H if found
468 builtins/complete.def
469 - add new `-A group/-g' option to complete group names
472 - new define for CA_GROUP, used with group name completion
475 - add code to support CA_GROUP group name completion
478 - new function, bash_groupname_completion_function(), supports
479 programmable completion of group names
482 - extern declaration for bash_groupname_completion_function
485 - new inputrc variable, `match-hidden-files', controls completion
486 matching files beginning with a `.' (on Unix)
488 lib/readline/complete.c
489 - new variable, _rl_match_hidden_files, mirrors `match-hidden-files'
492 lib/readline/rlprivate.h
493 - extern declaration for _rl_match_hidden_files
496 - new `-t' option to list hash values for each filename argument
499 - alarm(3) takes an `unsigned int' argument, not int
500 - check for arithmetic overflow with -t and -n options
503 - check for read error before doing \r\n translation on cygnus in
505 - reset bp->b_used to 0 instead of leaving it at -1 on read error
509 - new functions, shopt_setopt(name, mode) and
510 shopt_listopt(name, mode) to give the rest of the shell an easy
514 - extern declarations for shopt_setopt and shopt_listopt
517 - new invocation options -O and +O, to list or set/unset shopt
518 options like +o/-o sets and unsets `set -o' options
520 doc/{bash.1,bashref.texi}
521 - document `set -o nolog'
522 - document `login_shell' shopt option
523 - document new `\A' prompt string escape sequence
524 - document new `-t' option to `hash'
525 - document new `[+-]O' invocation option
528 - add text to `Invoking Bash' section defining a login shell; text
531 doc/bash.1, lib/readline/doc/rluser.texinfo
532 - documented new complete/compgen `-A group/-g' option
534 lib/readline/doc/{rluser.texinfo,readline.3}, doc/bash.1
535 - documented new `match-hidden-files' inputrc variable
540 - fix AC_CHECK_PROG(ar, ...)
541 - add AC_CHECK_TYPE for ssize_t
544 - new #undef for ssize_t
547 - int -> ssize_t fixes to mirror modern declarations of read and write
548 - the `off' variable in zsyncfd should be an off_t since it computes
550 - the local buffer `lbuf' is now char, since it's not nice to pass
551 unsigned char * to read(2), and the values from it are assigned to
553 - lind and lused are now size_t, since they index into a buffer
554 - set lused to 0 on read error
557 - change second argument to type `char *', since ISO C says you have
558 to pass a `char *' to `write'
561 - fix extern declarations of zread, zread1, zreadc, and zwrite
562 - prototype extern declaration of qsort_string_compare
563 - add extern declaration for history_delimiting_chars() from parse.y
566 - b_used and b_inputp members ofr struct BSTREAM are now size_t
568 builtins/evalstring.c
569 - the number of chars read with zread in cat_file should be assigned
570 to a variable of type ssize_t
573 - the number of chars read with zread in b_fill_buffer should be
574 assigned to a variable of type ssize_t
575 - `localbuf' is now type char[], since POSIX says you shouldn't pass
576 unsigned char * to read(2)
577 - in getc_with_restart(), use a variable of type unsigned char to
578 get a value from the local buffer and return it
579 - in ungetc_with_restart, explicitly return the character arg passed
580 to avoid relying on localbuf being unsigned char
583 - the number of chars read with zread in read_comsub should be
584 assigned to a variable of type ssize_t
587 - instead of casting to unsigned char * in addcstr, use a variable
588 of type unsigned char and let the compiler do the work
591 - instead of casting to unsigned char * in yy_readline_get, use a
592 variable of type unsigned char and let the compiler do the work
593 - ditto for yy_string_get and shell_getc (cast to unsigned char)
596 - instead of casting to unsigned char when assigning to ifscmap in
597 expand_word_internal, use a variable of type unsigned char and
598 let the compiler do the work
601 - instead of casting to unsigned char in ansic_quote, use a variable
602 of type unsigned char and let the compiler do the work
604 builtins/evalstring.c
605 - remove extern declarations for zwrite and run_trap_cleanup; they're
607 - prototype cat_file forward declaration
610 - remove -I$(includedir) from INCLUDES and SUBDIR_INCLUDES
613 - change RL_LIB_READLINE_VERSION to set RL_PREFIX, RL_LIBDIR,
614 and RL_INCLUDEDIR to what it used to test the installed readline
615 library version for use by the caller
616 - change RL_LIB_READLINE_VERSION to not compute ac_cv_rl_prefix if
617 the caller has already assigned it a value
618 - rename _rl_prefix -> ac_cv_rl_prefix, _rl_libdir -> ac_cv_rl_libdir,
619 _rl_includedir -> ac_cv_rl_includedir
622 - change testing of whether to use the value of
623 $opt_with_installed_readline to be != no, to allow the user to
624 specify a prefix where the installed readline library may be found
625 - if --with-installed-readline=PREFIX is supplied, set ac_cv_rl_prefix
626 to PREFIX before calling RL_LIB_READLINE_VERSION
627 - if --with-installed-readline[=PREFIX] is supplied, don't set
628 RL_LIBDIR and RL_INCLUDEDIR; let RL_LIB_READLINE_VERSION take care
629 of it, set RL_INCLUDE=-I${RL_INCLUDEDIR}
630 - if --with-installed-readline[=PREFIX] is supplied, and we're
631 linking with the history library, assign $RL_LIBDIR to HIST_LIBDIR
632 so we use the same version of the installed readline and history
635 Makefile.in, builtins/Makefile.in
636 - have configure substitute RL_INCLUDEDIR, set RL_INCLUDEDIR variable
639 - updated description of --with-installed-readline configure option
642 - moved QSFUNC typedef here from builtins/common.c
644 {alias,bashline,variables,lib/sh/stringvec}.c
645 - cast fourth argument to qsort to (QSFUNC *)
648 - prototype forward declaration of qsort_alias_compare
651 - include <glob/glob.h> for extern declaration of glob_pattern_p
652 - remove extern declaration of history_delimiting_chars; it's now
654 - prototype forward declarations of histignore_item_func,
655 maybe_add_history, and bash_add_history
658 - remove extern declaration for sh_backslash_quote; it's in externs.h
661 - remove extern declaration for extract_command_subst; it's in subst.h
662 - prototype forward declarations for expand_amble, array_concat, and
666 - prototype extern declaration of give_terminal_to, fix bad call
668 {execute_cmd,expr,findcmd,jobs,mailcheck,nojobs,pcomplete,print_cmd,redir,
670 - prototype all static forward function declarations
673 - changed some function parameters to `const char *' to avoid discarding
677 - make_bare_word, make_word_flags, and make_word now take a
678 `const char *' string argument
681 - changed extern declarations for make_bare_word and make_word
684 - cprintf now takes a `const char *' as its first argument, like
686 - the conditional define for xprintf should have been HAVE_VPRINTF,
690 - in isnetconn(), the return value of sizeof() is size_t
693 - add inclusion of stddef.h if STDC_HEADERS is defined to 1 in
697 - add a call to BASH_CHECK_TYPE for socklen_t (type of third argument
703 - make `useq' a char array to pass to rl_macro_bind in
706 lib/readline/{{bind,isearch}.c,rlprivate.h}
707 - _rl_isearch_terminators is now a char *, not unsigned char *
709 {subst,variables,lib/sh/tmpfile}.c
710 - dollar_dollar_pid is now a `pid_t' instead of `int'
713 - sbrand() now takes an `unsigned long' to set the seed value
714 - changed last_random_value to type int, since it's always between
716 - use strtoul to convert the value in assign_random instead of atoi
717 - take out casts in any arguments to sbrand()
718 - take out cast to int in call to inttostr in set_ppid()
721 - don't cast last_asynchronous_pid when passing to itos()
724 - prototype all static forward function declarations
728 {test,trap,variables}.c
729 - prototype all static forward function declarations
732 - free_variable_hash_data() now takes a PTR_T, a `generic pointer'
734 builtins/{alias,bind,break,cd,complete,declare,enable,exit,fc,fg_bg,help,
735 history,jobs,pushd,read,set,trap,umask,
736 - prototype all static forward function declarations
739 - reset_eol_delim now takes a `char *' arg, since that's what the
740 unwind_protect functions pass it, and it ignores its arguments
743 lib/readline/{histsearch,input,kill,rltty,search,vi_mode}.c
744 - prototype all static forward function declarations
747 - prototype all static forward function declarations
748 - tilde_find_prefix, tilde_find_suffix, isolate_tilde_prefix, and
749 glue_prefix_and_suffix now take `const char *' arguments where
752 configure.in,config.h.in
753 - check for vsnprintf, define HAVE_VSNPRINTF if found
755 lib/readline/display.c
756 - use vsnprintf() in rl_message if it's available; if we don't, at
757 least set the last character in msg_buf to 0 to avoid overrun --
758 we really can't do anything about overflow at this point. if it's
759 available, this fixes buffer overflow problems in rl_message
763 lib/readline/histexpand.c
764 - in get_history_word_specifier, allow any character to terminate
765 a `:first-' modifier, not just `:' and null. This is what csh
766 appears to do. This allows things like `!:0- xyzzy' to replace the
767 last argument with xyzzy
771 configure.in, config.h.in
772 - check for <stdint.h>, define HAVE_STDINT_H if found
773 - check for intmax_t in <stdint.h>, define intmax_t as long if not
779 - change to use strerror() for error message when kill(2) fails
782 - new macro, BASH_C_LONG_LONG, check for `long long'
784 configure.in, config.h.in
785 - call BASH_C_LONG_LONG, define HAVE_LONG_LONG if found
788 - new file, with implementations of snprintf, vsnprintf, asprintf,
789 and vasprintf, derived from inetutils version
791 Makefile.in, lib/sh/Makefile.in
792 - add snprintf.c/snprintf.o
794 configure.in, config.h.in
795 - add checks for snprintf, asprintf, vasprintf, with appropriate
798 lib/readline/{rldefs,xmalloc}.h, lib/readline/xmalloc.c
799 - xmalloc and xrealloc now take `size_t' arguments, like their bash
802 externs.h,lib/sh/itos.c
803 - inttostr and itos now take `long' arguments
804 - inttostr takes a `size_t' argument for the buffer size
806 {expr,lib/malloc/malloc,variables,general}.c
807 - fixed calls to itos() by removing casts, etc.
810 - get_dollar_var_value now takes a long, not an int
811 - sub_append_number now takes a long, not an int
814 - in parameter_brace_expand_word, use a long and legal_number to
815 translate ${N}, to avoid overflow
816 - in parameter_brace_expand_length, use a long and legal_number to
817 translate ${#N}, to avoid overflow
818 - in do_array_element_assignment, array_expand_index,
819 array_value_internal, use arrayind_t instead of int
820 - let verify_substring_values take long * arguments for the return
822 - pass long * arguments to verify_substring_values in
823 parameter_brace_substring
824 - parameter_brace_expand_length now returns `long'
825 - parameter_brace_expand now uses a long variable for the return
826 value of parameter_brace_expand_length
827 - param_expand now uses a long variable for the return value from
829 - array_length reference now returns an `arrayind_t', since it can
830 return the num_elements member of an array, which is of type
834 - array_expand_index now returns an `arrayind_t'
837 - array_subrange now takes arrayind_t arguments, not `int'
838 - dup_array_subrange now uses arrayind_t local variable to do
840 - use long to print array indices in print_element
843 - null_array_assign, assign_dirstack, bind_array_variable
844 now take arrayind_t arguments as array indices
845 - assign_array_var_from_word_list, assign_array_var_from_string,
846 unbind_array_element now use arrayind_t local variables for
850 - change extern declaration of bind_array_variable
853 - get_numeric_arg now returns a `long', since it usually returns
854 the value of legal_number()
856 builtins/{shift,break}.def
857 - use long variables for the return value of get_numeric_arg
860 - convert string argument to int only if it's in range
863 - set_dirstack_element and get_dirstack_element now take `long'
865 - get_dirstack_index now takes a `long' index argument, since it's
866 passed the converted value from legal_number
869 - in print_timeval, don't assume that the number of minutes fits into
870 an int, since it's just seconds/60.
873 - ditto for print_clock_t
878 - since the -O option settings may possibly be overridden by the
879 normal shell initialization or posix initialization, save the
880 invocation options on an alist (with add_shopt_to_alist) and
881 process them after basic initialization (with run_shopt_alist)
886 - new define, BASH_NSIG, all system signals plus special bash traps
888 trap.c, builtins/trap.def
889 - use BASH_NSIG for array bounds and loops where appropriate
892 - change decode_signal to disallow numeric signal numbers above
893 NSIG -- this means you can only reference special traps like
895 - new SPECIAL_TRAP(s) macro to test whether s is one of the special
896 bash traps (currently DEBUG and EXIT)
897 - change reset_or_restore_signal_handlers so command substitution
898 doesn't inherit the debug trap (like ksh93), and child processes
899 don't have to rely on initialize_traps being run to get rid of
903 - add extra "ERR" signal name, value NSIG+1, allocate space for it
904 and write it out in signal_names[]
907 - new define: ERROR_TRAP == NSIG+1, change BASH_NSIG to NSIG+2
908 - extern declarations for set_error_trap, run_error_trap
909 - new define: TRAP_STRING(s), expands to trap_list[s] if signal S
910 is trapped and not ignored, NULL otherwise
913 - add ERROR_TRAP to SPECIAL_TRAPS define
914 - initialize ERROR_TRAP stuff in initialize_traps
915 - new function: set_error_trap(command), sets the ERR trap string
916 - new function: run_error_trap(command), runs the ERR trap string
917 - set trap string for ERROR_TRAP to NULL in free_trap_strings
918 - change reset_or_restore_signal_handlers so child processes don't
920 - add case to call run_error_trap in maybe_call_trap_handler
923 - in execute_command_internal, keep track of ERR trap and call it if
925 - use TRAP_STRING to get the value of debug and error traps
926 - in execute_function, arrange things so the ERR trap is not inherited
927 by shell functions, and is saved and restored like the DEBUG trap
929 doc/{bash.1,bashref.texi}
930 - documented new ERR trap
932 tests/{trap.{tests,right},trap2.sub,trap2a.sub}
933 - added ERR trap tests
936 - on machines without /dev/fd, change the named pipe fifo list to a
937 list of structs containing pathname and proc information
938 - change unlink_fifo_list to kill the proc in the fifo list with
939 signal 0 and not remove the fifo if the proc is still alive. This
940 should fix the problem on those backward systems without /dev/fd
941 where fifos were removed when a job using process substitution was
946 examples/loadables/getconf.h
947 - new file, with basic defines needed to make getconf work minimally
948 on POSIX systems without the necessary definitions
950 examples/loadables/getconf.c
951 - replacement functions for confstr, sysconf, pathconf for systems
952 that lack them, providing a minimal posix interface
953 - heavily augmented getconf, now supports all POSIX.1-200x,
954 POSIX.2-200x, Solaris 7, AIX 4.2 getconf variables
959 - make `readonly', `export', and `declare' print `invisible' variables
960 as just a command and variable name, without a value, when listing
961 all variables (as POSIX.2-200x d6 requires)
967 - upgraded to autoconf-2.50 on main development machine, so require
968 autoconf-2.50 in preparation for using some if its new features
969 - call AC_C_PROTOTYPES
970 - remove call to AC_EXEEXT, which now does the wrong thing
971 - changed AC_INIT to new flavor
972 - added call to AC_CONFIG_SRCDIR
973 - AC_CONFIG_HEADER -> AC_CONFIG_HEADERS
974 - AC_RETSIGTYPE -> AC_TYPE_SIGNAL
976 configure.in, aclocal.m4, config.h.in
977 - removed call to BASH_LARGE_FILE_SUPPORT, use AC_SYS_LARGEFILE
978 standard support, with new macros _FILE_OFFSET_BITS and
980 - removed definition of BASH_LARGE_FILE_SUPPORT
983 - document new `--enable-largefile' configure option
985 lib/readline/readline.c
986 - change rl_set_prompt to call rl_expand_prompt unconditionally, so
987 local_prompt and local_prompt_prefix get set correctly
991 lib/readline/complete.c
992 - don't append `/' or ` ' to a match when completing a symlink that
993 resolves to a directory, unless the match doesn't add anything
994 to the word. This means that a tab will complete the word up to
995 the full name, but not add anything, and a subsequent tab will add
996 a slash. Change to append_to_match; callers changed
999 - new function, hash_table_nentries (table), returns the number of
1003 - extern declaration for hash_table_nentries
1006 - configure without bash malloc on openbsd; they claim it needs
1007 eight-bit alignment (which the bash malloc provides, but...)
1012 - only call RESIZE_MALLOCED_BUFFER from strsub() if the replacement
1013 string length is > 0, avoid possible hangs if replacement is null
1016 - don't include input.h; no longer needed
1019 - remove calls to AC_SYS_RESTARTABLE_SYSCALLS and
1020 BASH_SYS_RESTARTABLE_SYSCALLS; the results are no longer used
1023 - remove define for HAVE_RESTARTABLE_SYSCALLS
1026 - removed definition of BASH_SYS_RESTARTABLE_SYSCALLS; no longer used
1029 - changed select command so `return' no longer terminates the select
1030 command, so it can be used to return from an enclosing function.
1031 This is as ksh (88 and 93) does it
1033 lib/readline/vi_mode.c
1034 - fix trivial typo in declaration of vi_motion; `t' appears twice;
1035 the second instance should be `T'
1040 - don't add -static to LDFLAGS on Solaris 2.x. This means that the
1041 auxiliary programs will be built as dynamic executables, but that
1047 - fix the code that processes **(pattern) to short-circuit if the
1048 pattern is ill-formed or lacks a trailing `)' -- this fixes the
1051 Makefile.in, builtins/Makefile.in
1052 - split CCFLAGS into CCFLAGS_FOR_BUILD and CFLAGS, to aid in
1054 - build programs that use $(CC_FOR_BUILD) using $(CCFLAGS_FOR_BUILD)
1056 configure.in, config.h.in
1057 - check for getaddrinfo(3), define HAVE_GETADDRINFO if found
1060 - implemented a version of _netopen (_netopen6) that uses
1061 getaddrinfo(3) if available, use if HAVE_GETADDRINFO is defined.
1062 old _netopen is _netopen4; _netopen now calls either _netopen6
1063 or _netopen4 as appropriate
1068 - don't source ~/.bash_logout if subshell_environment is non-zero
1071 - in execute_until_or_while, handle the case where `breaking' is
1072 set in the loop test (e.g., by the job control code when a job
1073 is stopped with SIGTSTP), but the return value from the test is
1074 something that would cause the loop to break. Need to decrement
1075 `breaking' in this case
1080 - in execute_in_subshell, make sure a command of type cm_subshell
1081 inherits its `enclosing' command's CMD_IGNORE_RETURN flag
1084 - in maybe_make_export_env, don't allow restricted shells to put
1085 exported functions in the export environment
1090 - renamed old fnmatch.h
1091 - changed guard #ifdef to _STRMATCH_H
1092 - include system <fnmatch.h> if HAVE_LIBC_FNM_EXTMATCH is defined
1095 - renamed old fnmatch.c
1096 - include "strmatch.h"
1097 - if HAVE_LIBC_FNM_EXTMATCH is defined, define a dummy version of
1098 strmatch() that just calls fnmatch(3)
1101 - include "strmatch.h"
1102 - fnmatch -> strmatch
1104 Makefile.in, lib/glob/Makefile.in
1105 - fnmatch -> strmatch
1107 {bashhist,execute_cmd,pathexp,pcomplete,shell,stringlib,subst,test}.c,
1108 pathexp.h,builtins/help.def
1109 - include <glob/strmatch.h>
1110 - fnmatch -> strmatch
1113 - broke the code that parses the interpreter name from a #! line
1114 out from execute_shell_script to a new function, getinterp()
1115 - call getinterp from execute_shell_script
1116 - use return value from getinterp in error message about bad
1117 #! interpreter in shell_execve
1121 lib/readline/isearch.c
1122 - the last isearch string is now remembered in a new static variable,
1124 - if ^R^R is typed, readline now searches for the remembered isearch
1125 string, if one exists
1130 - extern declaration for completions_to_stringlist()
1134 builtins/complete.def
1135 - make compgen handle -o default option
1136 - make compgen return success only if sl->list_len is non-zero,
1137 indicating that there are items on the list
1142 - in execute_connection, force stdin to /dev/null for asynchronous
1143 commands if job control is not active, not just if the shell is
1144 running a shell script (since you can run `set -m' in a script)
1146 lib/readline/rltty.c
1147 - make sure _rl_tty_restore_signals resets `tty_sigs_disabled' on
1148 successful restoration of the terminal modes
1149 - make sure _rl_tty_disable_signals turns off IXON so that ^S and
1150 ^Q can be read by rl_quoted_insert
1155 - new check for FNM_EXTMATCH being defined in <fnmatch.h>, as Ullrich
1156 Drepper intends to do for new versions of GNU libc
1159 - new definition for HAVE_LIBC_FNM_EXTMATCH
1162 - check for fnmatch, but don't define anything in config.h
1163 - call BASH_FUNC_FNMATCH_EXTMATCH to check for FNM_EXTMATCH
1168 - remove bogus extern declaration for xmalloc()
1170 - add prototype declarations for all extern function declarations
1172 xmalloc.c,lib/readline/xmalloc.c
1173 - fix xmalloc to return a PTR_T
1174 - fix xrealloc to return a PTR_T and take a PTR_T as first argument
1176 include/ansi_stdlib.h
1177 - extern declarations for malloc and realloc have them return PTR_T
1180 - new file, with extern declarations for functions in xmalloc.c
1183 - removed extern declarations for functions in xmalloc.c
1186 Makefile.in,builtins/Makefile.in
1187 - update dependencies to include xmalloc.h
1189 parse.y,{alias,array,bashline,bracecomp,execute_cmd,findcmd,flags,general,
1190 hashcmd,locale,mailcheck,make_cmd,pathexp,pcomplete,print_cmd,stringlib,
1191 subst,unwind_prot,variables}.c
1192 builtins/{common,evalfile}.c
1193 builtins/{cd,command,enable,exec,printf,read,set}.def
1194 lib/sh/{makepath,netopen,pathphys,setlinebuf,shquote,snprintf,stringlist,
1196 lib/readline/{util,terminal,shell,readline,macro,kill,isearch,input,
1197 histfile,histexpand,display,complete,bind}.c
1198 - make sure all calls to xmalloc are cast to the right return value
1203 parse.y,{alias,bashline,bracecomp,expr,make_cmd,nojobs,print_cmd,subst}.c
1204 builtins/{fc,printf,read}.def
1205 lib/sh/snprintf.c, lib/tilde/tilde.c
1206 lib/readline/{bind,display,histexpand,isearch,macro,util,vi_mode}.c
1207 - make sure all calls to xrealloc are cast to the right return value
1209 lib/sh/{netopen,setlinebuf,shquote,snprintf}.c, lib/tilde/tilde.c
1210 - include xmalloc.h, remove extern declaration of xmalloc
1212 lib/readline/xmalloc.h
1213 - xmalloc and xrealloc should return PTR_T
1215 lib/readline/rldefs.h
1216 - don't include an extern declaration for xmalloc
1221 - fixed up commented-out stanzas for HP's unbundled C compiler on
1225 - force the subject to be changed from the default
1227 lib/readline/doc/{rluser.texinfo,readline.3}, doc/bash.1
1228 - document that transpose-words swaps the last two words on the line
1229 if point is at the end of the line
1234 - fix possible infinite recursion problem with null pattern in
1238 - new function copy_hash_table to copy a hash table using a caller-
1239 supplied function to copy item data (defaults to savestring())
1242 - new extern declaration for copy_hash_table
1244 builtins/declare.def
1245 - changes so that declare [-a] var=value assigns `value' to element 0
1246 of array variable `var' like ksh93
1247 - change so that declare [-a] var[N]=value assigns `value' to element
1248 N of array variable `var' like ksh93
1253 - new file, for miscellaneous array functions
1256 - new file, extern declarations for functions in arrayfunc.c
1259 - move convert_var_to_array, bind_array_variable,
1260 assign_array_from_string, assign_array_var_from_word_list,
1261 assign_array_var_from_string, quote_array_assignment_chars,
1262 skipsubscript, unbind_array_element, print_array_assignment
1266 - include arrayfunc.h after variables.h
1269 - remove above extern function declarations moved to arrayfunc.h
1270 - add extern declaration for var_lookup
1273 - add arrayfunc.c, arrayfunc.h in appropriate places
1274 - add arrayfunc.h to dependencies
1277 - move valid_array_reference, array_expand_index, array_variable_part,
1278 array_value_internal, array_value (now global), get_array_value,
1279 do_array_element_assignment to arrayfunc.c
1282 - extern declarations for functions above moved to arrayfunc.h
1285 - extern declarations for above functions from subst.c
1288 - string_list_dollar_star and string_list_dollar_at are now global
1290 - quote_escapes is now a global function
1293 - maybe_expand_string -> expand_string_if_necessary
1294 - expand_string_to_string -> expand_string_to_string_internal
1295 - new functions: expand_string_to_string and
1296 expand_string_unsplit_to_string, which call
1297 expand_string_to_string_internal with expand_string and
1298 expand_string_unsplit as the FUNC arguments, respectively
1301 - change array_expand_index to call expand_string_to_string instead
1302 of maybe_expand_string
1307 - in execute_env_file, call expand_string_unsplit_to_string
1310 - in check_mail, call expand_string_to_string
1313 - in assign_in_env, call expand_string_unsplit_to_string
1316 - new function, array_variable_name, splits an array reference into
1317 a name (which is returned as a new string) and subscript
1318 - change array_variable_part to just call array_variable_name and
1319 look up the string returned with find_variable
1320 - new function, find_or_make_array_variable (name, flags) which will
1321 look up an array variable and convert a string variable to an
1322 array if necessary. The FLAGS argument, if non-zero, says to
1323 check the readonly and noassign attributes and fail if either is set
1326 - make `read -a aname' honor any readonly status of `aname'
1327 - read -a now calls find_or_make_array_variable with FLAGS value 1
1329 arrayfunc.[ch], subst.c, builtins/{declare,read}.def
1330 - do_array_element_assignment -> assign_array_element
1335 - changed `for' command grammar to allow missing word list after `IN'
1336 token, like latest POSIX drafts require
1339 - in sh_mktmpname(), check for filenum == 0 and init to non-zero number
1340 in this case. it can happen on arithmetic overflow
1342 support/mkversion.sh
1343 - added `[0-9].[0-9][0-9][a-z]' as an acceptable value for a
1344 distribution to allow for intermediate versions, like 2.05a
1346 support/config.guess
1347 - removed the addition of the output of `/usr/bin/objformat' when
1348 creating the canonical name on FreeBSD machines, so the canonical
1349 name is once again `freebsd4.2' instead of `freebsdelf4.2'
1353 lib/readline/{rlstdc,history,keymaps,readline,rldefs,rlprivate,rlshell,
1354 rltypedefs,xmalloc}.h
1355 lib/readline/{bind,compat,complete,display,funmap,histexpand,histsearch,
1356 input,isearch,kill,nls,parens,readline,rltty,search,shell,signals,vi_mode
1357 - changed __P to PARAMS
1359 lib/tilde/tilde.[ch]
1360 - changed __P to PARAMS
1362 {Makefile,configure}.in
1363 - changed the version number to 2.05a
1364 - changed the release status to `alpha1'
1369 - support for building shared libraries on Darwin/MacOS X
1372 - extern declaration for strsignal() to compensate for lack of
1373 a definition in some system include files
1376 - remove casts from strsignal() calls
1378 [bash-2.05a-alpha1 frozen]
1382 [bash-2.05a-alpha1 released]
1387 - fix eval_arith_for_expr to handle the case where the expanded
1388 word list is NULL, returning 0 in this case
1391 - in print_function_def, make sure that func_redirects is assigned
1392 a value before being used
1397 - include <ctype.h> for definition of isalpha()
1400 - add prototypes for extern function declarations
1403 - include bashhist.h for extern function declarations
1406 - include <unistd.h> if HAVE_UNISTD_H is defined in config.h
1409 - include test.h for extern function declarations
1412 - change extern declaration for setlinebuf to sh_setlinebuf
1415 - include <glob/glob.h> for extern function declarations
1418 - add function prototypes for all of the sv_* functions
1421 - add extern declarations for set_shellopts() and parse_shellopts()
1422 from builtins/set.def
1425 - include "hashcmd.h" for extern declaration for flush_hashed_filenames
1426 - include "pathexp.h" for extern declaration for setup_glob_ignore
1429 - cast to `long' instead of `int' in memalign for 64-bit machines
1432 - changed printf escape sequences used to print pointers to %p
1435 - include "xmalloc.h" for extern function declaration
1438 - add function prototypes to extern declarations for getc_with_restart
1439 and ungetc_with_restart
1442 - changed type of `function' member of `struct name_and_function' to
1443 `sv_func_t', which is defined and prototyped in variables.h
1444 - map_over now takes an `sh_var_map_func_t *'
1447 - start of a set of function pointer typedefs like those in
1448 lib/readline/rltypedefs.h
1451 - second paramter to flush_hash_table is now an `sh_free_func_t *'
1454 - parameter to reset_or_restore_signal_handlers is now an
1455 `sh_resetsig_func_t *'
1457 pcomplete.h, pcomplib.c
1458 - function pointer argument to print_all_compspecs is now an
1459 `sh_csprint_func_t *'
1460 - function pointer `list_getter' element of an `ITEMLIST' is now
1461 prototyped with __P((...)) instead of using `Function *'
1464 - `j_cleanup' member of a JOB is now an `sh_vptrfunc_t *'
1467 - map_over_aliases now takes an `sh_alias_map_func_t *'
1468 - free_alias_data now takes a `PTR_T'
1471 - function pointer argument to ignore_globbed_names is now an
1472 `sh_ignore_func_t *'
1475 - function pointer argument to _ignore_completion_names is now an
1476 `sh_ignore_func_t *'
1478 pathexp.h,{bashhist,bashline.c
1479 - `item_func' member of a `struct ignorevar' is now an
1480 `sh_iv_item_func_t *'
1483 - `errfunc' is now an `sh_vmsg_func_t *'
1486 - map_over_job now takes an `sh_job_map_func_t *' as its first argument
1489 - function pointer argument to array_walk is now an
1490 `sh_ae_map_func_t *'
1493 - tilde_expansion_preexpansion_hook has type `tilde_hook_func_t *',
1494 and so the assignment in tilde_initialize doesn't need a cast
1497 - map_over_words now takes an `sh_icpfunc_t *' as its second argument
1500 - the `getter' and `ungetter' function pointer members of a
1501 BASH_INPUT are now of types `sh_cget_func_t *' and
1502 `sh_cunget_func_t *' respectively
1503 - init_yy_io now takes an `sh_cget_func_t *' as its first argument and
1504 an `sh_cunget_func_t *' as its second
1507 - init_yy_io now takes an `sh_cget_func_t *' as its first argument and
1508 an `sh_cunget_func_t *' as its second
1509 - initialize_bash_input casts bash_input.getter and bash_input.ungetter
1512 builtins/mkbuiltins.c
1513 - make the extern function definitions written to builtext.h have
1514 prototypes with __P((...))
1516 - change Function to mk_handler_func_t
1517 - fixed comment_handler to take the right number of args
1518 - prototyped all the handler functions with __P((...))
1521 - the `function' member of a struct builtin is now of type
1522 `sh_builtin_func_t *'
1524 builtins/common.[ch]
1525 - last_shell_builtin, this_shell_builtin are now of type
1526 `sh_builtin_func_t *'
1527 - find_shell_builtin, builtin_address, find_special_builtin now return
1528 `sh_builtin_func_t *'
1530 builtins/exit.def, {execute_cmd,jobs,nojobs,variables}.c, parse.y
1531 - changed all declarations of last_shell_builtin and this_shell_builtin
1534 - execute_builtin, execute_builtin_or_function,
1535 execute_subshell_builtin_or_function now take an
1536 `sh_builtin_func_t *' instead of a `Function *' for argument
1537 - changed appropriate variables from `Function *' to
1538 `sh_builtin_func_t *'
1540 builtins/{bind,builtin,enable,read,setattr}.def
1541 - replaced uses of `Function *' in variable declarations with
1542 appropriate types (sh_builtin_func_t * or rl_command_func_t *)
1545 - set_func and get_func members of binary_o_options are now of types
1546 `setopt_set_func_t *' and `setopt_get_func_t *', which are
1550 - set_func member of shopt_vars is now of type `shopt_set_func_t *'
1553 - enable_hostname_completion now returns `int' (the old value of
1554 perform_hostname_completion)
1556 [The only use of Function and VFunction now is for unwind-protects]
1561 - use const define from config.h rather than `CONST'
1562 - use PTR_T define from xmalloc.h rather than `PTR'
1563 - include xmalloc.h for PTR_T
1564 - remove PATH_MAX define, rely on value from maxpath.h
1566 {general,mailcheck}.c, lib/sh/{pathcanon,pathphys}.c
1567 - don't include maxpath.h directly; it's already included by shell.h
1570 - new `mailstat()' implementation, to stat a mailbox file for
1571 mail checking. handles maildir-style mail directories with one
1572 file per message and creates a dummy stat struct from them
1575 - add mailstat.c and mailstat.o in the appropriate places
1578 - augmented implementation with wrapper functions that pass in file
1579 and line number information from cpp. currently unused, but a
1580 placeholder for future debugging and use tracking
1582 lib/malloc/shmalloc.h
1583 - new file, extern declarations for allocation wrapper functions for
1584 use by the shell (and others, I guess)
1587 - wrapper functions for xmalloc, xfree, xrealloc (sh_ prefixed) that
1588 pass cpp line number information through to the malloc functions,
1589 if USING_BASH_MALLOC is defined
1593 lib/malloc/gmalloc.c
1594 - removed; no longer part of distribution
1596 lib/malloc/Makefile.in
1597 - removed references to gmalloc.[co]
1599 configure.in, doc/bashref.texi
1600 - removed references to `--with-glibc-malloc' configure option
1602 {configure,Makefile}.in
1603 - changed the way bash malloc is configured into the Makefile, making
1604 it more like how readline is configured. If the bash malloc is
1605 not configured in, nothing in lib/malloc will be built
1609 lib/malloc/imalloc.h
1610 - new file, some internal malloc definitions
1613 - new file, definitions for malloc statistics structs and functions
1616 - new file, malloc tracing functions (currently just print messages
1617 to stderr), code is #ifdef MALLOC_TRACE
1620 - new file, moved malloc stats code from malloc.c to here
1623 - moved some definitions to imalloc.h
1624 - moved stats code to stats.c
1625 - malloc tracing calls added to internal_{malloc,realloc,free}, all
1628 lib/malloc/Makefile.in, Makefile.in
1629 - added {imalloc,mstats}.h, {trace,stats}.c
1632 - changed decode_prompt_string to save and restore $?
1633 (last_command_exit_value) around calls to expand_prompt_string(),
1634 so command substitutions in PS1, etc. don't change $?
1637 - a couple more arrayind_t fixes from Paul Eggert
1640 - remove redundant check for wait3(2)
1643 - fixed a typo (stdin_redirs -> stdin_redirects)
1648 - remove check for \n and \r from WHITESPACE macro, since those
1649 chars are not whitespace as returned by the whitespace(c) macro
1650 - getinterp now takes a `char *' as first arg, not unsigned char *
1651 - execute_shell_script now takes a `char *' as first arg, not
1653 - fix typo in forward declaration for `initialize_subshell'
1656 - check_binary_file now takes a (char *) argument, not unsigned char *
1657 - pass unsigned char to isspace and isprint because of ISO C fuckup
1658 - bash_tilde_expand now takes a `const char *' as its argument
1660 builtins/evalfile.c, shell.c
1661 - buffer passed to check_binary_file is char, not unsigned char
1664 - fix extern declaration for yyerror()
1665 - yyerror now takes a `const char *' as first arg
1668 - fixes to printf-style functions to handle pids wider than an int
1670 lib/readline/{isearch,vi_mode}.c
1671 - fix call to rl_message in rl_display_search (remove extra arg)
1674 - fix missing argument to builtin_error in make_local_variable
1676 builtins/getopts.def
1677 - since getopts takes no options, change while loop calling
1678 internal_getopts to a simple `if' check
1681 - since printf takes no options, change while loop calling
1682 internal_getopts to a simple `if' check
1685 - remove _SET_BELL macro, expand code inline
1687 lib/readline/input.c
1688 - change _rl_input_available to use either select or FIONREAD,
1691 lib/readline/readline.c
1692 - fix rl_digit_loop to remove unreachable code at end of loop
1694 {bashhist,bashline,expr,jobs,redir,shell}.c, builtins/fc.def, lib/sh/snprintf.c
1695 - bracket unused functions with #ifdef INCLUDE_UNUSED/#endif
1696 - remove some unused variables
1699 - remove #ifdef'd code that allowed `return' to terminate a select
1703 - remove some extraneous tests from strlong()
1706 - arrayind_t is now a long, since shell arithmetic is performed as
1708 - remove second declaration of new_array_element
1711 - in mklong, xrealloc cannot return NULL, so don't check for it
1712 - remove some #if 0 code
1713 - fix core dump triggered by a format specification with more than
1715 - remove `foundmod', since its value mirrors `modchar != 0'
1716 - include "common.h" for builtin_{error,usage} declarations
1718 Makefile.in,builtins/Makefile.in
1719 - updated some dependencies due to new include files
1722 - include "execute_cmd.h" for declaration of execute_shell_function
1725 - include <stdio.h> for printf
1726 - include "builtins/common.h" for builtin_error declaration
1728 builtins/evalstring.c
1729 - include "../trap.h" for run_trap_cleanup declaration
1732 - include "common.h" instead of locally declaring builtin_error
1736 - add extern declaration for itrace()
1737 - add prototype to extern declaration of get_name_for_error
1738 - file_error now takes a `const char *' as first argument
1741 - added prototype for sh_setlinebuf declaration, bracketed with
1742 NEED_SH_SETLINEBUF_DECL so we don't need stdio.h everywhere
1743 - add extern declaration for parse.y:return_EOF()
1746 - add NEED_SH_SETLINEBUF_DECL before including shell.h
1748 lib/readline/callback.c
1749 - include <stdlib.h> or "ansi_stdlib.h" for abort declaration
1752 - remove declaration of throw_to_top_level
1755 - remove unused extern declaration for getopts_reset
1758 - include <shell.h> for legal_number, etc.
1759 - add prototype for inet_aton extern declaration
1762 - include <stdc.h> for __P declaration
1763 - add extern declaration for get_clk_tck
1765 support/mkversion.sh
1766 - changed so that extern function declarations for functions in
1767 version.c (moved from externs.h) are in the generated version.h
1773 - various `char *' version variables are now `const char *'
1776 - add prototype for same_file, bracketed with _POSIXSTAT_H
1777 #ifdef, since that's what include/posixstat.h defines
1779 builtins/common.[ch]
1780 - _evalfile, maybe_execute_file, source_file, and fc_execute_file
1781 now take a `const char *' as their first argument
1784 - removed extern declaration of yyparse; it's in externs.h
1787 - added prototypes to static forward function declarations
1788 - changed local `all_digits' variable in read_token_word () to
1789 all_digit_token to avoid clash with all_digits() function in
1792 {bashhist,copy_cmd,make_cmd,hashlib,mailcheck}.c
1793 - added prototypes for static function declarations
1796 - add extern declarations for interactive, interactive_shell,
1797 changed c files with extern declarations
1800 - changed it_init_aliases to avoid shadowing global variable
1803 bashline.c,pathexp.c,general.h
1804 - sh_ignore_func_t is now a pointer to a function taking a
1805 `const char *'; users changed
1808 - test for <strings.h>
1811 - add #undef HAVE_STRINGS_H
1814 - change like recommended in autoconf manual
1818 [a date which will live in infamy. prayers for the victims.]
1821 - don't use an absolute index into abuf in mkfmt, use
1822 sizeof(abuf) to compute last index
1825 - fix read_octal to do a better job of detecting overflow while
1826 iterating through the string
1829 - change octal-print mode to print 4 digits, like other shells
1830 - cast umask to unsigned long to avoid problems on systems where
1831 it's wider than an int (POSIX doesn't guarantee that mode_t is
1832 no wider than an int, but real-world systems use int)
1835 - mklong can never return NULL (it uses xrealloc), so the mainline
1836 doesn't need to check for NULL returns
1837 - new function, getldouble (long double *), to get long doubles
1838 - mklong now takes a `char *' as its second argument, the modifier(s)
1840 - changed use of `modchar' to handle more than a single modifier
1842 - changed to handle `long double' and `L' formats better, rather
1843 than discarding long double information
1844 - since printf now follows the POSIX.2 rules for conversion errors,
1845 we can dispense with the status returns from the get* functions
1846 - make the get* functions as similar in structure as possible,
1847 removing type casts, etc.
1849 lib/sh/timeval.c,execute_cmd.c
1850 - change some instances of `long' to `time_t', for systems where
1851 a time_t is bigger than a long
1854 - include "posixtime.h" instead of <sys/time.h>
1857 - add defines for HAVE_DECL_CONFSTR, HAVE_DECL_STRTOLD,
1858 HAVE_DECL_SBRK, HAVE_DECL_PRINTF
1859 - remove defines for SBRK_DECLARED and PRINTF_DECLARED
1860 - add _GNU_SOURCE define
1863 - add AC_CHECK_DECLS for strtold, confstr, sbrk, printf
1864 - remove call to BASH_FUNC_SBRK_DECLARED
1865 - remove call to BASH_FUNC_PRINTF
1867 xmalloc.c, lib/malloc/malloc.c
1868 - change check of SBRK_DECLARED to HAVE_SBRK_DECL
1871 - change PRINTF_DECLARED to HAVE_DECL_PRINTF
1873 builtins/evalstring.c, builtins/common.h
1874 - parse_and_execute now takes a `const char *' as its second argument
1877 - with_input_from_* functions now take a `const char *' as their
1879 - init_yy_io now takes a `const char *' as its fourth argument
1882 - parse_string_to_word_list now takes a `const char *' as its second
1885 tests/builtins.right
1886 - change output to account for extra digit in umask output
1889 - free_progcomp now takes a PTR_T argument
1891 builtins/bashgetopt.h
1893 - add prototypes to extern declarations
1896 - add prototypes to static function declarations
1898 builtins/{fc,umask,wait}.def, builtins/{bashgetopt,common}.c
1899 - include <ctype.h> for isdigit macro (referenced by `digit(x)')
1901 lib/readline/complete.c
1902 - added more static function declarations with prototypes
1907 - use `^' instead of `*' in sh_mktmpname to make filenames a bit
1910 include/stdc.h,lib/readline/rldstdc.h
1911 - add __attribute__ definition
1914 - add printf __attribute__ to declaration of builtin_error
1917 - add printf __attribute__ to declaration of programming_error,
1918 report_error, parser_error, fatal_error, sys_error, internal_error,
1921 lib/readline/readline.h
1922 - add printf __attribute__ to declaration of rl_message
1925 - add printf __attribute__ to declaration of debug_printf
1928 - add printf __attribute__ to declarations of cprintf, xprintf
1931 - new file, includes <ctype.h> and defines macros that check for
1932 safe (ascii) arguments before calling the regular ctype macros
1934 {alias,bashline,execute_cmd,expr,findcmd,general,locale,mksyntax,stringlib,subst,variables}.c
1936 builtins/{bashgetopt,common}.c
1937 builtins/{fc,printf,umask,wait}.def
1939 lib/sh/{oslib,pathcanon,pathphys,snprintf,strcasecmp,strindex,stringvec,strtod,strtol,strtrans}.c
1940 examples/loadables/{head,sleep}.c
1941 - include "chartypes.h" or <chartypes.h> instead of <ctype.h>
1943 Makefile.in,{builtins,lib/{glob,sh}}/Makefile.in
1944 - update dependencies to include chartypes.h
1947 - use `unsigned char' instead of `char' to pass to ctype.h functions
1950 - check for '0' <= host[0] <= '9' in _getaddr instead of using
1953 subst.c,lib/sh/shquote.c
1954 - change array subscripts into sh_syntaxtab from `char' to
1957 {alias,bashline,execute_cmd,expr,general,subst}.c, parse.y
1958 builtins/{fc,printf,umask,wait}.def builtins/{bashgetopt,common}.c
1959 lib/sh/{pathcanon,pathphys,snprintf,strcasecmp,strindex,strtod,strtol,strtrans}.c
1960 examples/loadables/{head,sleep}.c
1961 - change to use some of the new macros in chartypes.h
1962 - remove old local macro definitions now provided by chartypes.h
1965 - remove definition of isletter, ISOCTAL, digit, digit_value
1966 - change legal_variable_starter and legal_variable_char to use
1968 - change ABSPATH to use chartypes.h macros
1971 - change to use Paul Eggert's FUNCTION_FOR_MACRO define to define
1972 function replacements for macros in chardefs.h
1974 lib/readline/chardefs.h
1975 - added some of the same macros as in chartypes.h
1976 - change _rl_lowercase_p, _rl_uppercase_p, _rl_digit_p,
1977 _rl_to_upper, _rl_to_lower to use new IS* macros
1978 - added _rl_isident macro from vi_mode.c:isident
1980 lib/readline/{bind,complete,nls}.c
1981 - change to use some of the new macros from chardefs.h
1983 lib/readline/vi_mode.c
1984 - isident -> _rl_isident
1985 - remove local defines of macros in chardefs.h
1988 - updated to new version, modified from glibc 2.2.4 and sh-utils-2.0.
1989 This one can do strtoll and strtoull, if necessary
1994 - changed get_limit so it retrieves both hard and soft limits
1995 instead of one or the other
1996 - changed callers of get_limit
1997 - changed getmaxvm to take soft limit, hard limit as arguments
1998 - changed getmaxuprc to just take a single argument, the value
1999 - changed calls to printone() to pass soft limit or hard limit
2000 depending on `mode' instead of using old current_limit variable
2001 - moved check for out-of-range limits in ulimit_internal into the
2002 block that converts a string argument to a value of type rlim_t
2003 - changed RESOURCE_LIMITS struct to break the description into a
2004 description string and separate scale factor string
2005 - changed print_all_limits to print a single error message if
2006 get_limit fails, including limits[i].description now that the
2007 scale factor has been removed from the description string
2008 - removed DESCFMT define, since it's now used only in printone()
2009 - changed printone to print the option character associated with a
2010 particular limit if we're printing multiple limits
2011 - changed calls to builtin_error to print the description associated
2012 with a limit if setting or getting the limit fails
2013 - added support for new POSIX 1003.1-200x rlim_t values:
2014 RLIM_SAVED_CUR and RLIM_SAVED_MAX, which expand to the current
2015 soft and hard limits, whatever they are
2016 - changed printone to print `hard' or `soft' if the current limit is
2017 RLIM_SAVED_MAX or RLIM_SAVED_CUR, respectively
2018 - changed ulimit_internal to handle new `hard' and `soft' arguments
2019 - changed help text do describe the special limit arguments `hard',
2020 `soft', and `unlimited'
2022 doc/{bash.1,bashref.texi}
2023 - documented new `hard' and `soft' limit arguments to `ulimit'
2026 - find_hash_item now takes a `const char *' is its first argument
2027 - hash_string now takes a `const char *' is its first argument
2028 - remove_hash_item now takes a `const char *' as its first argument
2031 - removed cast from first argument to find_hash_item in find_compspec
2034 - absolute_program now takes a `const char *' as its argument
2035 - absolute_pathname now takes a `const char *' as its argument
2038 - glob_pattern_p now takes a `const char *' as its argument
2041 - removed cast from first argument to absolute_program in
2042 command_word_completion_function
2043 - removed cast from first argument to glob_pattern_p in
2044 attempt_shell_completion
2047 - find_absolute_program, find_user_command, find_path_file,
2048 search_for_command, user_command_matches now take a
2049 `const char *' as their first argument
2050 - file_status, executable_file, is_directory, executable_or_directory
2051 now take a `const char *' as their argument
2052 - _find_user_command_internal, find_user_command_internal,
2053 find_user_command_in_path
2055 lib/sh/makepath.c, externs.h
2056 - changed sh_makepath so it takes `const char *' for its first
2060 - find_hashed_filename now takes a `const char *' as its first arg
2061 - remove_hashed_filename now takes a `const char *' as its first arg
2064 - new_shell_variable, var_lookup, shell_var_from_env_string,
2065 find_name_in_env_array, bind_function, makunbound,
2066 bind_name_in_env_array, bind_tempenv_variable, bind_variable
2067 now take a `const char *' as their first arg
2068 - find_function, make_new_variable, find_tempenv_variable,
2069 find_variable_internal, find_variable, set_func_read_only,
2070 set_func_auto_export, all_variables_matching_prefix, assign_in_env,
2071 assignment, kill_local_variable, make_local_variable, unbind_variable
2072 now take a `const char *' as their arg
2073 - mk_env_string now takes `const char *' arguments
2076 - skipsubscript now takes a `const char *' as its argument
2080 lib/readline/complete.c
2081 - attempt to preserve case of what the user typed in
2082 compute_lcd_of_matches if we're ignoring case in completion
2084 builtins/{let,pushd}.def,{execute_cmd,expr}.c
2085 - change some 0L constants to 0 and let the compiler sort it out
2090 - alloca now takes a `size_t' argument
2093 - if we're providing an extern function declaration for alloca,
2094 use `void *' and prototype if __STDC__ is defined
2095 - if HAVE_ALLOCA_H is defined, but C_ALLOCA is defined, don't
2101 - do_assignment_internal, do_assignment, and do_assignment_no_expand
2102 now take a `const char *' as their first argument
2105 - a `sh_assign_func_t' is now a function taking a `const char *' and
2109 - free_filename_data now takes a `PTR_T' argument to agree with the
2110 typedef for `sh_free_func_t'
2113 - use TYPE_MAXIMUM define like strtol.c instead of huge constants
2118 - don't bother to compile the bulk of the body unless HAVE_SNPRINTF
2119 or HAVE_ASPRINTF is not defined
2124 - ignore `set -n' if the shell was started interactively
2126 lib/readline/readline.c
2127 - initialize readline_echoing_p to 0; let the terminal-specific code
2128 in rltty.c set it appropriately
2131 - changed internal_memalign() slightly to avoid compiler warnings about
2132 negating an unsigned variable (-alignment -> (~alignment + 1))
2136 lib/readline/readline.c
2137 - changed rl_newline to set _rl_history_saved_point appropriately
2138 for the {previous,next}_history code
2140 lib/readline/rlprivate.h
2141 - extern declaration for _rl_history_preserve_point
2144 - new bindable variable, `history-preserve-point', sets value of
2145 _rl_history_preserve_point
2150 - new file, with a map of allocated (and freed) memory for debugging
2151 multiple frees, etc. Indexed by hash on values returned by
2152 malloc(); holds size, file and line number info for last alloc or
2153 free and a couple of statistics pointers
2156 - a few cleanups; added calls for registering allocations and frees
2157 if MALLOC_REGISTER is defined
2158 - replaced MALLOC_RETURN with explicit MALLOC_NOTRACE define
2159 - reordered fields in `struct...minfo' in `union mhead' to restore
2160 eight-byte alignment
2161 - added explicit checks for underflow in free and realloc since
2162 checking mh_magic2 is not sufficient to detect everything (it's
2163 no longer the last field in the struct, and thus not the bytes
2164 immediately preceding what's returned to the user)
2165 - new function, xbotch, for printing file and line number info for
2166 the failed assertion before calling botch() (programming_error())
2169 - replaced call to BASH_C_LONG_LONG with call to
2170 AC_CHECK_TYPES([long long])
2171 - moved the C compiler tests before the tests for various
2172 system types, so we can know whether we have `long long'
2173 before testing for 64-bit types
2174 - if we have `long long', check for sizeof(long long) and save value
2177 - changed BASH_TYPE_BITS64_T to check `long long' before `long', but
2183 - made malloc and realloc both agree on the rounding for a request of
2184 size N (round up to nearest multiple of 8 after adjusting for
2185 malloc overhead); uses new ALLOCATED_BYTES macro
2186 - realloc and free now use new IN_BUCKET macro for underflow checks
2189 - fixed time_command() to use `time_t' instead of `long' to hold
2193 - clock_t_to_secs now takes a `time_t *' second argument
2194 - fixed print_clock_t to call clock_t_to_secs with right arguments
2197 - fixed print_timeval to make `minutes' a `long' and make its
2198 structure identical to print_clock_t
2201 - changed redirection_error to check for EBADF and use the file
2202 descriptor being redirected from in the error message if it
2206 - changed release status to `beta1'
2209 - added a few ASCII symbols to the posix_collsyms array
2214 - fixed typo in BASH_TYPE_BITS64_T
2217 - added check for unsigned chars with AC_C_CHAR_UNSIGNED
2220 - added PROTOTYPES and __CHAR_UNSIGNED__ #defines
2223 - if CHAR_MAX is not define by <limits.h>, provide a definition
2226 - change tescape() to mask \0 and \x escape sequences with 0xFF
2227 - change tescape() to process at most two hex digits after a `\x'
2230 - change strtrans() to mask \0 and \x escape sequences with 0xFF
2231 - change strtrans() to process at most two hex digits after a `\x'.
2232 This affects `echo -e' and $'...' processing
2235 - changed rl_translate_keyseq() to process at most two hex digits
2238 lib/readline/doc/{rluser.texinfo,readline.3}, doc/bash.1
2239 - changed documentation for key binding escape sequences to specify
2240 that at most two hex digits after \x are translated
2241 - changed documentation for key binding to specify that the result
2242 of \nnn or \xhh escapes is an eight-bit value, not just ASCII
2244 doc/{bash.1,bashref.texi}
2245 - changed documentation of $'...' to specify that at most two hex
2246 digits after \x are translated
2247 - changed `echo' documentation to specify that at most two hex
2248 digits after \x are translated
2249 - changed documentation for `echo' and $'...' to specify that the
2250 result of \nnn or \xhh escapes is an eight-bit value, not just ASCII
2255 - changed interface for xbotch to pass memory address and error code
2256 as two additional arguments
2257 - call mregister_describe_mem from xbotch to get the last allocation
2258 or free before the botch
2261 - call AC_CHECK_DECLS([strsignal])
2264 - add HAVE_DECL_STRSIGNAL
2267 - make declaration of strsignal() dependent on !HAVE_DECL_STRSIGNAL
2272 - upgraded to version 1.64
2277 - added check for `long long' to BASH_TYPE_PTRDIFF_T
2280 - replaced call to BASH_HAVE_TIOCGWINSZ with AC_HEADER_TIOCGWINSZ
2283 - replaced body of BASH_STRUCT_TERMIOS_LDISC with call to
2284 AC_CHECK_MEMBER(struct termios.c_line, ...)
2285 - replaced body of BASH_STRUCT_TERMIO_LDISC with call to
2286 AC_CHECK_MEMBER(struct termios.c_line, ...)
2288 [bash-2.05a-beta1 frozen]
2293 - fixed exponent() to not smash the trailing zeros in the fraction
2294 when using %g or %G with an `alternate form'
2295 - fixed exponent() to handle the optional precision with %g and %G
2296 correctly (number of significant digits before the exponent)
2301 - fixed strlong() to correct the values of `@' and `_' when
2302 translating base-64 constants (64#@ == 62 and 64#_ == 64), for
2303 compatibility with ksh
2306 - added a slightly more flexible fmtlong() function that takes a
2307 base argument and flags (for future use)
2308 - rewrote itos and inttostr in terms of fmtlong
2311 - new file, converts unsigned long to string. hooks for `unsigned
2312 long long' in the future. unused as yet
2316 lib/readline/rltty.c
2317 - change the SET_SPECIAL macro to avoid possible (but highly
2318 unlikely) negative array subscripts
2321 - add __attribute__ to extern declaration of itrace (even though the
2322 function isn't defined in released versions of bash)
2325 - include <strings.h> if HAVE_STRINGS_H is defined, to get any extra
2326 function declarations provided therein
2329 - fix typo in forward declaration for copy_arith_for_command
2332 - make the accumulators in _print_malloc_stats be `unsigned long'
2336 - add `__noreturn__' gcc attribute to exit_shell and jump_to_top_level
2339 lib/sh/mailstat.c, support/bashversion.c
2340 - include <bashansi.h> for some string function declarations
2342 lib/malloc/shmalloc.h
2343 - added extern declarations of functions that do malloc debugging
2345 lib/readline/{isearch,readline,vi_mode}.c
2346 - make sure we index into _rl_keymap with a non-negative index
2349 - make sure we index into sh_syntaxtab with a non-negative index
2351 lib/readline/vi_mode.c
2352 - bound the vi_mark_chars array with the number of characters between
2353 'a' and 'z' rather than using a fixed amount
2354 - don't use _rl_lowercase_p when deciding whether the char read by
2355 rl_vi_set_mark is a valid mark; just use 'a' <= char <= 'z'
2357 lib/readline/chardefs.h
2358 - conditionally include memory.h and strings.h as in general.h
2359 - replace ISASCII with IN_CTYPE_DOMAIN like other GNU software
2360 - add defines for ISPRINT(c), ISLOWER(c) and ISUPPER(c)
2361 - fix defines for _rl_lowercase_p, _rl_uppercase_p, _rl_digit_p,
2362 _rl_pure_alphabetic, ALPHABETIC, _rl_to_upper, _rl_to_lower,
2363 and _rl_isident to work on systems with signed chars
2366 - replace ISASCII with IN_CTYPE_DOMAIN like other GNU software
2368 lib/sh/{strcasecmp,strtod,strtol}.c
2369 - don't pass possibly-negative characters to tolower() or toupper()
2372 - don't bother testing for isupper in FOLD; rely on TOLOWER macro
2373 from <chartypes.h> to do it
2374 - don't use local definitions of isblank, et al.; rely on macros
2377 lib/readline/{display,readline}.c, mksyntax.c
2378 - use new ISPRINT macro instead of isprint()
2380 builtins/{kill.def,mkbuiltins.c},{error,execute_cmd,jobs,nojobs,subst}.c
2381 - don't assume that a pid_t fits into an int for printing and other
2385 - the unused put_gnu_argv_flags_into_env now takes a `long' pid
2388 configure.in, config.h.in
2389 - call AC_STRUCT_ST_BLOCKS, define HAVE_STRUCT_STAT_ST_BLOCKS if found
2390 - check for strtoull(), define HAVE_STRTOULL if found
2391 - check for uintmax_t, define to `unsigned long' if not found
2394 - don't use st_blocks member of struct stat unless
2395 HAVE_STRUCT_STAT_ST_BLOCKS is defined; otherwise use the st_nlink
2396 field to return the total number of messages in a maildir-style
2399 general.h,{alias,expr,general,subst,variables}.c
2400 builtins/{printf,read}.def
2401 lib/readline/{bind,complete,nls}.c
2402 lib/sh/{pathcanon,pathphys,shquote,snprintf,strindex,strtod,strtol,strtrans}.c
2403 - cast args to ctype macros to unsigned char for systems with signed
2404 chars; other fixes for signed chars
2406 lib/sh/{fmtullong,strtoull.c}
2407 - new files, more support for `long long'
2409 Makefile.in, lib/sh/Makefile.in
2410 - make fmtullong.o and strtoull.o part of libsh
2413 - remove local copy of fmtlong; use fmtulong instead
2414 - new functions: uitos, uinttostr work on `unsigned long'
2417 - fixes to make `unsigned long long' work (%llu)
2418 - fixes to make unsigned formats not print the sign when given
2419 an unsigned long that is greater than LONG_MAX
2422 - extern declarations for fmtulong, fmtulloing, strtoull
2423 - extern declarations for uitos, uinttostr
2428 - move header checks before function checks
2429 - move c compiler tests before header checks
2430 - check for <inttypes.h> with BASH_HEADER_INTTYPES
2431 - change type checks for intmax_t, uintmax_t to not attempt to
2433 - check for strtoimax, strtoumax, strtoll, strtol, strtoull, strtoul
2434 with BASH_CHECK_DECL (for declarations in header files) and
2435 AC_REPLACE_FUNCS (for availability and LIBOBJS substitution)
2436 - remove check for have_long_long around sizeof check for long long
2437 (since autoconf will give it a size of 0 if the type isn't found)
2440 - add a define for HAVE_INTTYPES_H
2441 - add a define for HAVE_UNSIGNED_LONG_LONG
2442 - add defines for HAVE_STRTOIMAX, HAVE_STRTOUMAX, HAVE_STRTOLL
2445 - new func, BASH_HEADER_INTTYPES, which just calls AC_CHECK_HEADERS
2446 on <inttypes.h>; separate so it can be AC_REQUIREd
2447 - AC_REQUIRE([BASH_HEADER_INTTYPES]) in BASH_CHECK_TYPE
2448 - include <inttypes.h> in BASH_CHECK_TYPE if HAVE_INTTYPES_H is
2450 - change AC_DEFINE to AC_DEFINE_UNQUOTED in BASH_CHECK_TYPE
2451 - new `long long' checking macros: BASH_TYPE_LONG_LONG and
2452 BASH_TYPE_UNSIGNED_LONG_LONG
2453 - new BASH_CHECK_DECL
2455 lib/sh/{strto[iu]max,strtoll}.c, lib/sh/Makefile.in, Makefile.in
2459 - extern declarations for strtoll, strtoimax, strtoumax
2462 - include <bashtypes.h> for size_t
2465 - new functions: getllong, getullong, getintmax, getuintmax; return
2466 long long, unsigned long long, intmax_t, uintmax_t respectively
2467 - builtin printf now handles `ll' and `j' length modifiers directly
2470 - use LIBOBJS to decide whether or not the strto* functions are
2476 - call AC_REPLACE_FUNCS(rename)
2477 - move getcwd, strpbrk, strcasecmp, strerror, strtod
2478 from AC_CHECK_FUNCS to AC_REPLACE_FUNCS
2479 - only call BASH_FUNC_GETCWD if $ac_func_getcwd == "yes"
2480 - call BASH_CHECK_SYS_SIGLIST
2481 - if we don't have vprintf but have _doprnt, call AC_LIBOBJ(vprint)
2484 - remove rename, getcwd, inet_aton, strpbrk, strcasecmp, strerror,
2485 strtod, vprint from OBJECTS; picked up from LIBOBJS
2488 - change BASH_FUNC_GETCWD to call AC_LIBOBJ(getcwd) if the libc
2489 getcwd(3) calls popen(3)
2490 - change BASH_FUNC_INET_ATON to call AC_LIBOBJ(inet_aton) if it's
2491 not found in libc or as a #define even with the special includes
2492 - BASH_KERNEL_RLIMIT_CHECK -> BASH_CHECK_KERNEL_RLIMIT
2493 - BASH_DEFAULT_MAILDIR -> BASH_SYS_DEFAULT_MAILDIR
2494 - BASH_JOB_CONTROL_MISSING -> BASH_SYS_JOB_CONTROL_MISSING
2495 - BASH_REINSTALL_SIGHANDLERS -> BASH_SYS_REINSTALL_SIGHANDLERS
2496 - BASH_SIGNAL_CHECK -> BASH_SYS_SIGNAL_VINTAGE
2497 - BASH_DUP2_CLOEXEC_CHECK -> BASH_FUNC_DUP2_CLOEXEC_CHECK
2498 - BASH_PGRP_SYNC -> BASH_SYS_PGRP_SYNC
2499 - BASH_RLIMIT_TYPE -> BASH_TYPE_RLIMIT
2500 - BASH_FUNC_PRINTF -> BASH_DECL_PRINTF
2501 - BASH_FUNC_SBRK_DECLARED -> BASH_DECL_SBRK
2502 - BASH_MISC_SPEED_T -> BASH_CHECK_SPEED_T
2503 - BASH_CHECK_SOCKLIB -> BASH_CHECK_LIB_SOCKET
2504 - new macro, BASH_CHECK_SYS_SIGLIST, encapsulates all the checks for
2505 sys_siglist, _sys_siglist, and strsignal(), sets SIGLIST_O to
2506 siglist.o if appropriate
2509 - use SIGLIST_O variable to decide whether or not we need siglist.o
2511 {execute_cmd,subst}.c
2512 - change a couple of instances of ISDIGIT to DIGIT, where we really,
2513 really only want ascii digits
2516 - don't need a declaration for atol()
2522 - new macro, BASH_FUNC_PRINTF_A_FORMAT, checks for printf support
2523 for %a, %A conversion specifiers, defines HAVE_PRINTF_A_FORMAT
2527 - call AC_CHECK_FUNCS for isascii
2528 - call BASH_FUNC_PRINTF_A_FORMAT
2531 - add a define for HAVE_ISASCII
2532 - add a define for HAVE_PRINTF_A_FORMAT
2535 - for long double output, fall back to sprintf using ldfallback()
2536 function for floating point formats
2537 - support %a, %A using dfallback() or ldfallback() if
2538 HAVE_PRINTF_A_FORMAT is defined
2539 - fix bug in vasprintf that returned wrong value in its first
2540 argument if the buffer holding the result string got reallocated
2541 - fixed PUT_CHAR macro to increment the counter even if we've
2542 exceeded the buffer size, for the return value from
2544 - fix vsnprintf_internal to not use counter < length as a loop
2545 condition, but always process the entire format string (for
2546 the return value from vsnprintf/snprintf)
2549 - support %a, %A if HAVE_PRINTF_A_FORMAT is defined
2552 - new file, with the TYPE_MAXIMUM stuff that's duplicated in several
2555 lib/sh/{fmtulong,strtol,snprintf}.c
2556 - include <typemax.h> instead of having the definitions in each file
2559 - updated dependencies for typemax.h
2564 - call AC_CHECK_FUNCS on ctype.h functions/macros that bash redefines
2568 - defines for HAVE_IS{ASCII,BLANK,GRAPH,PRINT,SPACE,XDIGIT}
2570 include/chartypes.h, lib/glob/strmatch.c, lib/readline/chardefs.h
2571 - don't redefine some is* ctype macros/functions if HAVE_ISXXX is
2572 defined (meaning that an appropriate function, but not a macro,
2576 - new function, ansic_shouldquote, returns 1 if argument string
2577 contains non-printing chars that should be quoted with $'...'
2580 - new declaration for ansic_shouldquote()
2583 - change print_var_value to ansi C quote the string if we're not in
2584 posix mode and the variable's value contains non-printing chars,
2585 to use the regular shell single quoting if the value contains
2586 shell meta-characters, and to just output the string otherwise
2589 - add `break' to `case '~':' to avoid fallthrough and extra test
2592 - note that in POSIX mode, `set' displays variable values that
2593 include nonprinting characters without quoting, unless they
2594 contain shell metacharacters
2596 builtins/printf.def, lib/sh/snprintf.c
2597 - handle `F' conversion specifier as equivalent to 'f'
2599 parse.y, {nojobs,variables}.c
2600 - a couple of cleanups for when building a minimal configuration
2603 - new function: stop_making_children(), just sets
2604 already_making_children to 0 (like stop_pipeline)
2607 - call stop_making_children from subst.c:command_substitute if
2608 JOB_CONTROL is not defined. This fixes the bug where the wrong
2609 process is waited for (and its status returned) when using
2610 command substitution in a null command in a shell function
2613 - new variable `tw' used to keep track of the total number of
2614 characters written by a single call to `printf' -- to be
2615 used for the `%n' conversion, which will be added later. It
2616 gets reset each time we reuse the format string, which is what
2622 - new function, bind_var_to_int (char *var, long val)
2625 - extern declaration for bind_var_to_int
2628 - use gai_strerror() for error messages when getaddrinfo() fails
2629 - use PF_INET if DEBUG is defined, since IPv6 doesn't work for me
2632 - pass DEBUG=${DEBUG} down to makes in some subdirectories
2634 {builtins,lib{glob,sh}}/Makefile.in
2635 - append ${DEBUG} to LOCAL_CFLAGS value, passed by top-level Makefile
2638 - added support for %n format conversion char (number of chars printed
2639 so far from current format string)
2644 - if posixly_correct is set, the default value of $MAILCHECK is 600
2645 - use legal_number instead of atoi in adjust_shell_level
2646 - treat non-numeric assignments to SECONDS as 0 in assign_seconds
2647 - new function, init_funcname_var; sets FUNCNAME as a dynamic variable
2648 if it's not set in the initial environment
2649 - new function, init_groups_var; sets GROUPS as a dynamic array
2650 variable if it's not set in the initial environment
2651 - new function, init_dirstack_var; sets DIRSTACK as a dynamic array
2652 variable if it's not set in the initial environment
2653 - new function, init_seconds_var; sets SECONDS as a dynamic
2654 variable using any valid integer value in the initial environment
2655 as the initial value, as if an assignment had been performed
2656 - call init_funcname_var, init_groups_var, init_dirstack_var,
2657 init_seconds_var from initialize_dynamic_variables
2658 - non-numeric values assigned to LINENO are treated as 0
2659 - change initialize_shell_variables to not auto-export PATH or TERM
2660 - change set_home_var to not auto-export HOME
2661 - change set_shell_var to not auto-export SHELL
2662 - broke the code that sets HOSTNAME, HOSTTYPE, MACHTYPE, OSTYPE
2663 out into a separate function, set_machine_vars; none of those
2664 variables are auto-exported
2665 - bash no longer un-exports SSH_CLIENT or SSH2_CLIENT
2668 - changed isnetconn() to check SSH_CLIENT and SSH2_CLIENT only if
2669 SSH_SOURCE_BASHRC is defined in config-top.h
2672 - added a commented-out definition for SSH_SOURCE_BASHRC
2678 - changed RELSTATUS to `rc1' (release candidate 1)
2683 - fixed an `=' vs. `==' typo in set_locale_var when parsing
2686 doc/{bash.1,bashref.texi}
2687 - document what bash does with $POSIXLY_CORRECT
2693 - some mktemp(1) changes
2695 lib/readline/readline.c
2696 - change rl_backward to check for rl_point < 0 and reset to 0 if so
2699 - don't compile in _rl_strpbrk if HAVE_STRPBRK is defined
2701 lib/readline/rlprivate.h
2702 - remove extern declaration of _rl_strpbrk
2704 lib/readline/rldefs.h
2705 - #define _rl_strpbrk as strpbrk if HAVE_STRPBRK is define, otherwise
2706 add extern declaration of _rl_strpbrk from rlprivate.h
2708 {mailcheck,shell,variables}.c
2709 - make sure to include posixtime.h to get any prototype for time(3)
2712 {array,eval,execute_cmd,mksyntax,subst}.c, parse.y
2715 - a few changes as the result of `gcc -Wall' patches from solar
2718 builtins/read.def, parse.y
2719 - change some calls to free() to xfree()
2722 - make sure unset_builtin() resets unset_array to 0 each time through
2723 the loop, because it's set (and used) depending on the current
2727 - new define, USE_VAR, to force the compiler to not put a particular
2728 variable in a register -- helpful if registers are not restored
2731 builtins/{evalfile.c,{read,wait}.def}, {eval,execute_cmd,shell,test}.c
2732 - use USE_VAR for some variables
2735 - fixed a case in expand_word_internal where a NULL pointer could
2736 have been passed to free() (though free() should ignore it)
2737 - fixed a case at the end of expand_word_internal where LIST could
2738 have been used uninitialized (it makes gcc happy, though it
2739 doesn't happen in practice)
2742 - give test_syntax_error(), beyond(), and integer_expected_error()
2743 the `__noreturn__' attribute for gcc
2746 - in clear_unwind_protect_list(), convert `flags' to `long' (via
2747 assignment to a `long' variable) before casting to `char *', in
2748 case pointers and longs are 64 bits and ints are 32 (makes no
2749 difference on 32-bit machines)
2754 - fixed cprintf to avoid gcc warning about assigning const pointer
2755 to non-const (discarding type qualifier)
2757 {make_cmd,pcomplete,test}.c,parse.y
2758 - some minor changes to shut up gcc warnings
2761 - fixed sh_mktmpfp to avoid file descriptor leaks in the case that
2762 sh_mktmpfd succeeds but fdopen fails for some reason
2763 - change sh_mktmpfd to use the same scheme for computing `filenum'
2765 - change get_sys_tmpdir to prefer P_tmpdir if P_tmpdir is defined
2766 - changed sh_mktmpname and sh_mktmpfd to avoid trying to assign to
2767 `nameroot' if `nameroot == 0' (duh)
2768 - add code to sh_mktmpfd to use mkstemp(3) if USE_MKSTEMP is defined
2769 - add code to sh_mktmpname to use mktemp(3) if USE_MKTEMP is defined
2771 support/{fixlinks,mkclone}
2772 - use mktemp if it's available for the symlink test
2773 - use $TMPDIR instead of hardcoding /tmp; default to /tmp
2774 - use a better filename for the symlink test instead of `z'
2777 - more changes inspired by a patch from solar designer
2779 lib/malloc/Makefile.in
2780 - new target `alloca', which builds libmalloc.a with alloca.o only
2781 (for systems without alloca that are configured --without-bash-malloc)
2784 - if we don't have a working alloca and are not configured to build
2785 the bash malloc library, make a malloc library containing only
2789 - slight change to RL_LIB_READLINE_VERSION to deal with minor version
2790 numbers with a letter appended (like 4.2a)
2794 doc/{bash.1,bashref.texi}
2795 - slight change to note that only interactive shells resend a SIGHUP
2796 to all jobs before exiting
2799 - declare strto[ui]max only if NEED_STRTOIMAX_DECL is defined. This
2800 keeps picky compilers from choking because intmax_t is not defined
2804 - #define NEED_STRTOIMAX_DECL before including shell.h
2809 - check in bash_tilde_expand() for an unquoted tilde-prefix; don't
2810 bother passing the string to tilde_expand unless the prefix is
2814 - fix a problem with $LINENO when executing commands supplied with
2815 the -c invocation option when ONESHOT is defined
2817 [bash-2.05a-rc1 frozen]
2820 - fix the %n conversion to require that the variable name supplied
2821 be a valid shell identifier
2824 - improve random number generator slightly by using the upper 16
2825 bits of the running random number instead of the lower 16, which
2826 are incrementally more random
2831 - if RL_INCLUDEDIR ends up being /usr/include, don't put
2832 -I$(RL_INCLUDEDIR) into CFLAGS
2836 doc/{bash.1,bashref.texi}
2837 - correct description of POSIXLY_CORRECT to note that the shell enters
2838 posix mode *before* the startup files are read if POSIXLY_CORRECT
2839 is in the initial environment
2842 - fix function prologues for init_dirstack_var and init_groups_var
2843 to agree with caller (no arguments)
2846 - fix forward function declarations for pipe_read and pipe_close
2849 - removed `inline' attribute from skip_double_quoted because it can
2850 potentially be called recursively
2853 - quick fix to bashline.c:attempt_shell_completion programmable
2854 completion code to just punt if the end of the command word found
2855 by find_cmd_end is <= the start found by find_cmd_start (the bug
2856 is probably in find_cmd_start -- fix later)
2859 - fix gen_matches_from_itemlist to return if the stringlist is null
2860 after any cleaning or initialization, before trying to use it
2861 - fix GEN_COMPS to only bother to try to append the STRINGLIST
2862 returned by gen_matches_from_itemlist to `glist' if it's non-NULL
2865 - make copy_stringlist return NULL if the STRINGLIST * passed as an
2867 - make append_stringlist call copy_stringlist only if M2 is non-NULL;
2868 otherwise just return NULL if m1 is NULL
2869 - make word_list_to_stringlist return 0 immediately if the passed
2870 LIST argument is NULL
2871 - make realloc_stringlist call alloc_stringlist if the passed
2872 STRINGLIST argument (`sl') is 0, just like realloc calls malloc
2875 - in skip_to_delim(), if we have an unclosed ${, and it's at the end
2876 of the string (string[i] == '{', string[i+1] == '{' and
2877 string[i+2] == 0, return si (i +2) immediately without bothering
2878 to call extract_dollar_brace_string or extract_delimited_string
2879 - in skip_to_delim(), if string[i] is 0 after a call to
2880 extract_dollar_brace_string or extract_delimited_string (meaning we
2881 have an unclosed ${ or other expansion, return i immediately without
2882 doing a `continue' (which will increment i past the end of string)
2883 - in split_at_delims, don't increment te by 1 if it's pointing to a
2884 delimiter. this has the effect of skipping the first delimiter
2885 char in a possibly multi-character delimiter, and ignoring
2886 single-char delimiters like `>'
2889 - use AC_CHECK_MEMBERS([struct stat.st_blocks]) instead of a call to
2890 AC_STRUCT_ST_BLOCKS to avoid configure changing LIBOBJS if the test
2894 - introduce two new variables: bash_tilde_{prefixes,suffixes}, set
2895 to the additional prefixes and suffixes bash wants to pass to the
2896 tilde expansion code (reserved for post-bash-2.05a fix)
2899 - add missing `test' in BASH_CHECK_SYS_SIGLIST
2903 lib/readline/vi_mode.c
2904 - fix rl_vi_goto_mark to explicitly check that the desired mark is
2905 between 'a' and 'z', since some locales have lowercase letters
2906 outside that range, which could cause a negative subscript
2909 - remove superfluous `#undef ISASCII'
2911 lib/sh/strto[iu]max.c
2912 - changes from Paul Eggert to work around buggy compilers and catch
2913 configuration errors at compile time
2916 - new macro, BASH_C_LONG_DOUBLE, identical to AC_C_LONG_DOUBLE but
2917 with a fix for Irix 5.3 (not called, since I'm not sure it's the
2918 right thing to do -- the C standard allows double and long double
2919 to be the same size)
2922 - only try to write the trailing NUL in vsnprintf_internal if
2923 data->length is >= 0, since if it's not, we probably don't have
2927 - changed RELSTATUS to `release'
2932 - make sure chars passed to toupper are cast to unsigned
2935 - change clear_unwind_protect_list to not require a cast from `int'
2938 lib/readline/chardefs.h
2939 - make _rl_digit_p succeed only for ascii digits, since that's what