| 4/9/2001 |
| -------- |
| [bash-2.05 released] |
| |
| 4/10 |
| ---- |
| redir.c |
| - check return value of fclose() in write_here_document() for error |
| returns; don't just rely on fwrite() failing |
| |
| support/bashbug.sh |
| - set TMPDIR to /tmp if it's null or unset |
| - use $TMPDIR in the TEMP tempfile name template |
| - fixed the call to `mktemp', if it exists, to make it more portable |
| |
| jobs.c |
| - if WCONTINUED is not defined, define it to 0 and add a define for |
| WIFCONTINUED(wstatus) which expands to 0 |
| - add WCONTINUED to the flags passed to waitpid(2) in waitchld() |
| - don't increment children_exited if waitpid's status is WIFCONTINUED, |
| since we don't want to call a SIGCHLD trap handler in this case |
| - in waitchld(), we set child->running to 1 if WIFCONTINUED(status) |
| is non-zero |
| - make sure pretty_print_job doesn't check for the core dump bit if |
| the process has been continued; it's only valid if the job is dead |
| - in set_job_status_and_cleanup, set the job to JRUNNING if job_state |
| is non-zero and the job was previously marked as JSTOPPED |
| |
| configure.in |
| - add -DBROKEN_DIRENT_D_INO to interix LOCAL_CFLAGS |
| |
| lib/glob/glob.c |
| - if BROKEN_DIRENT_D_INO is defined, define REAL_DIR_ENTRY to 1 |
| |
| jobs.c |
| - in kill_pid, we only need to block and unblock SIGCHLD if the |
| `group' argument is non-zero, since otherwise we just call `kill' |
| on the pid argument |
| |
| version.c |
| - update copyright date to 2001 |
| |
| bashline.c |
| - prog_complete_return needs to take a `const char *' as its first |
| argument |
| - history_completion_generator needs to take a `const char *' as |
| its first argument, and `text' needs to be a `const char *' |
| |
| 4/11 |
| ---- |
| redir.c |
| - fixed a weird typo in redir_special_open, case RF_DEVFD, added |
| call to all_digits before call to legal_number |
| - fixed do_redirection_internal to call legal_number instead of atol(3) |
| when translating r_duplicating_{in,out}put_word, so it handles |
| overflow better |
| - produce an error message in redirection_error for out-of-range |
| file descriptors |
| - change allocation strategy in redirection_error so we don't have to |
| malloc scratch memory if redirection_expand() fails |
| |
| jobs.h |
| - added defines for `running' member of a struct process |
| |
| general.c |
| - fix legal_number to return 0 when strtol(3) reports overflow or |
| underflow |
| |
| parse.y |
| - changed read_token_word to call legal_number instead of atoi(3) |
| |
| input.c |
| - return -1/EBADF from close_buffered_fd if fd is < 0 |
| |
| command.h |
| - fixed bogus comment about IS_DESCRIPTOR in description of the |
| REDIRECTEE struct |
| |
| print_cmd.c |
| - change cprintf's 'd' modifier code to display negative numbers as |
| an out-of-range value. We can do this only because the only use |
| of %d is to output file descriptor numbers in redirections |
| |
| support/mksignames.c |
| - need to include config.h to get a possible value for |
| UNUSABLE_RT_SIGNALS |
| |
| 4/16 |
| ---- |
| lib/readline/doc/rluser.texinfo |
| - corrected a small error in one description of M-DEL |
| |
| 4/17 |
| ---- |
| stringlib.c |
| - need to initialize `ind' before calls to RESIZE_MALLOCED_BUFFER |
| in strcreplace() |
| |
| support/bashversion.c |
| - new file, prints bash version information |
| |
| Makefile.in |
| - rules for building bashversion and linking it to version.o |
| |
| 4/24 |
| ---- |
| conftypes.h |
| - new file with HOSTTYPE, OSTYPE, MACHTYPE, etc. defines from |
| variables.h |
| |
| variables.h, version.c |
| - include conftypes.h |
| |
| patchlevel.h |
| - new file, contains define for PATCHLEVEL. Doing away with the old |
| scheme of having the information in configure.in |
| |
| version.c |
| - include patchlevel.h |
| |
| Makefile.in |
| - run bashversion -p to find patch level rather than have configure |
| substitute in a value |
| - pass -S ${top_srcdir} to support/mkversion.sh |
| |
| support/mkversion.sh |
| - don't put PATCHLEVEL define into version.h, but accept and ignore |
| a -p option |
| - take a new -S srcdir option |
| - find the patch level by parsing it out of patchlevel.h |
| |
| configure.in |
| - hard-code BASHVERS assignment instead of reading it from a file |
| - remove BASHPATCH; don't substitute it |
| |
| _distribution,_patchlevel |
| - removed |
| |
| 4/26 |
| ---- |
| shell.c |
| - call init_noninteractive() in open_shell_script if forced_interactive |
| is non-zero (the shell was started with -i) and fd_is_tty is 0 |
| (the script file is a real file, not something like /dev/stdin), |
| since it wasn't done earlier |
| |
| builtins/printf.def |
| - change for POSIX.2 compliance when conversion errors are encountered |
| when processing %d, %u, and floating point conversion operators |
| (print a warning message, return the value accumulated at the time |
| of the error -- which is always 0 -- and exit with a non-zero status) |
| |
| command.h |
| - added CMD_COMMAND_BUILTIN for use by the `command' builtin and the |
| code in execute_cmd.c |
| |
| builtins/command.def |
| - add CMD_COMMAND_BUILTIN to the created command's flags |
| |
| 5/1 |
| --- |
| configure.in |
| - add call to AC_C_CONST to test `const' compiler behavior |
| - add call to AC_C_INLINE to test `inline' compiler behavior |
| - add call to AC_C_STRINGIZE to test cpp #x stringizing operator |
| |
| config.h.in |
| - add `#undef const' for configure to substitute |
| - add `#undef inline' for configure to substitute |
| - add `#undef HAVE_STRINGIZE' for configure to substitute |
| |
| include/stdc.h |
| - remove code that defines or undefines `const' and `inline' |
| - change the __STRING macro to be defined depending on the value |
| of HAVE_STRINGIZE |
| |
| lib/malloc/malloc.c |
| - change the __STRING macro to be defined depending on the value |
| of HAVE_STRINGIZE |
| |
| lib/readline/{readline,rlprivate}.h |
| - moved rl_get_termcap to readline.h, making it a public function |
| |
| lib/readline/readline.h |
| - new #define, RL_READLINE_VERSION, hex-encoded library version |
| number, currently set to 0x0402 |
| - new public int variable, rl_readline_version |
| |
| lib/readline/readline.c |
| - #define RL_READLINE_VERSION if it is not already defined (which it |
| should be in readline.h) |
| - initialize rl_readline_version to RL_READLINE_VERSION |
| |
| lib/readline/doc/rltech.texinfo |
| - documented rl_get_termcap |
| - documented rl_readline_version |
| |
| jobs.c |
| - job_exit_status should return an int, not a WAIT (undetected |
| before because on most POSIX-like systems a WAIT is really an int) |
| |
| builtins/evalfile.c |
| - added FEVAL_REGFILE (file must be a regular file) to accepted |
| _evalfile flags |
| - fc_execute_file() adds FEVAL_REGFILE to _evalfile flags. This |
| means that startup files and files read with `.' no longer need |
| to be regular files |
| |
| 5/2 |
| --- |
| |
| lib/termcap/Makefile.in |
| - fix target for installed termcap library (normally unused) |
| |
| lib/tilde/Makefile.in |
| - fix install target to install in $(libdir) (normally unused) |
| |
| Makefile.in |
| - don't make $(man3dir) since there's nothing installed there |
| |
| Makefile.in,doc/Makefile.in |
| - change `man1ext' to `.1', `man3ext' to `.3' |
| - change appropriate install targets to use new values of man[13]ext |
| - use `test ...' instead of `[...]' |
| - add support for DESTDIR root installation prefix, for package |
| building (installdirs, install, install-strip, uninstall targets) |
| |
| builtins/common.c |
| - new function int get_exitstat(WORD_LIST *list) returns an eight-bit |
| exit status value for use in return, exit, logout builtins |
| |
| builtins/common.h |
| - extern declaration for get_exitstat() |
| |
| builtins/{exit,return}.def |
| - call get_exitstat where appropriate |
| |
| builtins/printf.def |
| - add support for "'" flag character as posix 1003.2-200x d6 says |
| - fix core dump when user-supplied field width or precision is 0 |
| - fix to printstr() to handle zero-length precision with `%b' format |
| specifier (printf '%.0b-%.0s\n' foo bar) |
| - fix to printstr() to treat a negative field width as a positive |
| field width with left-justification |
| - fix to mklong to avoid static buffers, which can always be overrun |
| by someone sufficiently motivated |
| |
| bashline.c |
| - change var in add_host_name to type `size_t' for passing to xrealloc |
| |
| 5/3 |
| --- |
| execute_cmd.c |
| - change restore_signal_mask to accept a sigset_t *, since a sigset_t |
| may not fit into a pointer, change call |
| |
| unwind_prot.c |
| - use a union UWP in restore_variable when restoring a variable whose |
| size is the same as sizeof(int), the reverse of the method used to |
| store it in unwind_protect_int |
| |
| builtins/printf.def |
| - use a #define LENMODS containing the length modifiers instead of |
| testing against each possible modifier character, save any mod |
| character found |
| - add support for ISO C99 length specifiers `j', `t', and `z' |
| - if `L' modifier is supplied with a floating point conversion char, |
| pass a `long double' to printf if HAVE_LONG_DOUBLE is defined |
| |
| configure.in,config.h.in |
| - call AC_C_LONG_DOUBLE to check for `long double'; define |
| HAVE_LONG_DOUBLE if supported |
| |
| bashline.c |
| - fix an inadvertantly-unclosed comment in attempt_shell_completion |
| - make set_saved_history return a value |
| - make dynamic_complete_history return a useful value |
| |
| {make_cmd,execute_cmd,shell,subst,trap,variables,input,unwind_prot,test, |
| pcomplete}.c |
| - removed some declared-but-unused variables |
| |
| builtins/{cd,enable,fc,set,setattr,type,umask,printf,complete}.def |
| - removed some declared-but-unused variables |
| |
| lib/sh/{zread,netopen}.c |
| - removed some declared-but-unused variables |
| |
| execute_cmd.c |
| - in execute_arith_command, use a long variable to hold the result |
| of evalexp(), since that's what it returns |
| |
| builtins/evalstring.c |
| - make cat_file return -1 on a read or write error |
| |
| lib/sh/stringlib.c |
| - make merge_stringlists() return the right value |
| |
| 5/7 |
| --- |
| pcomplete.c |
| - remove typo that caused empty declaration (;;) |
| |
| parse.y |
| - fix yyerror() to accept a single string argument; fix callers |
| |
| trap.c |
| - cast pointer to long instead of int when printing message with |
| internal_warning() in run_pending_traps() |
| |
| subst.c |
| - fix process_substitute to handle stdin being closed |
| |
| test.c |
| - change `while' to `if' in and() and or(), since the loop isn't |
| actually performed -- there's an unconditional `return' in the |
| loop body |
| - check for integer overflow of arguments to `-t' |
| |
| lib/sh/netopen.c |
| - change _getserv() to reject negative port/service numbers |
| |
| expr.c |
| - fix strlong() to not convert the base specification from long to |
| int before checking for overflow, since truncation on machines |
| where sizeof(int) != sizeof(long) may mask errors |
| |
| builtins/{jobs,kill,wait}.def |
| - use legal_number instead of atoi when converting strings to pid_t; |
| check for numeric overflow |
| |
| input.c |
| - fix for cygwin in b_fill_buffer -- off-by-one error when checking |
| buffer for \r\n termination |
| |
| general.h |
| - new #define INT_STRLEN_BOUND(t), computes max length of string |
| representing integer value of type T, possibly including a sign |
| character |
| - include <limits.h> if it's present |
| |
| {execute_cmd,findcmd,test}.c |
| - don't include <limits.h>, since general.h does it now |
| |
| {execute_cmd,lib/sh/itos,pcomplete,print_cmd,subst,variables}.c |
| - use INT_STRLEN_BOUND instead of static array sizes when converting |
| various strings to integer values |
| |
| shell.h |
| - struct fd_bitmap now uses an `int' size, since it's bounded by |
| the number of file descriptors, which must fit into an `int' |
| |
| execute_cmd.c |
| - FD_BITMAP_DEFAULT_SIZE is now 32, not 32L |
| - new_fd_bitmap takes an `int' size parameter, not a `long' |
| |
| execute_cmd.h |
| - change prototype for new_fd_bitmap() |
| |
| test.c |
| - fix test_stat to check for overflow when parsing the integer file |
| descriptor number; return ENOENT instead of EBADF for files that |
| are not open |
| |
| hashlib.c |
| - don't discard the upper 32 bits of the random value, if present |
| |
| lib/readline/shell.c |
| - use the same INT_STRLEN_BOUND mechanism to decide how much space to |
| allocated in sh_set_lines_and_columns |
| |
| 5/8 |
| --- |
| aclocal.m4 |
| - add check for libtinfo (termcap-specific portion of ncurses-5.2) to |
| BASH_CHECK_LIB_TERMCAP |
| - new macro, RL_LIB_READLINE_VERSION, checks version of installed |
| readline library and (optionally) writes version #defines to |
| config.h. Bash doesn't use the version defines |
| |
| configure.in |
| - call RL_LIB_READLINE_VERSION instead of support/rlvers.sh |
| |
| execute_cmd.c |
| - fix execute_shell_script and the WHITECHAR and STRINGCHAR macros |
| to check array bounds before indexing into the sample string |
| |
| unwind_prot.[ch] |
| - import new versions submitted by Paul Eggert <eggert@twinsun.com> |
| with a couple of changes for backwards compatibility, so the rest |
| of the source doesn't need to be changed yet |
| |
| jobs.c |
| - use unwind_protect_var on last_made_pid in run_sigchld_trap |
| |
| builtins/bind.def |
| - use unwind_protect_var on rl_outstream |
| |
| general.c |
| - rework print_rlimtype to use INT_STRLEN_BOUND and handle the |
| most negative number correctly |
| |
| expr.c |
| - `tokval' should have been a `long', since all arithmetic is done |
| as longs |
| |
| builtins/history.def |
| - consolidate tests for valid history position in one block to |
| avoid duplicate code and strings |
| |
| builtins/ulimit.def |
| - fix check for overflow when setting limit to work when int is 32 |
| bits and RLIMTYPE is 64 |
| |
| lib/sh/tmpfile.c |
| - don't truncate the result of time(3) to int; just use time_t, |
| since it's being assigned to an `unsigned long' |
| |
| mailcheck.c |
| - use legal_number instead of atoi in time_to_check_mail() to catch |
| more numeric errors; consolidate error checking in one block |
| - last_time_mail_checked should be a time_t |
| |
| 5/9 |
| --- |
| builtins/set.def |
| - recognize `set [-+]o nolog' if HISTORY is defined |
| |
| bashline.c |
| - new variable `dont_save_function_defs', set by `set -o nolog'; |
| currently ignored |
| |
| command.h |
| - the `dest' member of a REDIRECTEE is now an `int' |
| |
| parse.y,redir.c |
| - changed uses of `redir.test' (where redir is a REDIRECTEE) since |
| it's now an int |
| |
| lib/readline/rlstdc.h |
| - don't mess around with `const', rely on configure to supply a |
| proper definition if the compiler doesn't support it |
| |
| lib/tilde/tilde.h |
| - include <config.h> if HAVE_CONFIG_H is defined |
| - don't mess around with `const', rely on configure |
| |
| builtins/shopt.def |
| - new read-only `shopt' option, login_shell, non-zero if shell is a |
| login shell (as decided by shell.c) |
| - new function set_login_shell(), sets shopt private value of |
| login_shell |
| |
| builtins/common.h |
| - new extern declaration for set_login_shell |
| |
| shell.c |
| - call set_login_shell after setting value of login_shell (in |
| main() and set_shell_name()) |
| |
| parse.y |
| - added new `\A' prompt string escape sequence: time in 24-hour |
| HH:MM format |
| |
| configure.in, config.h.in |
| - check for <grp.h>, define HAVE_GRP_H if found |
| |
| builtins/complete.def |
| - add new `-A group/-g' option to complete group names |
| |
| pcomplete.h |
| - new define for CA_GROUP, used with group name completion |
| |
| pcomplete.c |
| - add code to support CA_GROUP group name completion |
| |
| bashline.c |
| - new function, bash_groupname_completion_function(), supports |
| programmable completion of group names |
| |
| bashline.h |
| - extern declaration for bash_groupname_completion_function |
| |
| lib/readline/bind.c |
| - new inputrc variable, `match-hidden-files', controls completion |
| matching files beginning with a `.' (on Unix) |
| |
| lib/readline/complete.c |
| - new variable, _rl_match_hidden_files, mirrors `match-hidden-files' |
| inputrc variable |
| |
| lib/readline/rlprivate.h |
| - extern declaration for _rl_match_hidden_files |
| |
| builtins/hash.def |
| - new `-t' option to list hash values for each filename argument |
| |
| builtins/read.def |
| - alarm(3) takes an `unsigned int' argument, not int |
| - check for arithmetic overflow with -t and -n options |
| |
| input.c |
| - check for read error before doing \r\n translation on cygnus in |
| b_fill_buffer |
| - reset bp->b_used to 0 instead of leaving it at -1 on read error |
| in b_fill_buffer |
| |
| builtins/shopt.def |
| - new functions, shopt_setopt(name, mode) and |
| shopt_listopt(name, mode) to give the rest of the shell an easy |
| interface |
| |
| builtins/common.h |
| - extern declarations for shopt_setopt and shopt_listopt |
| |
| shell.c |
| - new invocation options -O and +O, to list or set/unset shopt |
| options like +o/-o sets and unsets `set -o' options |
| |
| doc/{bash.1,bashref.texi} |
| - document `set -o nolog' |
| - document `login_shell' shopt option |
| - document new `\A' prompt string escape sequence |
| - document new `-t' option to `hash' |
| - document new `[+-]O' invocation option |
| |
| doc/bashref.texi |
| - add text to `Invoking Bash' section defining a login shell; text |
| taken from man page |
| |
| doc/bash.1, lib/readline/doc/rluser.texinfo |
| - documented new complete/compgen `-A group/-g' option |
| |
| lib/readline/doc/{rluser.texinfo,readline.3}, doc/bash.1 |
| - documented new `match-hidden-files' inputrc variable |
| |
| 5/10 |
| ---- |
| configure.in |
| - fix AC_CHECK_PROG(ar, ...) |
| - add AC_CHECK_TYPE for ssize_t |
| |
| config.h.in |
| - new #undef for ssize_t |
| |
| lib/sh/zread.c |
| - int -> ssize_t fixes to mirror modern declarations of read and write |
| - the `off' variable in zsyncfd should be an off_t since it computes |
| a file offset |
| - the local buffer `lbuf' is now char, since it's not nice to pass |
| unsigned char * to read(2), and the values from it are assigned to |
| a char anyway |
| - lind and lused are now size_t, since they index into a buffer |
| - set lused to 0 on read error |
| |
| lib/sh/zwrite.c |
| - change second argument to type `char *', since ISO C says you have |
| to pass a `char *' to `write' |
| |
| externs.h |
| - fix extern declarations of zread, zread1, zreadc, and zwrite |
| - prototype extern declaration of qsort_string_compare |
| - add extern declaration for history_delimiting_chars() from parse.y |
| |
| input.h |
| - b_used and b_inputp members ofr struct BSTREAM are now size_t |
| |
| builtins/evalstring.c |
| - the number of chars read with zread in cat_file should be assigned |
| to a variable of type ssize_t |
| |
| input.c |
| - the number of chars read with zread in b_fill_buffer should be |
| assigned to a variable of type ssize_t |
| - `localbuf' is now type char[], since POSIX says you shouldn't pass |
| unsigned char * to read(2) |
| - in getc_with_restart(), use a variable of type unsigned char to |
| get a value from the local buffer and return it |
| - in ungetc_with_restart, explicitly return the character arg passed |
| to avoid relying on localbuf being unsigned char |
| |
| subst.c |
| - the number of chars read with zread in read_comsub should be |
| assigned to a variable of type ssize_t |
| |
| mksyntax.c |
| - instead of casting to unsigned char * in addcstr, use a variable |
| of type unsigned char and let the compiler do the work |
| |
| parse.y |
| - instead of casting to unsigned char * in yy_readline_get, use a |
| variable of type unsigned char and let the compiler do the work |
| - ditto for yy_string_get and shell_getc (cast to unsigned char) |
| |
| subst.c |
| - instead of casting to unsigned char when assigning to ifscmap in |
| expand_word_internal, use a variable of type unsigned char and |
| let the compiler do the work |
| |
| lib/sh/strtrans.c |
| - instead of casting to unsigned char in ansic_quote, use a variable |
| of type unsigned char and let the compiler do the work |
| |
| builtins/evalstring.c |
| - remove extern declarations for zwrite and run_trap_cleanup; they're |
| in externs.h |
| - prototype cat_file forward declaration |
| |
| Makefile.in |
| - remove -I$(includedir) from INCLUDES and SUBDIR_INCLUDES |
| |
| aclocal.m4 |
| - change RL_LIB_READLINE_VERSION to set RL_PREFIX, RL_LIBDIR, |
| and RL_INCLUDEDIR to what it used to test the installed readline |
| library version for use by the caller |
| - change RL_LIB_READLINE_VERSION to not compute ac_cv_rl_prefix if |
| the caller has already assigned it a value |
| - rename _rl_prefix -> ac_cv_rl_prefix, _rl_libdir -> ac_cv_rl_libdir, |
| _rl_includedir -> ac_cv_rl_includedir |
| |
| configure.in |
| - change testing of whether to use the value of |
| $opt_with_installed_readline to be != no, to allow the user to |
| specify a prefix where the installed readline library may be found |
| - if --with-installed-readline=PREFIX is supplied, set ac_cv_rl_prefix |
| to PREFIX before calling RL_LIB_READLINE_VERSION |
| - if --with-installed-readline[=PREFIX] is supplied, don't set |
| RL_LIBDIR and RL_INCLUDEDIR; let RL_LIB_READLINE_VERSION take care |
| of it, set RL_INCLUDE=-I${RL_INCLUDEDIR} |
| - if --with-installed-readline[=PREFIX] is supplied, and we're |
| linking with the history library, assign $RL_LIBDIR to HIST_LIBDIR |
| so we use the same version of the installed readline and history |
| libraries |
| |
| Makefile.in, builtins/Makefile.in |
| - have configure substitute RL_INCLUDEDIR, set RL_INCLUDEDIR variable |
| |
| doc/bashref.texi |
| - updated description of --with-installed-readline configure option |
| |
| general.c |
| - moved QSFUNC typedef here from builtins/common.c |
| |
| {alias,bashline,variables,lib/sh/stringvec}.c |
| - cast fourth argument to qsort to (QSFUNC *) |
| |
| alias.c |
| - prototype forward declaration of qsort_alias_compare |
| |
| bashhist.c |
| - include <glob/glob.h> for extern declaration of glob_pattern_p |
| - remove extern declaration of history_delimiting_chars; it's now |
| in externs.h |
| - prototype forward declarations of histignore_item_func, |
| maybe_add_history, and bash_add_history |
| |
| bracecomp.c |
| - remove extern declaration for sh_backslash_quote; it's in externs.h |
| |
| braces.c |
| - remove extern declaration for extract_command_subst; it's in subst.h |
| - prototype forward declarations for expand_amble, array_concat, and |
| brace_gobbler |
| |
| error.c |
| - prototype extern declaration of give_terminal_to, fix bad call |
| |
| {execute_cmd,expr,findcmd,jobs,mailcheck,nojobs,pcomplete,print_cmd,redir, |
| shell}.c |
| - prototype all static forward function declarations |
| |
| pcomplete.c |
| - changed some function parameters to `const char *' to avoid discarding |
| const qualifier |
| |
| make_cmd.c |
| - make_bare_word, make_word_flags, and make_word now take a |
| `const char *' string argument |
| |
| make_cmd.h |
| - changed extern declarations for make_bare_word and make_word |
| |
| print_cmd.c |
| - cprintf now takes a `const char *' as its first argument, like |
| xprintf and printf |
| - the conditional define for xprintf should have been HAVE_VPRINTF, |
| not HAVE_VFPRINTF |
| |
| shell.c |
| - in isnetconn(), the return value of sizeof() is size_t |
| |
| aclocal.m4 |
| - add inclusion of stddef.h if STDC_HEADERS is defined to 1 in |
| BASH_CHECK_TYPE |
| |
| configure.in |
| - add a call to BASH_CHECK_TYPE for socklen_t (type of third argument |
| to getpeername(2)) |
| |
| 5/11 |
| ---- |
| lib/readline/bind.c |
| - make `useq' a char array to pass to rl_macro_bind in |
| rl_parse_and_bind |
| |
| lib/readline/{{bind,isearch}.c,rlprivate.h} |
| - _rl_isearch_terminators is now a char *, not unsigned char * |
| |
| {subst,variables,lib/sh/tmpfile}.c |
| - dollar_dollar_pid is now a `pid_t' instead of `int' |
| |
| variables.c |
| - sbrand() now takes an `unsigned long' to set the seed value |
| - changed last_random_value to type int, since it's always between |
| 0 and 32767 |
| - use strtoul to convert the value in assign_random instead of atoi |
| - take out casts in any arguments to sbrand() |
| - take out cast to int in call to inttostr in set_ppid() |
| |
| subst.c |
| - don't cast last_asynchronous_pid when passing to itos() |
| |
| {sig,subst}.c |
| - prototype all static forward function declarations |
| |
| 5/14 |
| ---- |
| {test,trap,variables}.c |
| - prototype all static forward function declarations |
| |
| variables.c |
| - free_variable_hash_data() now takes a PTR_T, a `generic pointer' |
| |
| builtins/{alias,bind,break,cd,complete,declare,enable,exit,fc,fg_bg,help, |
| history,jobs,pushd,read,set,trap,umask, |
| - prototype all static forward function declarations |
| |
| builtins/read.def |
| - reset_eol_delim now takes a `char *' arg, since that's what the |
| unwind_protect functions pass it, and it ignores its arguments |
| anyway |
| |
| lib/readline/{histsearch,input,kill,rltty,search,vi_mode}.c |
| - prototype all static forward function declarations |
| |
| lib/tilde/tilde.c |
| - prototype all static forward function declarations |
| - tilde_find_prefix, tilde_find_suffix, isolate_tilde_prefix, and |
| glue_prefix_and_suffix now take `const char *' arguments where |
| appropriate |
| |
| configure.in,config.h.in |
| - check for vsnprintf, define HAVE_VSNPRINTF if found |
| |
| lib/readline/display.c |
| - use vsnprintf() in rl_message if it's available; if we don't, at |
| least set the last character in msg_buf to 0 to avoid overrun -- |
| we really can't do anything about overflow at this point. if it's |
| available, this fixes buffer overflow problems in rl_message |
| |
| 5/15 |
| ---- |
| lib/readline/histexpand.c |
| - in get_history_word_specifier, allow any character to terminate |
| a `:first-' modifier, not just `:' and null. This is what csh |
| appears to do. This allows things like `!:0- xyzzy' to replace the |
| last argument with xyzzy |
| |
| 5/18 |
| ---- |
| configure.in, config.h.in |
| - check for <stdint.h>, define HAVE_STDINT_H if found |
| - check for intmax_t in <stdint.h>, define intmax_t as long if not |
| found |
| |
| 5/21 |
| ---- |
| builtins/kill.def |
| - change to use strerror() for error message when kill(2) fails |
| |
| aclocal.m4 |
| - new macro, BASH_C_LONG_LONG, check for `long long' |
| |
| configure.in, config.h.in |
| - call BASH_C_LONG_LONG, define HAVE_LONG_LONG if found |
| |
| lib/sh/snprintf.c |
| - new file, with implementations of snprintf, vsnprintf, asprintf, |
| and vasprintf, derived from inetutils version |
| |
| Makefile.in, lib/sh/Makefile.in |
| - add snprintf.c/snprintf.o |
| |
| configure.in, config.h.in |
| - add checks for snprintf, asprintf, vasprintf, with appropriate |
| cpp defines |
| |
| lib/readline/{rldefs,xmalloc}.h, lib/readline/xmalloc.c |
| - xmalloc and xrealloc now take `size_t' arguments, like their bash |
| counterparts |
| |
| externs.h,lib/sh/itos.c |
| - inttostr and itos now take `long' arguments |
| - inttostr takes a `size_t' argument for the buffer size |
| |
| {expr,lib/malloc/malloc,variables,general}.c |
| - fixed calls to itos() by removing casts, etc. |
| |
| subst.[ch] |
| - get_dollar_var_value now takes a long, not an int |
| - sub_append_number now takes a long, not an int |
| |
| subst.c |
| - in parameter_brace_expand_word, use a long and legal_number to |
| translate ${N}, to avoid overflow |
| - in parameter_brace_expand_length, use a long and legal_number to |
| translate ${#N}, to avoid overflow |
| - in do_array_element_assignment, array_expand_index, |
| array_value_internal, use arrayind_t instead of int |
| - let verify_substring_values take long * arguments for the return |
| value of evalexp() |
| - pass long * arguments to verify_substring_values in |
| parameter_brace_substring |
| - parameter_brace_expand_length now returns `long' |
| - parameter_brace_expand now uses a long variable for the return |
| value of parameter_brace_expand_length |
| - param_expand now uses a long variable for the return value from |
| evalexp |
| - array_length reference now returns an `arrayind_t', since it can |
| return the num_elements member of an array, which is of type |
| arrayind_t |
| |
| subst.h |
| - array_expand_index now returns an `arrayind_t' |
| |
| array.[ch] |
| - array_subrange now takes arrayind_t arguments, not `int' |
| - dup_array_subrange now uses arrayind_t local variable to do |
| array indexing |
| - use long to print array indices in print_element |
| |
| variables.c |
| - null_array_assign, assign_dirstack, bind_array_variable |
| now take arrayind_t arguments as array indices |
| - assign_array_var_from_word_list, assign_array_var_from_string, |
| unbind_array_element now use arrayind_t local variables for |
| array indexing |
| |
| variables.h |
| - change extern declaration of bind_array_variable |
| |
| builtins/common.[ch] |
| - get_numeric_arg now returns a `long', since it usually returns |
| the value of legal_number() |
| |
| builtins/{shift,break}.def |
| - use long variables for the return value of get_numeric_arg |
| |
| builtins/history.def |
| - convert string argument to int only if it's in range |
| |
| builtins/pushd.def |
| - set_dirstack_element and get_dirstack_element now take `long' |
| index arguments |
| - get_dirstack_index now takes a `long' index argument, since it's |
| passed the converted value from legal_number |
| |
| lib/sh/timeval.c |
| - in print_timeval, don't assume that the number of minutes fits into |
| an int, since it's just seconds/60. |
| |
| lib/sh/clock.c |
| - ditto for print_clock_t |
| |
| 5/22 |
| ---- |
| shell.c |
| - since the -O option settings may possibly be overridden by the |
| normal shell initialization or posix initialization, save the |
| invocation options on an alist (with add_shopt_to_alist) and |
| process them after basic initialization (with run_shopt_alist) |
| |
| 5/23 |
| ---- |
| trap.h |
| - new define, BASH_NSIG, all system signals plus special bash traps |
| |
| trap.c, builtins/trap.def |
| - use BASH_NSIG for array bounds and loops where appropriate |
| |
| trap.c |
| - change decode_signal to disallow numeric signal numbers above |
| NSIG -- this means you can only reference special traps like |
| DEBUG by name |
| - new SPECIAL_TRAP(s) macro to test whether s is one of the special |
| bash traps (currently DEBUG and EXIT) |
| - change reset_or_restore_signal_handlers so command substitution |
| doesn't inherit the debug trap (like ksh93), and child processes |
| don't have to rely on initialize_traps being run to get rid of |
| any debug trap |
| |
| support/mksignames.c |
| - add extra "ERR" signal name, value NSIG+1, allocate space for it |
| and write it out in signal_names[] |
| |
| trap.h |
| - new define: ERROR_TRAP == NSIG+1, change BASH_NSIG to NSIG+2 |
| - extern declarations for set_error_trap, run_error_trap |
| - new define: TRAP_STRING(s), expands to trap_list[s] if signal S |
| is trapped and not ignored, NULL otherwise |
| |
| trap.c |
| - add ERROR_TRAP to SPECIAL_TRAPS define |
| - initialize ERROR_TRAP stuff in initialize_traps |
| - new function: set_error_trap(command), sets the ERR trap string |
| - new function: run_error_trap(command), runs the ERR trap string |
| - set trap string for ERROR_TRAP to NULL in free_trap_strings |
| - change reset_or_restore_signal_handlers so child processes don't |
| inherit the ERR trap |
| - add case to call run_error_trap in maybe_call_trap_handler |
| |
| execute_cmd.c |
| - in execute_command_internal, keep track of ERR trap and call it if |
| necessary |
| - use TRAP_STRING to get the value of debug and error traps |
| - in execute_function, arrange things so the ERR trap is not inherited |
| by shell functions, and is saved and restored like the DEBUG trap |
| |
| doc/{bash.1,bashref.texi} |
| - documented new ERR trap |
| |
| tests/{trap.{tests,right},trap2.sub,trap2a.sub} |
| - added ERR trap tests |
| |
| subst.c |
| - on machines without /dev/fd, change the named pipe fifo list to a |
| list of structs containing pathname and proc information |
| - change unlink_fifo_list to kill the proc in the fifo list with |
| signal 0 and not remove the fifo if the proc is still alive. This |
| should fix the problem on those backward systems without /dev/fd |
| where fifos were removed when a job using process substitution was |
| suspended |
| |
| 5/24 |
| ---- |
| examples/loadables/getconf.h |
| - new file, with basic defines needed to make getconf work minimally |
| on POSIX systems without the necessary definitions |
| |
| examples/loadables/getconf.c |
| - replacement functions for confstr, sysconf, pathconf for systems |
| that lack them, providing a minimal posix interface |
| - heavily augmented getconf, now supports all POSIX.1-200x, |
| POSIX.2-200x, Solaris 7, AIX 4.2 getconf variables |
| |
| 5/29 |
| ---- |
| builtins/setattr.def |
| - make `readonly', `export', and `declare' print `invisible' variables |
| as just a command and variable name, without a value, when listing |
| all variables (as POSIX.2-200x d6 requires) |
| |
| 5/30 |
| ---- |
| |
| configure.in |
| - upgraded to autoconf-2.50 on main development machine, so require |
| autoconf-2.50 in preparation for using some if its new features |
| - call AC_C_PROTOTYPES |
| - remove call to AC_EXEEXT, which now does the wrong thing |
| - changed AC_INIT to new flavor |
| - added call to AC_CONFIG_SRCDIR |
| - AC_CONFIG_HEADER -> AC_CONFIG_HEADERS |
| - AC_RETSIGTYPE -> AC_TYPE_SIGNAL |
| |
| configure.in, aclocal.m4, config.h.in |
| - removed call to BASH_LARGE_FILE_SUPPORT, use AC_SYS_LARGEFILE |
| standard support, with new macros _FILE_OFFSET_BITS and |
| _LARGE_FILES |
| - removed definition of BASH_LARGE_FILE_SUPPORT |
| |
| doc/bashref.texi |
| - document new `--enable-largefile' configure option |
| |
| lib/readline/readline.c |
| - change rl_set_prompt to call rl_expand_prompt unconditionally, so |
| local_prompt and local_prompt_prefix get set correctly |
| |
| 6/6 |
| --- |
| lib/readline/complete.c |
| - don't append `/' or ` ' to a match when completing a symlink that |
| resolves to a directory, unless the match doesn't add anything |
| to the word. This means that a tab will complete the word up to |
| the full name, but not add anything, and a subsequent tab will add |
| a slash. Change to append_to_match; callers changed |
| |
| hashlib.c |
| - new function, hash_table_nentries (table), returns the number of |
| items in TABLE |
| |
| hashlib.h |
| - extern declaration for hash_table_nentries |
| |
| configure.in |
| - configure without bash malloc on openbsd; they claim it needs |
| eight-bit alignment (which the bash malloc provides, but...) |
| |
| 7/2 |
| --- |
| stringlib.c |
| - only call RESIZE_MALLOCED_BUFFER from strsub() if the replacement |
| string length is > 0, avoid possible hangs if replacement is null |
| |
| subst.c |
| - don't include input.h; no longer needed |
| |
| configure.in |
| - remove calls to AC_SYS_RESTARTABLE_SYSCALLS and |
| BASH_SYS_RESTARTABLE_SYSCALLS; the results are no longer used |
| |
| config.h.in |
| - remove define for HAVE_RESTARTABLE_SYSCALLS |
| |
| aclocal.m4 |
| - removed definition of BASH_SYS_RESTARTABLE_SYSCALLS; no longer used |
| |
| execute_cmd.c |
| - changed select command so `return' no longer terminates the select |
| command, so it can be used to return from an enclosing function. |
| This is as ksh (88 and 93) does it |
| |
| lib/readline/vi_mode.c |
| - fix trivial typo in declaration of vi_motion; `t' appears twice; |
| the second instance should be `T' |
| |
| 7/3 |
| --- |
| configure.in |
| - don't add -static to LDFLAGS on Solaris 2.x. This means that the |
| auxiliary programs will be built as dynamic executables, but that |
| should do no harm |
| |
| 7/5 |
| --- |
| lib/glob/fnmatch.c |
| - fix the code that processes **(pattern) to short-circuit if the |
| pattern is ill-formed or lacks a trailing `)' -- this fixes the |
| segfault on **(/*) |
| |
| Makefile.in, builtins/Makefile.in |
| - split CCFLAGS into CCFLAGS_FOR_BUILD and CFLAGS, to aid in |
| cross-compilation |
| - build programs that use $(CC_FOR_BUILD) using $(CCFLAGS_FOR_BUILD) |
| |
| configure.in, config.h.in |
| - check for getaddrinfo(3), define HAVE_GETADDRINFO if found |
| |
| lib/sh/netopen.c |
| - implemented a version of _netopen (_netopen6) that uses |
| getaddrinfo(3) if available, use if HAVE_GETADDRINFO is defined. |
| old _netopen is _netopen4; _netopen now calls either _netopen6 |
| or _netopen4 as appropriate |
| |
| 7/9 |
| --- |
| builtins/exit.def |
| - don't source ~/.bash_logout if subshell_environment is non-zero |
| |
| execute_command.c |
| - in execute_until_or_while, handle the case where `breaking' is |
| set in the loop test (e.g., by the job control code when a job |
| is stopped with SIGTSTP), but the return value from the test is |
| something that would cause the loop to break. Need to decrement |
| `breaking' in this case |
| |
| 7/10 |
| ---- |
| execute_cmd.c |
| - in execute_in_subshell, make sure a command of type cm_subshell |
| inherits its `enclosing' command's CMD_IGNORE_RETURN flag |
| |
| variables.c |
| - in maybe_make_export_env, don't allow restricted shells to put |
| exported functions in the export environment |
| |
| 7/11 |
| ---- |
| lib/glob/strmatch.h |
| - renamed old fnmatch.h |
| - changed guard #ifdef to _STRMATCH_H |
| - include system <fnmatch.h> if HAVE_LIBC_FNM_EXTMATCH is defined |
| |
| lib/glob/strmatch.c |
| - renamed old fnmatch.c |
| - include "strmatch.h" |
| - if HAVE_LIBC_FNM_EXTMATCH is defined, define a dummy version of |
| strmatch() that just calls fnmatch(3) |
| |
| lib/glob/glob.c |
| - include "strmatch.h" |
| - fnmatch -> strmatch |
| |
| Makefile.in, lib/glob/Makefile.in |
| - fnmatch -> strmatch |
| |
| {bashhist,execute_cmd,pathexp,pcomplete,shell,stringlib,subst,test}.c, |
| pathexp.h,builtins/help.def |
| - include <glob/strmatch.h> |
| - fnmatch -> strmatch |
| |
| execute_cmd.c |
| - broke the code that parses the interpreter name from a #! line |
| out from execute_shell_script to a new function, getinterp() |
| - call getinterp from execute_shell_script |
| - use return value from getinterp in error message about bad |
| #! interpreter in shell_execve |
| |
| 7/12 |
| ---- |
| lib/readline/isearch.c |
| - the last isearch string is now remembered in a new static variable, |
| last_isearch_string |
| - if ^R^R is typed, readline now searches for the remembered isearch |
| string, if one exists |
| |
| 7/24 |
| ---- |
| pcomplete.h |
| - extern declaration for completions_to_stringlist() |
| |
| 7/25 |
| ---- |
| builtins/complete.def |
| - make compgen handle -o default option |
| - make compgen return success only if sl->list_len is non-zero, |
| indicating that there are items on the list |
| |
| 7/31 |
| ---- |
| execute_cmd.c |
| - in execute_connection, force stdin to /dev/null for asynchronous |
| commands if job control is not active, not just if the shell is |
| running a shell script (since you can run `set -m' in a script) |
| |
| lib/readline/rltty.c |
| - make sure _rl_tty_restore_signals resets `tty_sigs_disabled' on |
| successful restoration of the terminal modes |
| - make sure _rl_tty_disable_signals turns off IXON so that ^S and |
| ^Q can be read by rl_quoted_insert |
| |
| 8/1 |
| --- |
| aclocal.m4 |
| - new check for FNM_EXTMATCH being defined in <fnmatch.h>, as Ullrich |
| Drepper intends to do for new versions of GNU libc |
| |
| config.h.in |
| - new definition for HAVE_LIBC_FNM_EXTMATCH |
| |
| configure.in |
| - check for fnmatch, but don't define anything in config.h |
| - call BASH_FUNC_FNMATCH_EXTMATCH to check for FNM_EXTMATCH |
| |
| 8/2 |
| --- |
| alias.h |
| - remove bogus extern declaration for xmalloc() |
| - include "stdc.h" |
| - add prototype declarations for all extern function declarations |
| |
| xmalloc.c,lib/readline/xmalloc.c |
| - fix xmalloc to return a PTR_T |
| - fix xrealloc to return a PTR_T and take a PTR_T as first argument |
| |
| include/ansi_stdlib.h |
| - extern declarations for malloc and realloc have them return PTR_T |
| |
| xmalloc.h |
| - new file, with extern declarations for functions in xmalloc.c |
| |
| general.h |
| - removed extern declarations for functions in xmalloc.c |
| - include xmalloc.h |
| |
| Makefile.in,builtins/Makefile.in |
| - update dependencies to include xmalloc.h |
| |
| parse.y,{alias,array,bashline,bracecomp,execute_cmd,findcmd,flags,general, |
| hashcmd,locale,mailcheck,make_cmd,pathexp,pcomplete,print_cmd,stringlib, |
| subst,unwind_prot,variables}.c |
| builtins/{common,evalfile}.c |
| builtins/{cd,command,enable,exec,printf,read,set}.def |
| lib/sh/{makepath,netopen,pathphys,setlinebuf,shquote,snprintf,stringlist, |
| strtrans,tmpfile}.c |
| lib/readline/{util,terminal,shell,readline,macro,kill,isearch,input, |
| histfile,histexpand,display,complete,bind}.c |
| - make sure all calls to xmalloc are cast to the right return value |
| |
| siglist.c |
| - include xmalloc.h |
| |
| parse.y,{alias,bashline,bracecomp,expr,make_cmd,nojobs,print_cmd,subst}.c |
| builtins/{fc,printf,read}.def |
| lib/sh/snprintf.c, lib/tilde/tilde.c |
| lib/readline/{bind,display,histexpand,isearch,macro,util,vi_mode}.c |
| - make sure all calls to xrealloc are cast to the right return value |
| |
| lib/sh/{netopen,setlinebuf,shquote,snprintf}.c, lib/tilde/tilde.c |
| - include xmalloc.h, remove extern declaration of xmalloc |
| |
| lib/readline/xmalloc.h |
| - xmalloc and xrealloc should return PTR_T |
| |
| lib/readline/rldefs.h |
| - don't include an extern declaration for xmalloc |
| |
| 8/7 |
| --- |
| support/shobj-conf |
| - fixed up commented-out stanzas for HP's unbundled C compiler on |
| HP/UX |
| |
| support/bashbug.sh |
| - force the subject to be changed from the default |
| |
| lib/readline/doc/{rluser.texinfo,readline.3}, doc/bash.1 |
| - document that transpose-words swaps the last two words on the line |
| if point is at the end of the line |
| |
| 8/9 |
| --- |
| stringlib.c |
| - fix possible infinite recursion problem with null pattern in |
| strsub() |
| |
| hashlib.c |
| - new function copy_hash_table to copy a hash table using a caller- |
| supplied function to copy item data (defaults to savestring()) |
| |
| hashlib.h |
| - new extern declaration for copy_hash_table |
| |
| builtins/declare.def |
| - changes so that declare [-a] var=value assigns `value' to element 0 |
| of array variable `var' like ksh93 |
| - change so that declare [-a] var[N]=value assigns `value' to element |
| N of array variable `var' like ksh93 |
| |
| 8/13 |
| ---- |
| arrayfunc.c |
| - new file, for miscellaneous array functions |
| |
| arrayfunc.h |
| - new file, extern declarations for functions in arrayfunc.c |
| |
| variables.c |
| - move convert_var_to_array, bind_array_variable, |
| assign_array_from_string, assign_array_var_from_word_list, |
| assign_array_var_from_string, quote_array_assignment_chars, |
| skipsubscript, unbind_array_element, print_array_assignment |
| to arrayfunc.c |
| |
| shell.h |
| - include arrayfunc.h after variables.h |
| |
| variables.h |
| - remove above extern function declarations moved to arrayfunc.h |
| - add extern declaration for var_lookup |
| |
| Makefile.in |
| - add arrayfunc.c, arrayfunc.h in appropriate places |
| - add arrayfunc.h to dependencies |
| |
| subst.c |
| - move valid_array_reference, array_expand_index, array_variable_part, |
| array_value_internal, array_value (now global), get_array_value, |
| do_array_element_assignment to arrayfunc.c |
| |
| subst.h |
| - extern declarations for functions above moved to arrayfunc.h |
| |
| arrayfunc.h |
| - extern declarations for above functions from subst.c |
| |
| subst.[ch] |
| - string_list_dollar_star and string_list_dollar_at are now global |
| functions |
| - quote_escapes is now a global function |
| |
| subst.c |
| - maybe_expand_string -> expand_string_if_necessary |
| - expand_string_to_string -> expand_string_to_string_internal |
| - new functions: expand_string_to_string and |
| expand_string_unsplit_to_string, which call |
| expand_string_to_string_internal with expand_string and |
| expand_string_unsplit as the FUNC arguments, respectively |
| |
| arrayfunc.c |
| - change array_expand_index to call expand_string_to_string instead |
| of maybe_expand_string |
| |
| 8/14 |
| ---- |
| shell.c |
| - in execute_env_file, call expand_string_unsplit_to_string |
| |
| mailcheck.c |
| - in check_mail, call expand_string_to_string |
| |
| variables.c |
| - in assign_in_env, call expand_string_unsplit_to_string |
| |
| arrayfunc.c |
| - new function, array_variable_name, splits an array reference into |
| a name (which is returned as a new string) and subscript |
| - change array_variable_part to just call array_variable_name and |
| look up the string returned with find_variable |
| - new function, find_or_make_array_variable (name, flags) which will |
| look up an array variable and convert a string variable to an |
| array if necessary. The FLAGS argument, if non-zero, says to |
| check the readonly and noassign attributes and fail if either is set |
| |
| builtins/read.def |
| - make `read -a aname' honor any readonly status of `aname' |
| - read -a now calls find_or_make_array_variable with FLAGS value 1 |
| |
| arrayfunc.[ch], subst.c, builtins/{declare,read}.def |
| - do_array_element_assignment -> assign_array_element |
| |
| 8/20 |
| ---- |
| parse.y |
| - changed `for' command grammar to allow missing word list after `IN' |
| token, like latest POSIX drafts require |
| |
| lib/sh/tmpfile.c |
| - in sh_mktmpname(), check for filenum == 0 and init to non-zero number |
| in this case. it can happen on arithmetic overflow |
| |
| support/mkversion.sh |
| - added `[0-9].[0-9][0-9][a-z]' as an acceptable value for a |
| distribution to allow for intermediate versions, like 2.05a |
| |
| support/config.guess |
| - removed the addition of the output of `/usr/bin/objformat' when |
| creating the canonical name on FreeBSD machines, so the canonical |
| name is once again `freebsd4.2' instead of `freebsdelf4.2' |
| |
| 8/22 |
| ---- |
| lib/readline/{rlstdc,history,keymaps,readline,rldefs,rlprivate,rlshell, |
| rltypedefs,xmalloc}.h |
| lib/readline/{bind,compat,complete,display,funmap,histexpand,histsearch, |
| input,isearch,kill,nls,parens,readline,rltty,search,shell,signals,vi_mode |
| - changed __P to PARAMS |
| |
| lib/tilde/tilde.[ch] |
| - changed __P to PARAMS |
| |
| {Makefile,configure}.in |
| - changed the version number to 2.05a |
| - changed the release status to `alpha1' |
| |
| 8/23 |
| ---- |
| support/shobj-conf |
| - support for building shared libraries on Darwin/MacOS X |
| |
| siglist.h |
| - extern declaration for strsignal() to compensate for lack of |
| a definition in some system include files |
| |
| jobs.c |
| - remove casts from strsignal() calls |
| |
| [bash-2.05a-alpha1 frozen] |
| |
| 8/27 |
| ---- |
| [bash-2.05a-alpha1 released] |
| |
| 8/27 |
| ---- |
| execute_cmd.c |
| - fix eval_arith_for_expr to handle the case where the expanded |
| word list is NULL, returning 0 in this case |
| |
| print_cmd.c |
| - in print_function_def, make sure that func_redirects is assigned |
| a value before being used |
| |
| 8/28 |
| ---- |
| alias.c |
| - include <ctype.h> for definition of isalpha() |
| |
| bashhist.h |
| - add prototypes for extern function declarations |
| |
| flags.c |
| - include bashhist.h for extern function declarations |
| |
| mksyntax.c |
| - include <unistd.h> if HAVE_UNISTD_H is defined in config.h |
| |
| parse.y |
| - include test.h for extern function declarations |
| |
| externs.h |
| - change extern declaration for setlinebuf to sh_setlinebuf |
| |
| stringlib.c |
| - include <glob/glob.h> for extern function declarations |
| |
| variables.h |
| - add function prototypes for all of the sv_* functions |
| |
| builtins/common.h |
| - add extern declarations for set_shellopts() and parse_shellopts() |
| from builtins/set.def |
| |
| variables.c |
| - include "hashcmd.h" for extern declaration for flush_hashed_filenames |
| - include "pathexp.h" for extern declaration for setup_glob_ignore |
| |
| lib/malloc/malloc.c |
| - cast to `long' instead of `int' in memalign for 64-bit machines |
| |
| {pcomplete,trap}.c |
| - changed printf escape sequences used to print pointers to %p |
| |
| lib/readline/undo.c |
| - include "xmalloc.h" for extern function declaration |
| |
| input.h |
| - add function prototypes to extern declarations for getc_with_restart |
| and ungetc_with_restart |
| |
| variables.[ch] |
| - changed type of `function' member of `struct name_and_function' to |
| `sv_func_t', which is defined and prototyped in variables.h |
| - map_over now takes an `sh_var_map_func_t *' |
| |
| shell.h |
| - start of a set of function pointer typedefs like those in |
| lib/readline/rltypedefs.h |
| |
| hashlib.[ch] |
| - second paramter to flush_hash_table is now an `sh_free_func_t *' |
| |
| trap.c |
| - parameter to reset_or_restore_signal_handlers is now an |
| `sh_resetsig_func_t *' |
| |
| pcomplete.h, pcomplib.c |
| - function pointer argument to print_all_compspecs is now an |
| `sh_csprint_func_t *' |
| - function pointer `list_getter' element of an `ITEMLIST' is now |
| prototyped with __P((...)) instead of using `Function *' |
| |
| jobs.[ch] |
| - `j_cleanup' member of a JOB is now an `sh_vptrfunc_t *' |
| |
| alias.c |
| - map_over_aliases now takes an `sh_alias_map_func_t *' |
| - free_alias_data now takes a `PTR_T' |
| |
| pathexp.c |
| - function pointer argument to ignore_globbed_names is now an |
| `sh_ignore_func_t *' |
| |
| bashline.c |
| - function pointer argument to _ignore_completion_names is now an |
| `sh_ignore_func_t *' |
| |
| pathexp.h,{bashhist,bashline.c |
| - `item_func' member of a `struct ignorevar' is now an |
| `sh_iv_item_func_t *' |
| |
| builtins/evalfile.c |
| - `errfunc' is now an `sh_vmsg_func_t *' |
| |
| jobs.c |
| - map_over_job now takes an `sh_job_map_func_t *' as its first argument |
| |
| array.[ch] |
| - function pointer argument to array_walk is now an |
| `sh_ae_map_func_t *' |
| |
| general.c |
| - tilde_expansion_preexpansion_hook has type `tilde_hook_func_t *', |
| and so the assignment in tilde_initialize doesn't need a cast |
| |
| list.c |
| - map_over_words now takes an `sh_icpfunc_t *' as its second argument |
| |
| input.h |
| - the `getter' and `ungetter' function pointer members of a |
| BASH_INPUT are now of types `sh_cget_func_t *' and |
| `sh_cunget_func_t *' respectively |
| - init_yy_io now takes an `sh_cget_func_t *' as its first argument and |
| an `sh_cunget_func_t *' as its second |
| |
| parse.y |
| - init_yy_io now takes an `sh_cget_func_t *' as its first argument and |
| an `sh_cunget_func_t *' as its second |
| - initialize_bash_input casts bash_input.getter and bash_input.ungetter |
| appropriately |
| |
| builtins/mkbuiltins.c |
| - make the extern function definitions written to builtext.h have |
| prototypes with __P((...)) |
| - include "stdc.h" |
| - change Function to mk_handler_func_t |
| - fixed comment_handler to take the right number of args |
| - prototyped all the handler functions with __P((...)) |
| |
| builtins.h |
| - the `function' member of a struct builtin is now of type |
| `sh_builtin_func_t *' |
| |
| builtins/common.[ch] |
| - last_shell_builtin, this_shell_builtin are now of type |
| `sh_builtin_func_t *' |
| - find_shell_builtin, builtin_address, find_special_builtin now return |
| `sh_builtin_func_t *' |
| |
| builtins/exit.def, {execute_cmd,jobs,nojobs,variables}.c, parse.y |
| - changed all declarations of last_shell_builtin and this_shell_builtin |
| |
| execute_cmd.c |
| - execute_builtin, execute_builtin_or_function, |
| execute_subshell_builtin_or_function now take an |
| `sh_builtin_func_t *' instead of a `Function *' for argument |
| - changed appropriate variables from `Function *' to |
| `sh_builtin_func_t *' |
| |
| builtins/{bind,builtin,enable,read,setattr}.def |
| - replaced uses of `Function *' in variable declarations with |
| appropriate types (sh_builtin_func_t * or rl_command_func_t *) |
| |
| builtins/set.def |
| - set_func and get_func members of binary_o_options are now of types |
| `setopt_set_func_t *' and `setopt_get_func_t *', which are |
| prototyped |
| |
| builtins/shopt.def |
| - set_func member of shopt_vars is now of type `shopt_set_func_t *' |
| |
| bashline.c |
| - enable_hostname_completion now returns `int' (the old value of |
| perform_hostname_completion) |
| |
| [The only use of Function and VFunction now is for unwind-protects] |
| |
| 9/4 |
| --- |
| lib/sh/getcwd.c |
| - use const define from config.h rather than `CONST' |
| - use PTR_T define from xmalloc.h rather than `PTR' |
| - include xmalloc.h for PTR_T |
| - remove PATH_MAX define, rely on value from maxpath.h |
| |
| {general,mailcheck}.c, lib/sh/{pathcanon,pathphys}.c |
| - don't include maxpath.h directly; it's already included by shell.h |
| |
| lib/sh/mailstat.c |
| - new `mailstat()' implementation, to stat a mailbox file for |
| mail checking. handles maildir-style mail directories with one |
| file per message and creates a dummy stat struct from them |
| |
| lib/sh/Makefile.in |
| - add mailstat.c and mailstat.o in the appropriate places |
| |
| lib/malloc/malloc.c |
| - augmented implementation with wrapper functions that pass in file |
| and line number information from cpp. currently unused, but a |
| placeholder for future debugging and use tracking |
| |
| lib/malloc/shmalloc.h |
| - new file, extern declarations for allocation wrapper functions for |
| use by the shell (and others, I guess) |
| |
| xmalloc.[ch] |
| - wrapper functions for xmalloc, xfree, xrealloc (sh_ prefixed) that |
| pass cpp line number information through to the malloc functions, |
| if USING_BASH_MALLOC is defined |
| |
| 9/5 |
| --- |
| lib/malloc/gmalloc.c |
| - removed; no longer part of distribution |
| |
| lib/malloc/Makefile.in |
| - removed references to gmalloc.[co] |
| |
| configure.in, doc/bashref.texi |
| - removed references to `--with-glibc-malloc' configure option |
| |
| {configure,Makefile}.in |
| - changed the way bash malloc is configured into the Makefile, making |
| it more like how readline is configured. If the bash malloc is |
| not configured in, nothing in lib/malloc will be built |
| |
| 9/6 |
| --- |
| lib/malloc/imalloc.h |
| - new file, some internal malloc definitions |
| |
| lib/malloc/mstats.h |
| - new file, definitions for malloc statistics structs and functions |
| |
| lib/malloc/trace.c |
| - new file, malloc tracing functions (currently just print messages |
| to stderr), code is #ifdef MALLOC_TRACE |
| |
| lib/malloc/stats.c |
| - new file, moved malloc stats code from malloc.c to here |
| |
| lib/malloc/malloc.c |
| - moved some definitions to imalloc.h |
| - moved stats code to stats.c |
| - malloc tracing calls added to internal_{malloc,realloc,free}, all |
| #ifdef MALLOC_TRACE |
| |
| lib/malloc/Makefile.in, Makefile.in |
| - added {imalloc,mstats}.h, {trace,stats}.c |
| |
| parse.y |
| - changed decode_prompt_string to save and restore $? |
| (last_command_exit_value) around calls to expand_prompt_string(), |
| so command substitutions in PS1, etc. don't change $? |
| |
| {array,subst}.c |
| - a couple more arrayind_t fixes from Paul Eggert |
| |
| configure.in |
| - remove redundant check for wait3(2) |
| |
| redir.h |
| - fixed a typo (stdin_redirs -> stdin_redirects) |
| |
| 9/10 |
| ---- |
| execute_cmd.c |
| - remove check for \n and \r from WHITESPACE macro, since those |
| chars are not whitespace as returned by the whitespace(c) macro |
| - getinterp now takes a `char *' as first arg, not unsigned char * |
| - execute_shell_script now takes a `char *' as first arg, not |
| unsigned char * |
| - fix typo in forward declaration for `initialize_subshell' |
| |
| general.[ch] |
| - check_binary_file now takes a (char *) argument, not unsigned char * |
| - pass unsigned char to isspace and isprint because of ISO C fuckup |
| - bash_tilde_expand now takes a `const char *' as its argument |
| |
| builtins/evalfile.c, shell.c |
| - buffer passed to check_binary_file is char, not unsigned char |
| |
| parse.y |
| - fix extern declaration for yyerror() |
| - yyerror now takes a `const char *' as first arg |
| |
| {error,jobs}.c |
| - fixes to printf-style functions to handle pids wider than an int |
| |
| lib/readline/{isearch,vi_mode}.c |
| - fix call to rl_message in rl_display_search (remove extra arg) |
| |
| variables.c |
| - fix missing argument to builtin_error in make_local_variable |
| |
| builtins/getopts.def |
| - since getopts takes no options, change while loop calling |
| internal_getopts to a simple `if' check |
| |
| builtins/printf.def |
| - since printf takes no options, change while loop calling |
| internal_getopts to a simple `if' check |
| |
| lib/readline/bind.c |
| - remove _SET_BELL macro, expand code inline |
| |
| lib/readline/input.c |
| - change _rl_input_available to use either select or FIONREAD, |
| but not both |
| |
| lib/readline/readline.c |
| - fix rl_digit_loop to remove unreachable code at end of loop |
| |
| {bashhist,bashline,expr,jobs,redir,shell}.c, builtins/fc.def, lib/sh/snprintf.c |
| - bracket unused functions with #ifdef INCLUDE_UNUSED/#endif |
| - remove some unused variables |
| |
| execute_cmd.c |
| - remove #ifdef'd code that allowed `return' to terminate a select |
| statement |
| |
| expr.c |
| - remove some extraneous tests from strlong() |
| |
| array.h |
| - arrayind_t is now a long, since shell arithmetic is performed as |
| longs |
| - remove second declaration of new_array_element |
| |
| builtins/printf.def |
| - in mklong, xrealloc cannot return NULL, so don't check for it |
| - remove some #if 0 code |
| - fix core dump triggered by a format specification with more than |
| one `*' |
| - remove `foundmod', since its value mirrors `modchar != 0' |
| - include "common.h" for builtin_{error,usage} declarations |
| |
| Makefile.in,builtins/Makefile.in |
| - updated some dependencies due to new include files |
| |
| pcomplete.c |
| - include "execute_cmd.h" for declaration of execute_shell_function |
| |
| arrayfunc.c |
| - include <stdio.h> for printf |
| - include "builtins/common.h" for builtin_error declaration |
| |
| builtins/evalstring.c |
| - include "../trap.h" for run_trap_cleanup declaration |
| |
| builtins/help.def |
| - include "common.h" instead of locally declaring builtin_error |
| and builtin_usage |
| |
| error.h |
| - add extern declaration for itrace() |
| - add prototype to extern declaration of get_name_for_error |
| - file_error now takes a `const char *' as first argument |
| |
| externs.h |
| - added prototype for sh_setlinebuf declaration, bracketed with |
| NEED_SH_SETLINEBUF_DECL so we don't need stdio.h everywhere |
| - add extern declaration for parse.y:return_EOF() |
| |
| shell.c |
| - add NEED_SH_SETLINEBUF_DECL before including shell.h |
| |
| lib/readline/callback.c |
| - include <stdlib.h> or "ansi_stdlib.h" for abort declaration |
| |
| quit.h |
| - remove declaration of throw_to_top_level |
| |
| subst.c |
| - remove unused extern declaration for getopts_reset |
| |
| lib/sh/netopen.c |
| - include <shell.h> for legal_number, etc. |
| - add prototype for inet_aton extern declaration |
| |
| lib/sh/clock.c |
| - include <stdc.h> for __P declaration |
| - add extern declaration for get_clk_tck |
| |
| support/mkversion.sh |
| - changed so that extern function declarations for functions in |
| version.c (moved from externs.h) are in the generated version.h |
| |
| shell.h |
| - include version.h |
| |
| version.c |
| - various `char *' version variables are now `const char *' |
| |
| general.h |
| - add prototype for same_file, bracketed with _POSIXSTAT_H |
| #ifdef, since that's what include/posixstat.h defines |
| |
| builtins/common.[ch] |
| - _evalfile, maybe_execute_file, source_file, and fc_execute_file |
| now take a `const char *' as their first argument |
| |
| eval.c |
| - removed extern declaration of yyparse; it's in externs.h |
| |
| parse.y |
| - added prototypes to static forward function declarations |
| - changed local `all_digits' variable in read_token_word () to |
| all_digit_token to avoid clash with all_digits() function in |
| general.c |
| |
| {bashhist,copy_cmd,make_cmd,hashlib,mailcheck}.c |
| - added prototypes for static function declarations |
| |
| shell.h |
| - add extern declarations for interactive, interactive_shell, |
| changed c files with extern declarations |
| |
| pcomplete.c |
| - changed it_init_aliases to avoid shadowing global variable |
| `aliases' |
| |
| bashline.c,pathexp.c,general.h |
| - sh_ignore_func_t is now a pointer to a function taking a |
| `const char *'; users changed |
| |
| configure.in |
| - test for <strings.h> |
| |
| config.h.in |
| - add #undef HAVE_STRINGS_H |
| |
| bashansi.h |
| - change like recommended in autoconf manual |
| |
| 9/11 |
| ---- |
| [a date which will live in infamy. prayers for the victims.] |
| |
| execute_cmd.c |
| - don't use an absolute index into abuf in mkfmt, use |
| sizeof(abuf) to compute last index |
| |
| builtins/common.c |
| - fix read_octal to do a better job of detecting overflow while |
| iterating through the string |
| |
| builtins/umask.def |
| - change octal-print mode to print 4 digits, like other shells |
| - cast umask to unsigned long to avoid problems on systems where |
| it's wider than an int (POSIX doesn't guarantee that mode_t is |
| no wider than an int, but real-world systems use int) |
| |
| builtins/printf.def |
| - mklong can never return NULL (it uses xrealloc), so the mainline |
| doesn't need to check for NULL returns |
| - new function, getldouble (long double *), to get long doubles |
| - mklong now takes a `char *' as its second argument, the modifier(s) |
| to use |
| - changed use of `modchar' to handle more than a single modifier |
| character |
| - changed to handle `long double' and `L' formats better, rather |
| than discarding long double information |
| - since printf now follows the POSIX.2 rules for conversion errors, |
| we can dispense with the status returns from the get* functions |
| - make the get* functions as similar in structure as possible, |
| removing type casts, etc. |
| |
| lib/sh/timeval.c,execute_cmd.c |
| - change some instances of `long' to `time_t', for systems where |
| a time_t is bigger than a long |
| |
| jobs.c |
| - include "posixtime.h" instead of <sys/time.h> |
| |
| config.h.in |
| - add defines for HAVE_DECL_CONFSTR, HAVE_DECL_STRTOLD, |
| HAVE_DECL_SBRK, HAVE_DECL_PRINTF |
| - remove defines for SBRK_DECLARED and PRINTF_DECLARED |
| - add _GNU_SOURCE define |
| |
| configure.in |
| - add AC_CHECK_DECLS for strtold, confstr, sbrk, printf |
| - remove call to BASH_FUNC_SBRK_DECLARED |
| - remove call to BASH_FUNC_PRINTF |
| |
| xmalloc.c, lib/malloc/malloc.c |
| - change check of SBRK_DECLARED to HAVE_SBRK_DECL |
| |
| print_cmd.c |
| - change PRINTF_DECLARED to HAVE_DECL_PRINTF |
| |
| builtins/evalstring.c, builtins/common.h |
| - parse_and_execute now takes a `const char *' as its second argument |
| |
| input.h,parse.y |
| - with_input_from_* functions now take a `const char *' as their |
| second argument |
| - init_yy_io now takes a `const char *' as its fourth argument |
| |
| parse.y,externs.h |
| - parse_string_to_word_list now takes a `const char *' as its second |
| argument |
| |
| tests/builtins.right |
| - change output to account for extra digit in umask output |
| |
| pcomplib.c |
| - free_progcomp now takes a PTR_T argument |
| |
| builtins/bashgetopt.h |
| - include <stdc.h> |
| - add prototypes to extern declarations |
| |
| builtins/shopt.def |
| - add prototypes to static function declarations |
| |
| builtins/{fc,umask,wait}.def, builtins/{bashgetopt,common}.c |
| - include <ctype.h> for isdigit macro (referenced by `digit(x)') |
| |
| lib/readline/complete.c |
| - added more static function declarations with prototypes |
| |
| 9/12 |
| ---- |
| lib/sh/tmpfile.c |
| - use `^' instead of `*' in sh_mktmpname to make filenames a bit |
| more random |
| |
| include/stdc.h,lib/readline/rldstdc.h |
| - add __attribute__ definition |
| |
| builtins/common.h |
| - add printf __attribute__ to declaration of builtin_error |
| |
| error.h |
| - add printf __attribute__ to declaration of programming_error, |
| report_error, parser_error, fatal_error, sys_error, internal_error, |
| internal_warning |
| |
| lib/readline/readline.h |
| - add printf __attribute__ to declaration of rl_message |
| |
| pcomplete.c |
| - add printf __attribute__ to declaration of debug_printf |
| |
| print_cmd.c |
| - add printf __attribute__ to declarations of cprintf, xprintf |
| |
| include/chartypes.h |
| - new file, includes <ctype.h> and defines macros that check for |
| safe (ascii) arguments before calling the regular ctype macros |
| |
| {alias,bashline,execute_cmd,expr,findcmd,general,locale,mksyntax,stringlib,subst,variables}.c |
| parse.y |
| builtins/{bashgetopt,common}.c |
| builtins/{fc,printf,umask,wait}.def |
| lib/glob/strmatch.c |
| lib/sh/{oslib,pathcanon,pathphys,snprintf,strcasecmp,strindex,stringvec,strtod,strtol,strtrans}.c |
| examples/loadables/{head,sleep}.c |
| - include "chartypes.h" or <chartypes.h> instead of <ctype.h> |
| |
| Makefile.in,{builtins,lib/{glob,sh}}/Makefile.in |
| - update dependencies to include chartypes.h |
| |
| lib/sh/inet_aton.c |
| - use `unsigned char' instead of `char' to pass to ctype.h functions |
| |
| lib/sh/netopen.c |
| - check for '0' <= host[0] <= '9' in _getaddr instead of using |
| isdigit |
| |
| subst.c,lib/sh/shquote.c |
| - change array subscripts into sh_syntaxtab from `char' to |
| `unsigned char' |
| |
| {alias,bashline,execute_cmd,expr,general,subst}.c, parse.y |
| builtins/{fc,printf,umask,wait}.def builtins/{bashgetopt,common}.c |
| lib/sh/{pathcanon,pathphys,snprintf,strcasecmp,strindex,strtod,strtol,strtrans}.c |
| examples/loadables/{head,sleep}.c |
| - change to use some of the new macros in chartypes.h |
| - remove old local macro definitions now provided by chartypes.h |
| |
| general.h |
| - remove definition of isletter, ISOCTAL, digit, digit_value |
| - change legal_variable_starter and legal_variable_char to use |
| chartypes.h macros |
| - change ABSPATH to use chartypes.h macros |
| |
| lib/readline/util.c |
| - change to use Paul Eggert's FUNCTION_FOR_MACRO define to define |
| function replacements for macros in chardefs.h |
| |
| lib/readline/chardefs.h |
| - added some of the same macros as in chartypes.h |
| - change _rl_lowercase_p, _rl_uppercase_p, _rl_digit_p, |
| _rl_to_upper, _rl_to_lower to use new IS* macros |
| - added _rl_isident macro from vi_mode.c:isident |
| |
| lib/readline/{bind,complete,nls}.c |
| - change to use some of the new macros from chardefs.h |
| |
| lib/readline/vi_mode.c |
| - isident -> _rl_isident |
| - remove local defines of macros in chardefs.h |
| |
| lib/sh/strtol.c |
| - updated to new version, modified from glibc 2.2.4 and sh-utils-2.0. |
| This one can do strtoll and strtoull, if necessary |
| |
| 9/13 |
| ---- |
| builtins/ulimit.def |
| - changed get_limit so it retrieves both hard and soft limits |
| instead of one or the other |
| - changed callers of get_limit |
| - changed getmaxvm to take soft limit, hard limit as arguments |
| - changed getmaxuprc to just take a single argument, the value |
| - changed calls to printone() to pass soft limit or hard limit |
| depending on `mode' instead of using old current_limit variable |
| - moved check for out-of-range limits in ulimit_internal into the |
| block that converts a string argument to a value of type rlim_t |
| - changed RESOURCE_LIMITS struct to break the description into a |
| description string and separate scale factor string |
| - changed print_all_limits to print a single error message if |
| get_limit fails, including limits[i].description now that the |
| scale factor has been removed from the description string |
| - removed DESCFMT define, since it's now used only in printone() |
| - changed printone to print the option character associated with a |
| particular limit if we're printing multiple limits |
| - changed calls to builtin_error to print the description associated |
| with a limit if setting or getting the limit fails |
| - added support for new POSIX 1003.1-200x rlim_t values: |
| RLIM_SAVED_CUR and RLIM_SAVED_MAX, which expand to the current |
| soft and hard limits, whatever they are |
| - changed printone to print `hard' or `soft' if the current limit is |
| RLIM_SAVED_MAX or RLIM_SAVED_CUR, respectively |
| - changed ulimit_internal to handle new `hard' and `soft' arguments |
| - changed help text do describe the special limit arguments `hard', |
| `soft', and `unlimited' |
| |
| doc/{bash.1,bashref.texi} |
| - documented new `hard' and `soft' limit arguments to `ulimit' |
| |
| hashlib.[ch] |
| - find_hash_item now takes a `const char *' is its first argument |
| - hash_string now takes a `const char *' is its first argument |
| - remove_hash_item now takes a `const char *' as its first argument |
| |
| pcomplib.c |
| - removed cast from first argument to find_hash_item in find_compspec |
| |
| general.[ch] |
| - absolute_program now takes a `const char *' as its argument |
| - absolute_pathname now takes a `const char *' as its argument |
| |
| lib/glob/glob.[ch] |
| - glob_pattern_p now takes a `const char *' as its argument |
| |
| bashline.c |
| - removed cast from first argument to absolute_program in |
| command_word_completion_function |
| - removed cast from first argument to glob_pattern_p in |
| attempt_shell_completion |
| |
| findcmd.[ch] |
| - find_absolute_program, find_user_command, find_path_file, |
| search_for_command, user_command_matches now take a |
| `const char *' as their first argument |
| - file_status, executable_file, is_directory, executable_or_directory |
| now take a `const char *' as their argument |
| - _find_user_command_internal, find_user_command_internal, |
| find_user_command_in_path |
| |
| lib/sh/makepath.c, externs.h |
| - changed sh_makepath so it takes `const char *' for its first |
| two arguments |
| |
| hashcmd.[ch] |
| - find_hashed_filename now takes a `const char *' as its first arg |
| - remove_hashed_filename now takes a `const char *' as its first arg |
| |
| variables.[ch] |
| - new_shell_variable, var_lookup, shell_var_from_env_string, |
| find_name_in_env_array, bind_function, makunbound, |
| bind_name_in_env_array, bind_tempenv_variable, bind_variable |
| now take a `const char *' as their first arg |
| - find_function, make_new_variable, find_tempenv_variable, |
| find_variable_internal, find_variable, set_func_read_only, |
| set_func_auto_export, all_variables_matching_prefix, assign_in_env, |
| assignment, kill_local_variable, make_local_variable, unbind_variable |
| now take a `const char *' as their arg |
| - mk_env_string now takes `const char *' arguments |
| |
| arrayfunc.[ch] |
| - skipsubscript now takes a `const char *' as its argument |
| |
| 9/17 |
| ---- |
| lib/readline/complete.c |
| - attempt to preserve case of what the user typed in |
| compute_lcd_of_matches if we're ignoring case in completion |
| |
| builtins/{let,pushd}.def,{execute_cmd,expr}.c |
| - change some 0L constants to 0 and let the compiler sort it out |
| |
| 9/18 |
| ---- |
| lib/malloc/alloca.c |
| - alloca now takes a `size_t' argument |
| |
| include/memalloc.h |
| - if we're providing an extern function declaration for alloca, |
| use `void *' and prototype if __STDC__ is defined |
| - if HAVE_ALLOCA_H is defined, but C_ALLOCA is defined, don't |
| define HAVE_ALLOCA |
| |
| 9/19 |
| ---- |
| subst.c |
| - do_assignment_internal, do_assignment, and do_assignment_no_expand |
| now take a `const char *' as their first argument |
| |
| general.h |
| - a `sh_assign_func_t' is now a function taking a `const char *' and |
| returning int |
| |
| hashcmd.c |
| - free_filename_data now takes a `PTR_T' argument to agree with the |
| typedef for `sh_free_func_t' |
| |
| lib/sh/snprintf.c |
| - use TYPE_MAXIMUM define like strtol.c instead of huge constants |
| |
| 9/20 |
| ---- |
| lib/sh/snprintf.c |
| - don't bother to compile the bulk of the body unless HAVE_SNPRINTF |
| or HAVE_ASPRINTF is not defined |
| |
| 9/24 |
| ---- |
| flags.c |
| - ignore `set -n' if the shell was started interactively |
| |
| lib/readline/readline.c |
| - initialize readline_echoing_p to 0; let the terminal-specific code |
| in rltty.c set it appropriately |
| |
| lib/malloc/malloc.c |
| - changed internal_memalign() slightly to avoid compiler warnings about |
| negating an unsigned variable (-alignment -> (~alignment + 1)) |
| |
| 9/27 |
| ---- |
| lib/readline/readline.c |
| - changed rl_newline to set _rl_history_saved_point appropriately |
| for the {previous,next}_history code |
| |
| lib/readline/rlprivate.h |
| - extern declaration for _rl_history_preserve_point |
| |
| lib/readline/bind.c |
| - new bindable variable, `history-preserve-point', sets value of |
| _rl_history_preserve_point |
| |
| 10/1 |
| ---- |
| lib/malloc/table.c |
| - new file, with a map of allocated (and freed) memory for debugging |
| multiple frees, etc. Indexed by hash on values returned by |
| malloc(); holds size, file and line number info for last alloc or |
| free and a couple of statistics pointers |
| |
| lib/malloc/malloc.c |
| - a few cleanups; added calls for registering allocations and frees |
| if MALLOC_REGISTER is defined |
| - replaced MALLOC_RETURN with explicit MALLOC_NOTRACE define |
| - reordered fields in `struct...minfo' in `union mhead' to restore |
| eight-byte alignment |
| - added explicit checks for underflow in free and realloc since |
| checking mh_magic2 is not sufficient to detect everything (it's |
| no longer the last field in the struct, and thus not the bytes |
| immediately preceding what's returned to the user) |
| - new function, xbotch, for printing file and line number info for |
| the failed assertion before calling botch() (programming_error()) |
| |
| configure.in |
| - replaced call to BASH_C_LONG_LONG with call to |
| AC_CHECK_TYPES([long long]) |
| - moved the C compiler tests before the tests for various |
| system types, so we can know whether we have `long long' |
| before testing for 64-bit types |
| - if we have `long long', check for sizeof(long long) and save value |
| |
| aclocal.m4 |
| - changed BASH_TYPE_BITS64_T to check `long long' before `long', but |
| after `double' |
| |
| 10/2 |
| ---- |
| lib/malloc/malloc.c |
| - made malloc and realloc both agree on the rounding for a request of |
| size N (round up to nearest multiple of 8 after adjusting for |
| malloc overhead); uses new ALLOCATED_BYTES macro |
| - realloc and free now use new IN_BUCKET macro for underflow checks |
| |
| execute_cmd.c |
| - fixed time_command() to use `time_t' instead of `long' to hold |
| time stamps |
| |
| lib/sh/clock.c |
| - clock_t_to_secs now takes a `time_t *' second argument |
| - fixed print_clock_t to call clock_t_to_secs with right arguments |
| |
| lib/sh/timeval.c |
| - fixed print_timeval to make `minutes' a `long' and make its |
| structure identical to print_clock_t |
| |
| redir.c |
| - changed redirection_error to check for EBADF and use the file |
| descriptor being redirected from in the error message if it |
| is >= 0 |
| |
| Makefile.in |
| - changed release status to `beta1' |
| |
| lib/glob/collsyms.h |
| - added a few ASCII symbols to the posix_collsyms array |
| |
| 10/3 |
| ---- |
| aclocal.m4 |
| - fixed typo in BASH_TYPE_BITS64_T |
| |
| configure.in |
| - added check for unsigned chars with AC_C_CHAR_UNSIGNED |
| |
| config.h.in |
| - added PROTOTYPES and __CHAR_UNSIGNED__ #defines |
| |
| general.h |
| - if CHAR_MAX is not define by <limits.h>, provide a definition |
| |
| builtins/printf.def |
| - change tescape() to mask \0 and \x escape sequences with 0xFF |
| - change tescape() to process at most two hex digits after a `\x' |
| |
| lib/sh/strtrans.c |
| - change strtrans() to mask \0 and \x escape sequences with 0xFF |
| - change strtrans() to process at most two hex digits after a `\x'. |
| This affects `echo -e' and $'...' processing |
| |
| lib/readline/bind.c |
| - changed rl_translate_keyseq() to process at most two hex digits |
| after a `\x' |
| |
| lib/readline/doc/{rluser.texinfo,readline.3}, doc/bash.1 |
| - changed documentation for key binding escape sequences to specify |
| that at most two hex digits after \x are translated |
| - changed documentation for key binding to specify that the result |
| of \nnn or \xhh escapes is an eight-bit value, not just ASCII |
| |
| doc/{bash.1,bashref.texi} |
| - changed documentation of $'...' to specify that at most two hex |
| digits after \x are translated |
| - changed `echo' documentation to specify that at most two hex |
| digits after \x are translated |
| - changed documentation for `echo' and $'...' to specify that the |
| result of \nnn or \xhh escapes is an eight-bit value, not just ASCII |
| |
| 10/4 |
| ---- |
| lib/malloc/malloc.c |
| - changed interface for xbotch to pass memory address and error code |
| as two additional arguments |
| - call mregister_describe_mem from xbotch to get the last allocation |
| or free before the botch |
| |
| configure.in |
| - call AC_CHECK_DECLS([strsignal]) |
| |
| config.h.in |
| - add HAVE_DECL_STRSIGNAL |
| |
| siglist.h |
| - make declaration of strsignal() dependent on !HAVE_DECL_STRSIGNAL |
| |
| 10/5 |
| ---- |
| support/texi2html |
| - upgraded to version 1.64 |
| |
| 10/9 |
| ---- |
| aclocal.m4 |
| - added check for `long long' to BASH_TYPE_PTRDIFF_T |
| |
| configure.in |
| - replaced call to BASH_HAVE_TIOCGWINSZ with AC_HEADER_TIOCGWINSZ |
| |
| aclocal.m4 |
| - replaced body of BASH_STRUCT_TERMIOS_LDISC with call to |
| AC_CHECK_MEMBER(struct termios.c_line, ...) |
| - replaced body of BASH_STRUCT_TERMIO_LDISC with call to |
| AC_CHECK_MEMBER(struct termios.c_line, ...) |
| |
| [bash-2.05a-beta1 frozen] |
| |
| 10/10 |
| ----- |
| lib/sh/snprintf.c |
| - fixed exponent() to not smash the trailing zeros in the fraction |
| when using %g or %G with an `alternate form' |
| - fixed exponent() to handle the optional precision with %g and %G |
| correctly (number of significant digits before the exponent) |
| |
| 10/11 |
| ----- |
| expr.c |
| - fixed strlong() to correct the values of `@' and `_' when |
| translating base-64 constants (64#@ == 62 and 64#_ == 64), for |
| compatibility with ksh |
| |
| lib/sh/itos.c |
| - added a slightly more flexible fmtlong() function that takes a |
| base argument and flags (for future use) |
| - rewrote itos and inttostr in terms of fmtlong |
| |
| lib/sh/fmtulong.c |
| - new file, converts unsigned long to string. hooks for `unsigned |
| long long' in the future. unused as yet |
| |
| 10/15 |
| ----- |
| lib/readline/rltty.c |
| - change the SET_SPECIAL macro to avoid possible (but highly |
| unlikely) negative array subscripts |
| |
| error.h |
| - add __attribute__ to extern declaration of itrace (even though the |
| function isn't defined in released versions of bash) |
| |
| bashansi.h |
| - include <strings.h> if HAVE_STRINGS_H is defined, to get any extra |
| function declarations provided therein |
| |
| copy_cmd.c |
| - fix typo in forward declaration for copy_arith_for_command |
| |
| lib/malloc/stats.c |
| - make the accumulators in _print_malloc_stats be `unsigned long' |
| instead of `int' |
| |
| externs.h, sig.h |
| - add `__noreturn__' gcc attribute to exit_shell and jump_to_top_level |
| declarations |
| |
| lib/sh/mailstat.c, support/bashversion.c |
| - include <bashansi.h> for some string function declarations |
| |
| lib/malloc/shmalloc.h |
| - added extern declarations of functions that do malloc debugging |
| |
| lib/readline/{isearch,readline,vi_mode}.c |
| - make sure we index into _rl_keymap with a non-negative index |
| |
| parse.y |
| - make sure we index into sh_syntaxtab with a non-negative index |
| |
| lib/readline/vi_mode.c |
| - bound the vi_mark_chars array with the number of characters between |
| 'a' and 'z' rather than using a fixed amount |
| - don't use _rl_lowercase_p when deciding whether the char read by |
| rl_vi_set_mark is a valid mark; just use 'a' <= char <= 'z' |
| |
| lib/readline/chardefs.h |
| - conditionally include memory.h and strings.h as in general.h |
| - replace ISASCII with IN_CTYPE_DOMAIN like other GNU software |
| - add defines for ISPRINT(c), ISLOWER(c) and ISUPPER(c) |
| - fix defines for _rl_lowercase_p, _rl_uppercase_p, _rl_digit_p, |
| _rl_pure_alphabetic, ALPHABETIC, _rl_to_upper, _rl_to_lower, |
| and _rl_isident to work on systems with signed chars |
| |
| include/chartypes.h |
| - replace ISASCII with IN_CTYPE_DOMAIN like other GNU software |
| |
| lib/sh/{strcasecmp,strtod,strtol}.c |
| - don't pass possibly-negative characters to tolower() or toupper() |
| |
| lib/glob/strmatch.c |
| - don't bother testing for isupper in FOLD; rely on TOLOWER macro |
| from <chartypes.h> to do it |
| - don't use local definitions of isblank, et al.; rely on macros |
| from <chartypes.h> |
| |
| lib/readline/{display,readline}.c, mksyntax.c |
| - use new ISPRINT macro instead of isprint() |
| |
| builtins/{kill.def,mkbuiltins.c},{error,execute_cmd,jobs,nojobs,subst}.c |
| - don't assume that a pid_t fits into an int for printing and other |
| uses |
| |
| variables.[ch] |
| - the unused put_gnu_argv_flags_into_env now takes a `long' pid |
| argument |
| |
| configure.in, config.h.in |
| - call AC_STRUCT_ST_BLOCKS, define HAVE_STRUCT_STAT_ST_BLOCKS if found |
| - check for strtoull(), define HAVE_STRTOULL if found |
| - check for uintmax_t, define to `unsigned long' if not found |
| |
| lib/sh/mailstat.c |
| - don't use st_blocks member of struct stat unless |
| HAVE_STRUCT_STAT_ST_BLOCKS is defined; otherwise use the st_nlink |
| field to return the total number of messages in a maildir-style |
| mail directory |
| |
| general.h,{alias,expr,general,subst,variables}.c |
| builtins/{printf,read}.def |
| lib/readline/{bind,complete,nls}.c |
| lib/sh/{pathcanon,pathphys,shquote,snprintf,strindex,strtod,strtol,strtrans}.c |
| - cast args to ctype macros to unsigned char for systems with signed |
| chars; other fixes for signed chars |
| |
| lib/sh/{fmtullong,strtoull.c} |
| - new files, more support for `long long' |
| |
| Makefile.in, lib/sh/Makefile.in |
| - make fmtullong.o and strtoull.o part of libsh |
| |
| lib/sh/itos.c |
| - remove local copy of fmtlong; use fmtulong instead |
| - new functions: uitos, uinttostr work on `unsigned long' |
| |
| lib/sh/snprintf.c |
| - fixes to make `unsigned long long' work (%llu) |
| - fixes to make unsigned formats not print the sign when given |
| an unsigned long that is greater than LONG_MAX |
| |
| externs.h |
| - extern declarations for fmtulong, fmtulloing, strtoull |
| - extern declarations for uitos, uinttostr |
| |
| 10/16 |
| ----- |
| configure.in |
| - move header checks before function checks |
| - move c compiler tests before header checks |
| - check for <inttypes.h> with BASH_HEADER_INTTYPES |
| - change type checks for intmax_t, uintmax_t to not attempt to |
| include <stdint.h> |
| - check for strtoimax, strtoumax, strtoll, strtol, strtoull, strtoul |
| with BASH_CHECK_DECL (for declarations in header files) and |
| AC_REPLACE_FUNCS (for availability and LIBOBJS substitution) |
| - remove check for have_long_long around sizeof check for long long |
| (since autoconf will give it a size of 0 if the type isn't found) |
| |
| config.h.in |
| - add a define for HAVE_INTTYPES_H |
| - add a define for HAVE_UNSIGNED_LONG_LONG |
| - add defines for HAVE_STRTOIMAX, HAVE_STRTOUMAX, HAVE_STRTOLL |
| |
| aclocal.m4 |
| - new func, BASH_HEADER_INTTYPES, which just calls AC_CHECK_HEADERS |
| on <inttypes.h>; separate so it can be AC_REQUIREd |
| - AC_REQUIRE([BASH_HEADER_INTTYPES]) in BASH_CHECK_TYPE |
| - include <inttypes.h> in BASH_CHECK_TYPE if HAVE_INTTYPES_H is |
| defined |
| - change AC_DEFINE to AC_DEFINE_UNQUOTED in BASH_CHECK_TYPE |
| - new `long long' checking macros: BASH_TYPE_LONG_LONG and |
| BASH_TYPE_UNSIGNED_LONG_LONG |
| - new BASH_CHECK_DECL |
| |
| lib/sh/{strto[iu]max,strtoll}.c, lib/sh/Makefile.in, Makefile.in |
| - new files |
| |
| externs.h |
| - extern declarations for strtoll, strtoimax, strtoumax |
| |
| lib/malloc/alloca.c |
| - include <bashtypes.h> for size_t |
| |
| builtins/printf.def |
| - new functions: getllong, getullong, getintmax, getuintmax; return |
| long long, unsigned long long, intmax_t, uintmax_t respectively |
| - builtin printf now handles `ll' and `j' length modifiers directly |
| |
| lib/sh/Makefile.in |
| - use LIBOBJS to decide whether or not the strto* functions are |
| needed |
| |
| 10/17 |
| ----- |
| configure.in |
| - call AC_REPLACE_FUNCS(rename) |
| - move getcwd, strpbrk, strcasecmp, strerror, strtod |
| from AC_CHECK_FUNCS to AC_REPLACE_FUNCS |
| - only call BASH_FUNC_GETCWD if $ac_func_getcwd == "yes" |
| - call BASH_CHECK_SYS_SIGLIST |
| - if we don't have vprintf but have _doprnt, call AC_LIBOBJ(vprint) |
| |
| lib/sh/Makefile.in |
| - remove rename, getcwd, inet_aton, strpbrk, strcasecmp, strerror, |
| strtod, vprint from OBJECTS; picked up from LIBOBJS |
| |
| aclocal.m4 |
| - change BASH_FUNC_GETCWD to call AC_LIBOBJ(getcwd) if the libc |
| getcwd(3) calls popen(3) |
| - change BASH_FUNC_INET_ATON to call AC_LIBOBJ(inet_aton) if it's |
| not found in libc or as a #define even with the special includes |
| - BASH_KERNEL_RLIMIT_CHECK -> BASH_CHECK_KERNEL_RLIMIT |
| - BASH_DEFAULT_MAILDIR -> BASH_SYS_DEFAULT_MAILDIR |
| - BASH_JOB_CONTROL_MISSING -> BASH_SYS_JOB_CONTROL_MISSING |
| - BASH_REINSTALL_SIGHANDLERS -> BASH_SYS_REINSTALL_SIGHANDLERS |
| - BASH_SIGNAL_CHECK -> BASH_SYS_SIGNAL_VINTAGE |
| - BASH_DUP2_CLOEXEC_CHECK -> BASH_FUNC_DUP2_CLOEXEC_CHECK |
| - BASH_PGRP_SYNC -> BASH_SYS_PGRP_SYNC |
| - BASH_RLIMIT_TYPE -> BASH_TYPE_RLIMIT |
| - BASH_FUNC_PRINTF -> BASH_DECL_PRINTF |
| - BASH_FUNC_SBRK_DECLARED -> BASH_DECL_SBRK |
| - BASH_MISC_SPEED_T -> BASH_CHECK_SPEED_T |
| - BASH_CHECK_SOCKLIB -> BASH_CHECK_LIB_SOCKET |
| - new macro, BASH_CHECK_SYS_SIGLIST, encapsulates all the checks for |
| sys_siglist, _sys_siglist, and strsignal(), sets SIGLIST_O to |
| siglist.o if appropriate |
| |
| Makefile.in |
| - use SIGLIST_O variable to decide whether or not we need siglist.o |
| |
| {execute_cmd,subst}.c |
| - change a couple of instances of ISDIGIT to DIGIT, where we really, |
| really only want ascii digits |
| |
| ansi_stdlib.h |
| - don't need a declaration for atol() |
| |
| 10/18 |
| ----- |
| |
| aclocal.m4 |
| - new macro, BASH_FUNC_PRINTF_A_FORMAT, checks for printf support |
| for %a, %A conversion specifiers, defines HAVE_PRINTF_A_FORMAT |
| if successful |
| |
| configure.in |
| - call AC_CHECK_FUNCS for isascii |
| - call BASH_FUNC_PRINTF_A_FORMAT |
| |
| config.h.in |
| - add a define for HAVE_ISASCII |
| - add a define for HAVE_PRINTF_A_FORMAT |
| |
| lib/sh/snprintf.c |
| - for long double output, fall back to sprintf using ldfallback() |
| function for floating point formats |
| - support %a, %A using dfallback() or ldfallback() if |
| HAVE_PRINTF_A_FORMAT is defined |
| - fix bug in vasprintf that returned wrong value in its first |
| argument if the buffer holding the result string got reallocated |
| - fixed PUT_CHAR macro to increment the counter even if we've |
| exceeded the buffer size, for the return value from |
| vsnprintf/snprintf |
| - fix vsnprintf_internal to not use counter < length as a loop |
| condition, but always process the entire format string (for |
| the return value from vsnprintf/snprintf) |
| |
| builtins/printf.def |
| - support %a, %A if HAVE_PRINTF_A_FORMAT is defined |
| |
| include/typemax.h |
| - new file, with the TYPE_MAXIMUM stuff that's duplicated in several |
| files in lib/sh |
| |
| lib/sh/{fmtulong,strtol,snprintf}.c |
| - include <typemax.h> instead of having the definitions in each file |
| |
| lib/sh/Makefile.in |
| - updated dependencies for typemax.h |
| |
| 10/22 |
| ----- |
| configure.in |
| - call AC_CHECK_FUNCS on ctype.h functions/macros that bash redefines |
| in chartypes.h |
| |
| config.h.in |
| - defines for HAVE_IS{ASCII,BLANK,GRAPH,PRINT,SPACE,XDIGIT} |
| |
| include/chartypes.h, lib/glob/strmatch.c, lib/readline/chardefs.h |
| - don't redefine some is* ctype macros/functions if HAVE_ISXXX is |
| defined (meaning that an appropriate function, but not a macro, |
| exists) |
| |
| lib/sh/strtrans.c |
| - new function, ansic_shouldquote, returns 1 if argument string |
| contains non-printing chars that should be quoted with $'...' |
| |
| externs.h |
| - new declaration for ansic_shouldquote() |
| |
| variables.c |
| - change print_var_value to ansi C quote the string if we're not in |
| posix mode and the variable's value contains non-printing chars, |
| to use the regular shell single quoting if the value contains |
| shell meta-characters, and to just output the string otherwise |
| |
| lib/sh/shquote.c |
| - add `break' to `case '~':' to avoid fallthrough and extra test |
| |
| doc/bashref.texi |
| - note that in POSIX mode, `set' displays variable values that |
| include nonprinting characters without quoting, unless they |
| contain shell metacharacters |
| |
| builtins/printf.def, lib/sh/snprintf.c |
| - handle `F' conversion specifier as equivalent to 'f' |
| |
| parse.y, {nojobs,variables}.c |
| - a couple of cleanups for when building a minimal configuration |
| |
| nojobs.c |
| - new function: stop_making_children(), just sets |
| already_making_children to 0 (like stop_pipeline) |
| |
| subst.c |
| - call stop_making_children from subst.c:command_substitute if |
| JOB_CONTROL is not defined. This fixes the bug where the wrong |
| process is waited for (and its status returned) when using |
| command substitution in a null command in a shell function |
| |
| builtins/printf.def |
| - new variable `tw' used to keep track of the total number of |
| characters written by a single call to `printf' -- to be |
| used for the `%n' conversion, which will be added later. It |
| gets reset each time we reuse the format string, which is what |
| ksh93 seems to do |
| |
| 10/23 |
| ----- |
| variables.c |
| - new function, bind_var_to_int (char *var, long val) |
| |
| variables.h |
| - extern declaration for bind_var_to_int |
| |
| lib/sh/netopen.c |
| - use gai_strerror() for error messages when getaddrinfo() fails |
| - use PF_INET if DEBUG is defined, since IPv6 doesn't work for me |
| |
| Makefile.in |
| - pass DEBUG=${DEBUG} down to makes in some subdirectories |
| |
| {builtins,lib/{glob,sh}}/Makefile.in |
| - append ${DEBUG} to LOCAL_CFLAGS value, passed by top-level Makefile |
| |
| builtins/printf.def |
| - added support for %n format conversion char (number of chars printed |
| so far from current format string) |
| |
| 10/24 |
| ----- |
| variables.c |
| - if posixly_correct is set, the default value of $MAILCHECK is 600 |
| - use legal_number instead of atoi in adjust_shell_level |
| - treat non-numeric assignments to SECONDS as 0 in assign_seconds |
| - new function, init_funcname_var; sets FUNCNAME as a dynamic variable |
| if it's not set in the initial environment |
| - new function, init_groups_var; sets GROUPS as a dynamic array |
| variable if it's not set in the initial environment |
| - new function, init_dirstack_var; sets DIRSTACK as a dynamic array |
| variable if it's not set in the initial environment |
| - new function, init_seconds_var; sets SECONDS as a dynamic |
| variable using any valid integer value in the initial environment |
| as the initial value, as if an assignment had been performed |
| - call init_funcname_var, init_groups_var, init_dirstack_var, |
| init_seconds_var from initialize_dynamic_variables |
| - non-numeric values assigned to LINENO are treated as 0 |
| - change initialize_shell_variables to not auto-export PATH or TERM |
| - change set_home_var to not auto-export HOME |
| - change set_shell_var to not auto-export SHELL |
| - broke the code that sets HOSTNAME, HOSTTYPE, MACHTYPE, OSTYPE |
| out into a separate function, set_machine_vars; none of those |
| variables are auto-exported |
| - bash no longer un-exports SSH_CLIENT or SSH2_CLIENT |
| |
| shell.c |
| - changed isnetconn() to check SSH_CLIENT and SSH2_CLIENT only if |
| SSH_SOURCE_BASHRC is defined in config-top.h |
| |
| config-top.h |
| - added a commented-out definition for SSH_SOURCE_BASHRC |
| |
| 10/25 |
| ----- |
| |
| Makefile.in |
| - changed RELSTATUS to `rc1' (release candidate 1) |
| |
| 10/29 |
| ----- |
| locale.c |
| - fixed an `=' vs. `==' typo in set_locale_var when parsing |
| LC_NUMERIC |
| |
| doc/{bash.1,bashref.texi} |
| - document what bash does with $POSIXLY_CORRECT |
| |
| doc/builtins.1 |
| - some updates |
| |
| builtins/psize.sh |
| - some mktemp(1) changes |
| |
| lib/readline/readline.c |
| - change rl_backward to check for rl_point < 0 and reset to 0 if so |
| |
| lib/readline/util.c |
| - don't compile in _rl_strpbrk if HAVE_STRPBRK is defined |
| |
| lib/readline/rlprivate.h |
| - remove extern declaration of _rl_strpbrk |
| |
| lib/readline/rldefs.h |
| - #define _rl_strpbrk as strpbrk if HAVE_STRPBRK is define, otherwise |
| add extern declaration of _rl_strpbrk from rlprivate.h |
| |
| {mailcheck,shell,variables}.c |
| - make sure to include posixtime.h to get any prototype for time(3) |
| in scope |
| |
| {array,eval,execute_cmd,mksyntax,subst}.c, parse.y |
| builtins/common.c |
| lib/sh/pathcanon.c |
| - a few changes as the result of `gcc -Wall' patches from solar |
| designer |
| |
| builtins/read.def, parse.y |
| - change some calls to free() to xfree() |
| |
| builtins/set.def |
| - make sure unset_builtin() resets unset_array to 0 each time through |
| the loop, because it's set (and used) depending on the current |
| argument |
| |
| shell.h |
| - new define, USE_VAR, to force the compiler to not put a particular |
| variable in a register -- helpful if registers are not restored |
| by setjmp/longjmp |
| |
| builtins/{evalfile.c,{read,wait}.def}, {eval,execute_cmd,shell,test}.c |
| - use USE_VAR for some variables |
| |
| subst.c |
| - fixed a case in expand_word_internal where a NULL pointer could |
| have been passed to free() (though free() should ignore it) |
| - fixed a case at the end of expand_word_internal where LIST could |
| have been used uninitialized (it makes gcc happy, though it |
| doesn't happen in practice) |
| |
| test.c |
| - give test_syntax_error(), beyond(), and integer_expected_error() |
| the `__noreturn__' attribute for gcc |
| |
| unwind_prot.c |
| - in clear_unwind_protect_list(), convert `flags' to `long' (via |
| assignment to a `long' variable) before casting to `char *', in |
| case pointers and longs are 64 bits and ints are 32 (makes no |
| difference on 32-bit machines) |
| |
| 10/30 |
| ----- |
| print_cmd.c |
| - fixed cprintf to avoid gcc warning about assigning const pointer |
| to non-const (discarding type qualifier) |
| |
| {make_cmd,pcomplete,test}.c,parse.y |
| - some minor changes to shut up gcc warnings |
| |
| lib/sh/tmpfile.c |
| - fixed sh_mktmpfp to avoid file descriptor leaks in the case that |
| sh_mktmpfd succeeds but fdopen fails for some reason |
| - change sh_mktmpfd to use the same scheme for computing `filenum' |
| as sh_mktmpname |
| - change get_sys_tmpdir to prefer P_tmpdir if P_tmpdir is defined |
| - changed sh_mktmpname and sh_mktmpfd to avoid trying to assign to |
| `nameroot' if `nameroot == 0' (duh) |
| - add code to sh_mktmpfd to use mkstemp(3) if USE_MKSTEMP is defined |
| - add code to sh_mktmpname to use mktemp(3) if USE_MKTEMP is defined |
| |
| support/{fixlinks,mkclone} |
| - use mktemp if it's available for the symlink test |
| - use $TMPDIR instead of hardcoding /tmp; default to /tmp |
| - use a better filename for the symlink test instead of `z' |
| |
| support/bashbug.sh |
| - more changes inspired by a patch from solar designer |
| |
| lib/malloc/Makefile.in |
| - new target `alloca', which builds libmalloc.a with alloca.o only |
| (for systems without alloca that are configured --without-bash-malloc) |
| |
| configure.in |
| - if we don't have a working alloca and are not configured to build |
| the bash malloc library, make a malloc library containing only |
| alloca.o |
| |
| aclocal.m4 |
| - slight change to RL_LIB_READLINE_VERSION to deal with minor version |
| numbers with a letter appended (like 4.2a) |
| |
| 10/31 |
| ----- |
| doc/{bash.1,bashref.texi} |
| - slight change to note that only interactive shells resend a SIGHUP |
| to all jobs before exiting |
| |
| externs.h |
| - declare strto[ui]max only if NEED_STRTOIMAX_DECL is defined. This |
| keeps picky compilers from choking because intmax_t is not defined |
| (MacOS X 10.1) |
| |
| builtins/printf.def |
| - #define NEED_STRTOIMAX_DECL before including shell.h |
| |
| 11/1 |
| ---- |
| general.c |
| - check in bash_tilde_expand() for an unquoted tilde-prefix; don't |
| bother passing the string to tilde_expand unless the prefix is |
| unquoted |
| |
| shell.c |
| - fix a problem with $LINENO when executing commands supplied with |
| the -c invocation option when ONESHOT is defined |
| |
| [bash-2.05a-rc1 frozen] |
| |
| builtins/printf.def |
| - fix the %n conversion to require that the variable name supplied |
| be a valid shell identifier |
| |
| variables.c |
| - improve random number generator slightly by using the upper 16 |
| bits of the running random number instead of the lower 16, which |
| are incrementally more random |
| |
| 11/2 |
| ---- |
| configure.in |
| - if RL_INCLUDEDIR ends up being /usr/include, don't put |
| -I$(RL_INCLUDEDIR) into CFLAGS |
| |
| 11/5 |
| ---- |
| doc/{bash.1,bashref.texi} |
| - correct description of POSIXLY_CORRECT to note that the shell enters |
| posix mode *before* the startup files are read if POSIXLY_CORRECT |
| is in the initial environment |
| |
| variables.c |
| - fix function prologues for init_dirstack_var and init_groups_var |
| to agree with caller (no arguments) |
| |
| jobs.c |
| - fix forward function declarations for pipe_read and pipe_close |
| |
| subst.c |
| - removed `inline' attribute from skip_double_quoted because it can |
| potentially be called recursively |
| |
| bashline.c |
| - quick fix to bashline.c:attempt_shell_completion programmable |
| completion code to just punt if the end of the command word found |
| by find_cmd_end is <= the start found by find_cmd_start (the bug |
| is probably in find_cmd_start -- fix later) |
| |
| pcomplete.c |
| - fix gen_matches_from_itemlist to return if the stringlist is null |
| after any cleaning or initialization, before trying to use it |
| - fix GEN_COMPS to only bother to try to append the STRINGLIST |
| returned by gen_matches_from_itemlist to `glist' if it's non-NULL |
| |
| lib/sh/stringlist.c |
| - make copy_stringlist return NULL if the STRINGLIST * passed as an |
| argument is NULL |
| - make append_stringlist call copy_stringlist only if M2 is non-NULL; |
| otherwise just return NULL if m1 is NULL |
| - make word_list_to_stringlist return 0 immediately if the passed |
| LIST argument is NULL |
| - make realloc_stringlist call alloc_stringlist if the passed |
| STRINGLIST argument (`sl') is 0, just like realloc calls malloc |
| |
| subst.c |
| - in skip_to_delim(), if we have an unclosed ${, and it's at the end |
| of the string (string[i] == '{', string[i+1] == '{' and |
| string[i+2] == 0, return si (i +2) immediately without bothering |
| to call extract_dollar_brace_string or extract_delimited_string |
| - in skip_to_delim(), if string[i] is 0 after a call to |
| extract_dollar_brace_string or extract_delimited_string (meaning we |
| have an unclosed ${ or other expansion, return i immediately without |
| doing a `continue' (which will increment i past the end of string) |
| - in split_at_delims, don't increment te by 1 if it's pointing to a |
| delimiter. this has the effect of skipping the first delimiter |
| char in a possibly multi-character delimiter, and ignoring |
| single-char delimiters like `>' |
| |
| configure.in |
| - use AC_CHECK_MEMBERS([struct stat.st_blocks]) instead of a call to |
| AC_STRUCT_ST_BLOCKS to avoid configure changing LIBOBJS if the test |
| fails |
| |
| general.c |
| - introduce two new variables: bash_tilde_{prefixes,suffixes}, set |
| to the additional prefixes and suffixes bash wants to pass to the |
| tilde expansion code (reserved for post-bash-2.05a fix) |
| |
| aclocal.m4 |
| - add missing `test' in BASH_CHECK_SYS_SIGLIST |
| |
| 11/7 |
| ---- |
| lib/readline/vi_mode.c |
| - fix rl_vi_goto_mark to explicitly check that the desired mark is |
| between 'a' and 'z', since some locales have lowercase letters |
| outside that range, which could cause a negative subscript |
| |
| include/chartypes.h |
| - remove superfluous `#undef ISASCII' |
| |
| lib/sh/strto[iu]max.c |
| - changes from Paul Eggert to work around buggy compilers and catch |
| configuration errors at compile time |
| |
| aclocal.m4 |
| - new macro, BASH_C_LONG_DOUBLE, identical to AC_C_LONG_DOUBLE but |
| with a fix for Irix 5.3 (not called, since I'm not sure it's the |
| right thing to do -- the C standard allows double and long double |
| to be the same size) |
| |
| lib/sh/snprintf.c |
| - only try to write the trailing NUL in vsnprintf_internal if |
| data->length is >= 0, since if it's not, we probably don't have |
| a buffer |
| |
| Makefile.in |
| - changed RELSTATUS to `release' |
| |
| 11/8 |
| ---- |
| lib/sh/strtol.c |
| - make sure chars passed to toupper are cast to unsigned |
| |
| unwind_prot.c |
| - change clear_unwind_protect_list to not require a cast from `int' |
| to `char *' |
| |
| lib/readline/chardefs.h |
| - make _rl_digit_p succeed only for ascii digits, since that's what |
| most callers assume |
| |
| 11/13 |
| ----- |
| doc/bashref.texi |
| - added `ERR' trap and [-+]O invocation option to section listing |
| differences from the Bourne shell |
| |
| 11/15 |
| ----- |
| [bash-2.05a released] |
| |
| 11/19 |
| ----- |
| include/stdc.h |
| - new define, INLINE, defined as `inline' for gcc and empty otherwise |
| |
| subst.c |
| - make skip_double_quoted, sub_append_string have INLINE attribute |
| |
| trap.c |
| - use BASH_NSIG as upper limit for signal names in signal_name() |
| |
| lib/readline/bind.c |
| - use RL_COMMENT_BEGIN_DEFAULT in output for rl-comment-begin value |
| |
| error.c |
| - fix sys_error to save value of errno around calls to fprintf |
| |
| doc/Makefile.in |
| - added rules to create PDF files from postscript and dvi input |
| |
| MANIFEST.doc |
| - added {article,bash,bashref,rose94}.pdf |
| |
| doc/bash.1 |
| - rearranged some `.PD 0' and `.TP' directives so man2html will |
| handle them better (shouldn't affect groff output) |
| |
| support/man2html.c |
| - small fix to handle quoted string arguments to directives like |
| `.BR' without mangling the output |
| |
| 11/20 |
| ----- |
| {arrayfunc,variables}.c |
| - changed calling sequence for dynamic array variable `assign' |
| functions to (SHELL_VAR *self, char *value, arrayind_t ind) |
| - changed calling sequence for dynamic variable assign functions |
| to the same as array variable assign_func. Now this can be |
| prototyped |
| |
| variables.h |
| - the assign_func member of a `struct variable' is now of type |
| `sh_var_assign_func_t', which is prototyped |
| - the dynamic_value member of a `struct variable' is now of type |
| `sh_var_value_func_t', which is prototyped |
| |
| variables.c |
| - changed to use `sh_var_assign_func_t' and `sh_var_value_func_t' |
| |
| builtins/cd.def |
| - when in posix mode, if the new directory name formed by PWD and |
| the argument passed by the user cannot be canonicalized, and the |
| -P option has not been supplied, return failure immediately |
| - if canonicalization failed, but the fallback to the directory |
| name specified by the user succeeds, reset the current working |
| directory |
| |
| lib/readline/{input.c,rlprivate.h} |
| - renamed rl_unget_char to _rl_unget_char; made library global |
| |
| lib/readline/{{bind,readline}.c,{keymaps,rlprivate}.h} |
| - support for `key subsequences'; allows a key sequence and a function |
| mapped to a subsequence of that key sequence. Primarily to allow |
| arrow keys to be bound in readline vi insert mode, while preserving |
| the ESC function to switch to command mode. |
| |
| lib/readline/{input.c,rlprivate.h} |
| - new function, _rl_input_queued(T), does a check with select or |
| FIONREAD with a timeout of `T' (which is generally 0) |
| |
| lib/readline/readline.c |
| - change _rl_dispatch_subseq to test for input in the queue if we |
| get ESC while in vi insertion mode if the keymap entry type for |
| ESC is ISKMAP. If _rl_input_queued returns non-zero, we assume |
| that an arrow key sequence has been pressed and go ahead with the |
| subsequence. If it returns zero, we assume that the user pressed |
| ESC to switch into command mode, and dispatch to that right away. |
| This avoids forcing the user to press another key before switching |
| into command mode |
| |
| 11/21 |
| ----- |
| lib/readline/readline.c |
| - bind common arrow key sequences in vi insertion keymap |
| |
| lib/readline/terminal.c |
| - bind termcap definition's arrow keys in vi insertion keymap |
| |
| lib/readline/bind.c |
| - check for rl_vi_movement_mode in _rl_bind_if_unbound, so |
| binding the arrow keys can work |
| |
| lib/readline/readline.c |
| - since _rl_bind_if_unbound does the check of what's currently |
| bound to the key sequence, the check in bind_arrow_keys_internal |
| was redundant |
| - bind_arrow_keys_internal now takes a Keymap argument and handles |
| saving and restoring _rl_keymap; changed bind_arrow_keys |
| accordingly |
| |
| builtins/fc.def |
| - fix from Paul Eggert to substitute the nearest history number in |
| range if an out-of-range value is supplied. POSIX requires this |
| |
| lib/sh/pathcanon.c |
| - fix from Corrina Vinschen for the special `cygdrive' prefix on |
| Cygwin |
| |
| bashhist.c |
| - split the history adding code into more pieces: |
| check_history_control (char *line) checks LINE against the value |
| of HISTCONTROL, returning 1 if LINE should be saved and 0 if not |
| |
| check_add_history (char *line) calls check_history_control and |
| history_should_ignore (line) and saves the line with |
| bash_add_history if the checks indicate that it should be saved |
| |
| maybe_add_history just calls check_add_history to set the value |
| of first_line_saved |
| |
| bashhist.h |
| - extern declaration for check_add_history() |
| |
| shell.c |
| - don't call load_history() from the interactive shell startup |
| code if history_lines_this_session is > 0, indicating that we've |
| already saved some lines in the history and that we probably |
| don't want to overwrite them |
| |
| builtins/history.def |
| - call check_add_history from push_history, so `history -s xx' |
| works even when in a compound command whose first line has not |
| been saved. (Caveat: in a compound command when the first |
| line has been saved, the line supplied to history -s will become |
| part of the compound command's history entry. Of course, the |
| delete_history call could remove the compound command from the |
| history entirely) |
| |
| bashline.c |
| - use sh_makepath instead of xmalloc/sprintf in |
| command_word_completion_function |
| |
| lib/readline/complete.c |
| - get_y_or_n now takes an int FOR_PAGER argument; caller changed |
| If FOR_PAGER is non-zero, get_y_or_n returns appropriate values |
| for a more-like pager: `newline' or `return' return 2; `q' or |
| `Q' return 0 |
| - there is now a mini internal more-like pager for displaying a |
| list of completions that exceeds the screen height (new function |
| _rl_internal_pager, called from rl_display_match_list) |
| |
| 11/24 |
| ----- |
| command.h |
| - new flag, W_TILDEEXP, says to do tilde expansion on an |
| assignment word |
| |
| execute_cmd.c |
| - fix_assignment_words now sets W_TILDEEXP for assignment word |
| arguments to `assignment builtins' |
| |
| general.c |
| - bash_tilde_expand now takes a second argument indicating whether |
| or not it's being invoked in an `assignment context' |
| |
| general.h |
| - change extern declaration for bash_tilde_expand |
| |
| {bashline,execute_cmd,findcmd,general,variables}.c |
| builtins/evalfile.c |
| lib/sh/makepath.c |
| - fix callers of bash_tilde_expand appropriately |
| |
| subst.c |
| - fix callers of bash_tilde_expansion appropriately |
| - add (currently commented-out) code that would tilde expand assignment |
| statement arguments to assignment builtins (W_TILDEEXP flag set) |
| even when the shell is in posix mode |
| |
| bashline.c |
| - fix attempt_shell_completion to turn off |
| rl_filename_completion_desired when doing command name completion, |
| so no slash gets appended to the name if there happens to be a |
| directory with the same name in the current directory |
| |
| 11/26 |
| ----- |
| lib/readline/rltech.texinfo |
| - a couple of additions to the rl_stuff_char description |
| |
| parse.y |
| - turn off echo_input_at_read in parse_string_to_word_list, so `set -v' |
| doesn't give extra lines of output when doing compound array |
| assignment |
| |
| subst.c |
| - fix split_at_delims to handle skipping over a `\n' if it's a |
| delimiter (use spctabnl(c) instead of whitespace(c)) |
| |
| 11/27 |
| ----- |
| support/config.{guess,sub} |
| - updated (with bash changes) to latest version from gnu.org |
| |
| sig.h |
| - add prototype for set_signal_handler declaration |
| |
| builtins/setattr.def |
| - add prototype to extern declaration of declare_builtin |
| |
| builtins/times.def |
| - add no_options call, since times takes no options |
| |
| lib/sh/spell.c |
| - add prototypes to forward declarations for midist and spdist |
| |
| lib/sh/strtrans.c |
| - add explicit int return type to ansic_shouldquote declaration |
| |
| lib/readline/rldefs.h, lib/readline/{macro,readline,util,undo}.c |
| - move define for SWAP to rldefs.h, removed from various C files |
| |
| lib/readline/vi_mode.c |
| - removed define for exchange(), changed to use SWAP instead |
| |
| lib/readline/bind.c |
| - added some static forward function declarations |
| - find_boolean_var, find_string_var now take a `const char *' argument |
| |
| lib/readline/signals.c |
| - added static forward declaration for rl_maybe_set_sighandler |
| |
| lib/readline/readline.c |
| - add some common key bindings for the HOME and END keys in |
| bind_arrow_keys_internal |
| |
| lib/readline/terminal.c |
| - fetch the `@7' termcap string; it's sent by the END key |
| - attempt to bind the terminal's END key to rl_end_of_line in |
| bind_termcap_arrow_keys; I don't know why I was using `kH' |
| instead of `@7' |
| |
| doc/builtins.1 |
| - remove `case', `for', `if', `until', `while' from NAME section; |
| those are not shell builtins |
| |
| 11/28 |
| ----- |
| stringlib.c |
| - new function, find_token_in_alist, takes a token value and an |
| ALIST argument, and returns the string correspoinding to the |
| token if found in the alist |
| |
| externs.h |
| - new extern declaration for find_token_in_alist() |
| |
| subst.c |
| - string_list_internal is no longer static |
| |
| subst.h |
| - new extern declaration for string_list_internal() |
| |
| parse.y |
| - new alist array of other tokens returned by read_token which are |
| not reserved words in word_token_alist[] |
| - reworked error reporting: new functions print_offending_line, |
| which prints the line containing the syntax error, |
| error_token_from_token, which takes the current token and tries to |
| figure out its textual representation, and error_token_from_text, |
| which does the old job of finding the bad token by analyzing the |
| text of shell_input_line at the current index |
| - report_syntax_error now tries to figure out the token that caused |
| the syntax error by first looking at current_token and falling |
| back to the old method of textual analysis if that fails |
| - report_syntax_error doesn't say the token resulting from the textual |
| analysis of the input line is an `unexpected token'; it just |
| says there is a `syntax error near xxx' |
| - changed conditional command error reporting to use the value |
| returned by error_token_from_token if it's not null instead of |
| just using the token value in the message, since current_token |
| ends up being set to -1, and the text of the message from |
| report_syntax_error might not be exactly right |
| - change parse_string_to_word_list to set current_token to the |
| offending token returned by read_token before calling yyerror() |
| to make the error reporting do the right thing |
| |
| aclocal.m4 |
| - fixed typo in BASH_CHECK_LIB_TERMCAP |
| |
| configure.in |
| - add check for isinf(3); define HAVE_ISINF_IN_LIBC if found |
| |
| config.h.in |
| - add define for HAVE_ISINF_IN_LIBC |
| |
| lib/sh/snprintf.c |
| - check for Inf and NaN, using isinf and isnan if they're found in |
| libc |
| - use the current locale for thousands separator and decimal point |
| - recognize "'" flag; not implemented yet |
| - fix for snprintf/vsnprintf with length of 0 and string argument of |
| 0 with non-zero length |
| |
| builtins/read.def |
| - TMOUT is now the default timeout for `read' (and select) if set, |
| like ksh93 when reading from the terminal |
| - edit_line (called by read -e) now just does readline's filename |
| completion by setting rl_attempted_completion_function to NULL, |
| since e.g., doing command completion for the first word on the |
| line wasn't really useful |
| |
| execute_cmd.c |
| - changed select_command to return failure status if select_query |
| returns NULL, indicating that read_builtin returned |
| EXECUTION_FAILURE |
| |
| doc/{bash.1,bashref.texi} |
| - documented new TMOUT behavior |
| - slight change to the description of the test `-ef' option |
| |
| doc/bashref.texi |
| - added item to posix mode section describing failure behavior of |
| cd when invoked in logical mode and the pathname formed by |
| combining $PWD and the directory argument does not refer to an |
| existing directory |
| |
| 11/29 |
| ----- |
| execute_cmd.c |
| - fix execute_function to call dispose_function_env after |
| merge_function_env if the shell is in posix mode (fixes debian |
| bash bug #117673) |
| |
| lib/readline/readline.c |
| - rl_forward -> rl_forward_char; rl_forward function for compatibility |
| - rl_backward -> rl_backward_char; rl_forward function for |
| compatibility |
| - new functions, rl_forward_byte, rl_backward_byte, for future use |
| |
| lib/readline/readline.h |
| - extern declarations for rl_forward_char, rl_backward_char, |
| rl_forward_byte, rl_backward_byte |
| |
| lib/readline/{emacs_keymap,funmap,vi_keymap,vi_mode |
| - rl_forward -> rl_forward_char |
| - rl_backward -> rl_backward_char |
| |
| lib/readline/funmap.c |
| - new bindable names, `backward-byte' and `forward-byte' |
| |
| aclocal.m4 |
| - new function, BASH_CHECK_MULTIBYTE, encapsulates checks for |
| multibyte code |
| |
| config.h.in |
| - add necessary defines for multibyte include files and functions |
| |
| configure.in |
| - add call to BASH_CHECK_MULTIBYTE |
| |
| config-bot.h |
| - add code to define HANDLE_MULTIBYTE if prerequisites are met |
| |
| lib/sh/xstrchr.c |
| - new file, xstrchr() is strchr(3) that handles multibyte characters |
| |
| bashhist.c |
| - first_line_saved -> current_command_first_line_saved; variable is |
| now global |
| |
| bashhist.h |
| - extern declaration for current_command_first_line_saved |
| |
| 11/30 |
| ----- |
| bashhist.c |
| - break the code that actually calls add_history out of |
| bash_add_history into a new function, really_add_history; |
| bash_add_history now calls really_add_history |
| - check_add_history takes a second `force' argument telling it |
| whether to call bash_add_history (force == 0) or really_add_history |
| (force != 0) |
| |
| builtins/history.def |
| - in push_history, call delete_last_history if the current command |
| has more than one line, the first line was saved, and |
| command-oriented history is active. This takes care of deleting |
| the right history element if `history -s' is used within a |
| compound or multiline command |
| - in push_history, call check_add_history with second argument of 1 |
| to skip check of current_command_line_count and add the arguments |
| to history -s as a single separate history entry |
| |
| 12/3 |
| ---- |
| lib/readline/complete.c |
| - append a slash to completed names which are symlinks to directories |
| if the new variable _rl_complete_mark_symlink_dirs is non-zero |
| |
| lib/readline/rlprivate.h |
| - extern declaration for _rl_complete_mark_symlink_dirs |
| |
| lib/readline/bind.c |
| - new bindable variable, `mark-symlinked-directories', mirrors the |
| value of _rl_complete_mark_symlink_dirs |
| |
| doc/bash.1, lib/readline/doc/{readline.3,rluser.texinfo} |
| - documented new `mark-symlinked-directories' variable |
| |
| 12/4 |
| ---- |
| variables.[ch] |
| - set_pipestatus_array now takes a second argument with the number |
| of processes in the array |
| - changed set_pipestatus_array to just modify the value in place if |
| the existing array has one element and the new array has one |
| element, and to modify existing values in place if new array has |
| more elements than existing array |
| |
| variables.c, jobs.c |
| - changed set_pipestatus_array callers |
| |
| jobs.c |
| - moved call to setjstatus() from set_job_status_and_cleanup to |
| wait_for, since set_job_status_and_cleanup is part of the SIGCHLD |
| signal handler call path, and race conditions accessing the |
| PIPESTATUS array will result for things like |
| |
| while true; do date; done | cat > /dev/null |
| |
| 12/5 |
| ---- |
| xmalloc.h |
| - don't redefine xmalloc, xrealloc, and xfree if DISABLE_MALLOC_WRAPPERS |
| is #defined |
| |
| config.h.in |
| - #undef for DISABLE_MALLOC_WRAPPERS |
| |
| configure.in |
| - define DISABLE_MALLOC_WRAPPERS if the --with-purify option is |
| supplied |
| |
| lib/malloc/trace.c |
| - new function, malloc_trace_bin(N), traces allocations and frees |
| to bucket N (uses the same type of bitmap as `busy') |
| |
| lib/malloc/table.c |
| - fix wraparound search problem in find_entry when searching for a |
| free entry when the table is full |
| |
| 12/6 |
| ---- |
| lib/malloc/table.c |
| - keep an `overflow bucket' around to use when the table is full, |
| so find_entry always returns a valid pointer when FIND_ALLOC |
| is set |
| - new static variable to keep a count of the number of MT_ALLOC |
| entries in the mem_table |
| |
| lib/sh/{oslib,clktck}.c |
| - if HAVE_LIMITS_H is defined, include <limits.h> |
| |
| lib/sh/oslib.c |
| - new function, getmaxgroups() returns max number of simultaneous |
| groups |
| - new function, getmaxchild(), returns max number of simultaneous |
| user processes |
| |
| general.c |
| - removed forest of #defines for getmaxgroups() |
| |
| externs.h |
| - new extern declaration for getmaxgroups() |
| - new extern declaration for getmaxchild() |
| - new extern declaration for isnetconn() |
| |
| lib/sh/netconn.c,shell.c |
| - new file, isnetconn() from shell.c moved here |
| |
| Makefile.in, lib/sh/Makefile.in |
| - necessary changes for netconn.c |
| |
| builtins/ulimit.def |
| - changed getmaxuprc() to just call getmaxchild() and massage the |
| return value appropriately |
| |
| {jobs,nojobs}.c |
| - use the value returned by getmaxchild() in |
| mark_dead_jobs_as_notified instead of static CHILD_MAX |
| |
| jobs.c |
| - new function, compact_jobs_list, removes some number of jobs from |
| the jobs table and reallocates the table, copying the jobs that |
| are left from the old table to the new. Compaction happens from |
| the beginning of the list and removes dead jobs, and we make sure |
| to keep the last CHILD_MAX jobs as POSIX.2 requires |
| - call compact_jobs_list from stop_pipeline if we're in a subshell, |
| there are no free jobs in the jobs table, and the jobs table is |
| at or above some maximum limit |
| |
| execute_cmd.c |
| - change eval_arith_for_expr to set this_command_name to `((' before |
| calling evalexp, since it might be changed by evaluating the |
| loop body between evalexp calls |
| |
| trap.c |
| - change reset_signal to turn off the SIG_TRAPPED flag for the |
| given signal, so shell builtins and functions running in command |
| substitutions don't run the signal handlers (traps are not supposed |
| to be inherited by command substitutions) |
| |
| parse.y |
| - changed parse_string_to_word_list to turn off alias expansion |
| while parsing the array assignment |
| |
| 12/9 |
| ---- |
| alias.c |
| - fix add_alias so that redefining an alias's value also resets the |
| EXPANDNEXT flag |
| |
| 12/10 |
| ----- |
| parse.y |
| - new function, token_is_assignment, called to check whether the text |
| before `=' makes up a valid assignment token before trying to parse |
| a compound assignment statement |
| - new function, parse_compound_assignment, to parse a compound |
| assignment statement instead of using parse_matched_pair; handles |
| comments and error reporting in the parser instead of waiting until |
| expansion time |
| - changed parse_compound_assignment and parse_string_to_word_list to |
| allow reserved words in compound array assignments |
| |
| lib/readline/doc/rltech.texinfo |
| - changed the documentation for rl_callback_read_char and |
| rl_callback_handler_remove to say what happens to the terminal |
| settings and what needs to be done to reset them |
| |
| 12/11 |
| ----- |
| bashline.c |
| - add emacs_edit_and_execute_command, bound to C-xC-e, like vi-mode |
| `v' command |
| - add bindable command name `edit-and-execute-command', bound to |
| run emacs_edit_and_execute_command() |
| |
| lib/glob/strmatch.c |
| - add support for ksh93-like [:word:] character class (isalnum + `_') |
| |
| doc/{bash.1,bashref.texi} |
| - add note to section describing lists to clarify that a sequence of |
| one or more newlines may be used to delimit a command, equivalent |
| to a semicolon |
| - document new [:word:] pattern matching character class |
| |
| doc/bash.1, lib/readline/doc/rluser.texinfo |
| - document `edit-and-execute-command' and its default emacs-mode |
| binding |
| |
| include/chartypes.h |
| - add defines for TOCTRL and UNCTRL if they're not already defined |
| |
| lib/readline/chardefs.h |
| - #undef UNCTRL if it's defined to avoid cpp redefinition warnings |
| |
| lib/sh/strtrans.c |
| - add \cX (Control-X) escape for $'...' to ansicstr() |
| - change ansic_quote() to allocate at least four chars for each char |
| in the string argument, to account for \0xx octal values |
| - change ansic_quote() to no longer call sprintf for non-printable |
| characters; just translate the string to octal directly |
| |
| print_cmd.c |
| - change xtrace_print_word_list to call ansic_quote() if |
| ansic_shouldquote() indicates that there are nonprinting characters |
| in a word |
| |
| builtins/type.def |
| - changed deprecated long option parsing to just replace the word |
| in the list with the equivalent short option (-type -> -t) instead |
| of removing words from the list |
| - changed describe_command to take a single flags argument instead |
| of two int args; changed caller |
| - type now has two new options: -f suppresses function lookup (like |
| command), and -P forces a PATH search for the name(s) |
| |
| builtins/common.h |
| - flags for describe_command are here |
| - changed extern declaration of describe_command |
| |
| builtins/command.def |
| - changed call to describe_command to use flags from common.h, and |
| the right number of arguments |
| |
| doc/{bash.1,bashref.texi} |
| - documented new -f and -P options to `type' |
| |
| 12/12 |
| ----- |
| lib/readline/rldefs.h |
| - fixed prototype for _rl_strnicmp |
| |
| execute_cmd.c |
| - select_query now takes a new argument, an int flag saying whether |
| or not to print the menu the first time through the loop. An |
| empty line in response to the prompt will always cause the menu |
| to be reprinted |
| - changed execute_select_command to cause select_query to reprint |
| the menu only if REPLY is set to NULL, if KSH_COMPATIBLE_SELECT |
| is defined |
| |
| config-top.h |
| - define KSH_COMPATIBLE_SELECT, with a comment about its meaning |
| |
| lib/readline/readline.c |
| - change rl_insert_comment to toggle if given an explicit numeric |
| argument: if the first characters on the line don't specify a |
| comment, insert one; if they do, delete the comment text |
| |
| doc/bash.1, lib/readline/doc/{readline.3,rluser.texinfo} |
| - documented new behavior of insert-comment with a numeric argument |
| |
| 12/13 |
| ----- |
| lib/malloc/watch.c |
| - new file, implements watchpoint functions |
| |
| lib/malloc/watch.h |
| - new file, define some `events' for watchpoints and extern function |
| and variable declarations for watchpoint code |
| |
| lib/malloc/imalloc.h |
| - #define MALLOC_WATCH if MALLOC_DEBUG is defined |
| - add __P define as in include/stdc.h if not already defined |
| |
| lib/malloc/malloc.c |
| - remove __P define, now in imalloc.h |
| - include watch.h if MALLOC_WATCH is defined |
| - added calls to _malloc_ckwatch in internal_malloc, internal_free, |
| and internal_realloc |
| |
| include/stdc.h |
| - augment __P define to allow prototypes if PROTOTYPES is defined |
| |
| lib/readline/rlstdc.h |
| - augment PARAMS define to allow prototypes if PROTOTYPES is defined |
| |
| lib/malloc/Makefile.in, Makefile.in |
| necessary changes to include watch.c in libmalloc |
| |
| lib/readline/readline.c |
| - fix rl_delete_text to make sure that the starting position is >= 0 |
| - _rl_init_line_state (called by readline via readline_initialize) |
| now sets rl_mark to 0 |
| - rl_get_{next,previous}_history set rl_mark to 0 if rl_point is at |
| the end of the line and rl_end otherwise in emacs mode |
| |
| lib/readline/kill.c |
| - rl_yank_nth_arg_internal and rl_paste_clipboard now set the mark |
| at point before calling rl_insert_text, like rl_yank |
| - rl_kill_full_line now resets rl_mark to 0 |
| - rl_kill_line and rl_backward_kill_line now set rl_mark to the |
| point after the kill in emacs mode |
| - rl_kill_word and rl_backward_kill_word now set rl_mark to the |
| point after the kill in emacs mode |
| - rl_unix_word_rubout and rl_unix_line_discard now set rl_mark to |
| the point after the kill in emacs mode |
| |
| lib/readline/search.c |
| - noninc_search saves and restores the mark, since it can be changed |
| while reading the search string |
| - noninc_dosearch sets the mark at the end of the line, making the |
| region bound the `inserted' text since rl_point is set to 0 |
| - rl_history_search_internal sets the mark at the end of the line, |
| for the same reason |
| |
| lib/readline/isearch.c |
| - rl_search_history now saves and restores the mark |
| - if no matching lines are found at all when doing an isearch, leave |
| point where it was instead of moving it to the end of the line |
| |
| 12/17 |
| ----- |
| lib/readline/rlmbutil.h |
| - new file, place for multi-byte character defines and extern |
| declarations |
| |
| lib/readline/{bind.c,readline.c,rlprivate.h} |
| - new bindable variable, `byte-oriented', tracks value of |
| rl_byte_oriented variable |
| |
| lib/readline/mbutil.c |
| - new file, with multibyte char utility functions |
| |
| lib/readline/{complete,display,readline,util,vi_mode}.c |
| - new code for multibyte characters, derived from IBM patch |
| |
| 12/18 |
| ----- |
| lib/sh/tmpfile.c |
| - include posixtime.h for time() extern declaration |
| |
| support/bashversion.c |
| - include <unistd.h> if it's available |
| |
| lib/readline/{histexpand,input,isearch,search}.c |
| - new code for multibyte characters, derived from IBM patch |
| |
| lib/readline/readline.h |
| - include rltypedefs.h |
| |
| 12/19 |
| ----- |
| lib/readline/complete.c |
| - slight change to mark-directories code to avoid adding a slash if |
| point is at the end of the line (rl_line_buffer[rl_point] == '\0') |
| and the previous character was a slash |
| - change printable_part to not return empty pathnames, which could |
| happen when completing filenames and a filename with a trailing |
| slash was passed as the argument. If the portion following the |
| trailing slash is NULL, ignore it and look for a previous slash. |
| If there's no previous slash, just return the filename argument |
| - new variable, rl_completion_mark_symlink_dirs, mirrors the value |
| of (user-settable with a variable) _rl_complete_mark_symlink_dirs |
| but may be modified by application-specific completion functions |
| when appropriate (set in rl_complete_internal and rl_menu_complete) |
| |
| lib/readline/readline.h |
| - extern declaration for rl_completion_mark_symlink_dirs |
| |
| pcomplete.c |
| - if one of the actions is CA_DIRECTORY, set |
| rl_completion_mark_symlink_dirs to indicate that we want the |
| trailing slash (might have to relax this) |
| |
| lib/readline/doc/rltech.texinfo |
| - documented rl_completion_mark_symlink_dirs variable |
| |
| lib/readline/doc/rluser.texinfo, doc/bash.1 |
| - documented the fact that `complete -d' and `complete -o dirnames' |
| force readline to append a slash to symlinks to directories |
| |
| builtins/enable.def |
| - changed enable_shell_builtin to disallow enabling disabled |
| builtins in a restricted shell |
| |
| doc/{bash.1,bashref.texi} |
| - documented new enable behavior in restricted shells |
| |
| doc/Makefile.in |
| - new rule to make an `RBASH' file documenting the restrictions |
| imposed by a restricted shell |
| |
| expr.c |
| - broke the code that evaluates variables and returns results out |
| of readtok() into a new function: expr_streval() |
| - expr_streval() now performs the standard unset variable error |
| behavior if `set -u' has been executed and it's asked to look |
| up an unset variable |
| - broke the code that frees up the expression context stack into |
| a new function: expr_unwind() |
| |
| variables.c |
| - fixed bind_int_variable so it handles array element assignment, |
| so expressions like `b[7]++' and `b[0] = 42' work right |
| - new function, get_variable_value, returns the string value of |
| the SHELL_VAR * passed as an argument |
| - get_string_value now calls get_variable_value with a non-null |
| result from find_variable |
| |
| 12/20 |
| ----- |
| lib/readline/rlmbutil.h, mbutil.c |
| - combined _rl_find_next_mbchar and _rl_find_next_nonzero_mbchar into |
| a single function |
| - combined _rl_find_prev_mbchar and _rl_find_prev_nonzero_mbchar into |
| a single function |
| |
| lib/readline/{display,readline,vi_mode}.c |
| - changed callers of _rl_find_next_mbchar and |
| _rl_find_next_nonzero_mbchar |
| |
| lib/readline/{complete,display,histexpand,readline,vi_mode}.c |
| - changed callers of _rl_find_prev_mbchar and |
| _rl_find_prev_nonzero_mbchar |
| |
| 12/20 |
| ----- |
| lib/sh/mktime.c |
| - new file, from glibc/gawk, compiled in if system doesn't have a |
| working mktime(3) |
| |
| lib/sh/strftime.c |
| - new file, from gawk, compiled in if system doesn't have a |
| working strftime(3) |
| |
| lib/sh/Makefile.in, Makefile.in |
| - changes for mktime.c, strftime.c |
| |
| configure.in |
| - call AC_FUNC_MKTIME, AC_STRUCT_TM, AC_STRUCT_TIMEZONE |
| - call AC_REPLACE_FUNC(strftime) |
| |
| config.h.in |
| - add defines for TM_IN_SYS_TIME, HAVE_TZSET, HAVE_TM_ZONE, |
| HAVE_STRUCT_TM_TM_ZONE, HAVE_STRFTIME |
| |
| externs.h |
| - provide an extern declaration for strftime if HAVE_STRFTIME is |
| not defined and NEED_STRFTIME_DECL is |
| |
| lib/tilde/tilde.h |
| - header files should not include <config.h> |
| |
| parse.y |
| - replace code in decode_prompt_string that chops up value returned |
| by ctime(3) with calls to strftime -- as a result, the expansion |
| of \@ has changed slightly (since it depends on the locale) |
| - added new \D{format} prompt string escape; `format' is passed to |
| strftime(3). Empty format is the same as `%X' (locale-specific |
| representation of the current time) |
| - combined cases for '\\', '\a', '\e', and '\r' in same case branch |
| in decode_prompt_string |
| |
| doc/{bash.1,bashref.texi} |
| - documented new \D{format} prompt string expansion |
| |
| builtins/printf.def |
| - use ISO C PRIdMAX instead of INTMAX_CONV |
| - pass length of format modifiers to mklong instead of computing it |
| with strlen() |
| |
| lib/sh/{fmtulong,fmtullong}.c |
| - changes from Paul Eggert to make more general |
| |
| arrayfunc.c |
| - when converting a variable to an array, make sure to unset the |
| dynamic_value and assign_func members of the struct variable, |
| since they're not valid anymore |
| |
| 12/27 |
| ----- |
| configure.in |
| - use AC_HELP_STRING in AC_ARG_WITH and AC_ARG_ENABLE |
| - remove AC_ARG_ENABLE for largefile, since AC_SYS_LARGEFILE adds |
| one |
| |
| 1/2/2002 |
| -------- |
| {alias,bashline,execute_cmd,general,shell,subst,variables,arrayfunc}.c,general.h |
| - changed some calls to strchr to calls to xstrchr for multibyte |
| characters |
| |
| include/shmbutil.h |
| - add extern declaration for xstrchr to avoid including externs.h |
| where it's not appropriate |
| |
| {braces,make_cmd,pathexp,subst,arrayfunc}.c, lib/sh/xstrchr.c |
| - include shmbutil.h |
| |
| {stringlib,subst}.c, {externs,subst}.h |
| - moved substring() from subst.c to stringlib.c, moved declaration |
| from subst.h to externs.h |
| |
| lib/sh/xmbsrtowcs.c |
| - new file, replacement function for mbsrtowcs |
| |
| lib/sh/Makefile.in |
| - add entries for xmbsrtowcs.c |
| |
| Makefile.in |
| - add dependencies on shmbutil.h to appropriate object files |
| |
| lib/glob/strmatch.c |
| - break character-class testing out into separate function: |
| is_cclass, in prep for multibyte changes |
| |
| {braces,make_cmd}.c |
| - changes for multibyte characters |
| |
| builtins/printf.def |
| - changes from Paul Eggert to just use intmax_t everywhere an |
| int/long/quad is needed and print with "%ld" if the number |
| fits in a long and %PRIdMAX otherwise |
| - remove getlong, getulong, getllong, getullong, since they're |
| no longer needed |
| - use a new type `floatmax_t' to print floating point numbers, the |
| widest-available floating point type (like `intmax_t'); new |
| function `getfloatmax' that calls strtold or strtod as appropriate |
| - remove getdouble, getldouble, since they're no longer needed |
| |
| lib/sh/fmtumax.c |
| - new file, string-to-[u]intmax_t conversion, just includes |
| fmtulong.c with the right defines |
| |
| Makefile.in, lib/sh/Makefile.in |
| - additions for fmtumax.c |
| |
| bashtypes.h |
| - include <inttypes.h> if it's available |
| |
| expr.c |
| - arithmetic is now in intmax_t instead of long |
| |
| externs.h |
| - extern declaration for fmtumax |
| - change extern declarations for evalexp, itos, inttostr, |
| uitos, uinttostr since they now return or use intmax_t instead |
| of long |
| |
| {execute_cmd,general,mailcheck,subst,variables}.c, parse.y |
| {array,general,subst,test,variables}.h |
| lib/sh/{itos,netopen}.c |
| builtins/{bashgetopt,common}.c, builtins/common.h |
| builtins/{break,fc,history,jobs,let,printf,pushd,read,shift,wait}.def |
| - changes for intmax_t shell arithmetic conversion |
| |
| doc/{bashref.texi,bash.1} |
| - documented long->intmax_t shell arithmetic conversion |
| |
| sig.c |
| - in initialize_terminating_signals, if we've already trapped a |
| terminating signal, don't reset the signal handler for it |
| |
| 1/3 |
| --- |
| {arrayfunc,pathexp}.c, parse.y |
| - changes for multibyte chars |
| |
| parse.y, lib/sh/strtrans.c |
| - moved ansiexpand from parse.y to lib/sh/strtrans.c |
| |
| parse.y, locale.c |
| - moved mk_msgstr and localeexpand from parse.y to locale.c |
| |
| parse.y |
| - new function, yy_input_name, returns name of input file from |
| bash_input.name |
| - broke the code that parses ((...)) constructs out of read_token |
| into a new function, parse_dparen() |
| |
| externs.h |
| - new extern declaration for ansiexpand(), mk_msgstr(), and |
| localeexpand() |
| |
| input.h |
| - new extern declaration for yy_input_name() |
| |
| {error,locale}.c |
| - use yy_input_name for error and other messages |
| |
| execute_cmd.c |
| - change shell_execve to make sure that the file is executable |
| before looking at the interpreter to find out why the execve() |
| failed (avoids misleading error message) |
| |
| lib/glob/glob.c |
| - move code that matches leading `.' and skips those filenames into |
| a separate function: skipname(), so there can be unibyte and |
| multibyte versions of that function |
| |
| 1/7 |
| --- |
| subst.c |
| - more changes for multibyte characters |
| |
| print_cmd.c |
| - change semicolon() so it doesn't output a `;' immediately after a |
| newline, since that results in a null command, which is a syntax |
| error |
| |
| variables.c |
| - fix indirection_level_string to turn off set -x while evaluating |
| PS4 |
| |
| 1/8 |
| --- |
| builtins/set.def |
| - make -o options into one struct, instead of separate structs for |
| option names corresponding to flags and non-flag option names. |
| This has the side effect of sorting the option names in output |
| |
| lib/glob/glob.c |
| - new function, mbskipname(), multibyte char version of skipname() |
| - removed all #ifndef SHELL code, this will never be used outside |
| the shell |
| |
| include/posixdir.h |
| - move REAL_DIR_ENTRY define here from lib/glob/glob.c |
| |
| lib/glob/glob_loop.c |
| - new file, included in glob.c for unibyte and multibyte versions of |
| glob_pattern_p |
| - added some forward static function declarations with prototypes |
| - more changes for multibyte character handling |
| |
| lib/glob/Makefile.in |
| - make glob.c depend on glob_loop.c |
| - changes for xmbsrtowcs.[co] |
| |
| lib/glob/xmbsrtowcs.c |
| - moved here from lib/sh, since the matching functions use it, and |
| libglob.a is linked after libsh.a |
| |
| 1/9 |
| --- |
| lib/glob/smatch.c |
| - new file, with strmatch (now xstrmatch) and associated functions, |
| with changes for multibyte chars |
| |
| lib/glob/sm_loop.c |
| - new file, included by smatch.c, with `generic' versions of matching |
| functions that are compiled twice: once each for single-byte and |
| multibyte characters |
| |
| lib/glob/strmatch.c |
| - strip out everything except strmatch(), which either calls fnmatch |
| (if HAVE_LIBC_FNM_EXTMATCH is defined) or xstrmatch |
| |
| lib/glob/collsyms.c |
| - changes for multibyte chars |
| |
| lib/glob/Makefile.in, Makefile.in |
| - changes for new source files |
| |
| 1/10 |
| ---- |
| lib/readline/complete.c |
| - new function, rl_completion_mode (rl_command_func_t *func), returns |
| the appropriate value to pass to rl_complete_internal depending on |
| FUNC and the value of `show-all-if-ambiguous'. This allows |
| application completion functions to present the same interface as |
| rl_complete |
| |
| lib/readline/readline.h |
| - new extern declaration for rl_completion_mode() |
| |
| lib/readline/doc/rltech.texinfo |
| - documented rl_completion_mode |
| |
| lib/readline/readline.[ch] |
| - bumped the version number to 4.3, changing the relevant cpp defines |
| |
| configure.in |
| - require that an installed readline version be at least readline-4.3 |
| |
| bashline.c |
| - converted bash-specific completion functions to use |
| rl_completion_mode instead of passing TAB unconditionally |
| |
| builtins/bashgetopt.c |
| - the `#' option specifier now means a required numeric argument, |
| not an optional one |
| |
| builtins/type.def |
| - when converting [-]-{path,type,all} to -[pta], don't bother |
| freeing and reallocating the option string; just change opt[1] |
| and null opt[2] |
| |
| lib/sh/snprintf.c |
| - support %ls/%S and %lc/%C for wide strings and characters, |
| respectively, if HANDLE_MULTIBYTE is defined |
| |
| mailcheck.c |
| - don't print a message about new mail if the file has not grown, |
| even if the access time is less than the modification time |
| |
| 1/14 |
| ---- |
| lib/readline/readline.c |
| - new function, rl_replace_line, to replace the readline line buffer |
| with the text supplied as an argument |
| - new function, rl_replace_from_history, replaces readline line |
| buffer with text from history entry passed as argument (undocumented, |
| not in readline.h because it requires a definition of |
| HIST_ENTRY for the prototype) |
| |
| lib/readline/readlne.h |
| - new extern declaration for rl_replace_line |
| |
| lib/readline/doc/rltech.texinfo |
| - documented rl_replace_line |
| |
| lib/readline/{isearch,readline,search}.c |
| - use rl_replace_line and rl_replace_from_history where appropriate |
| |
| lib/readline/readline.c |
| - broke the code that sets point after moving through the history |
| (_rl_history_preserve_point and _rl_history_saved_point) out |
| into a separate function, _rl_history_set_point() |
| |
| lib/readline/{complete.c,rlprivate.h} |
| - find_completion_word -> _rl_find_completion_word |
| - free_match_list -> _rl_free_match_list |
| |
| lib/readline/complete.c |
| - postprocess_matches and _rl_free_match_list now return immediately |
| if passed a null match list |
| |
| variables.c |
| - new function, find_local_variable, finds a local variable by name |
| at the current variable context |
| - in find_variable_internal, call find_local_variable before searching |
| any of the temporary environments if variable_context > 0 (meaning |
| we're in a shell function). This lets a local variable |
| override a variable whose value was passed in the `function |
| environment' |
| |
| 1/15 |
| ---- |
| variables.h, execute_cmd.c |
| - declare variables describing the temporary environments in |
| variables.h instead of in C files |
| |
| findcmd.c, builtins/setattr.def |
| - instead of calling find_tempenv_variable, use find_variable_internal |
| and check whether the returned SHELL_VAR * has the tempvar |
| attribute |
| |
| variables.c |
| - tentative change to lookup order in find_variable_internal so that |
| function local variables are found before variables in |
| function_env when executing a shell function |
| - change make_local_variable to handle making a local variable when |
| a variable with the same name already appears in one of the |
| temporary environments |
| - broke the body of make_var_array out into a new function: |
| static char **make_env_array_from_var_list (SHELL_VAR **vars) |
| - new function, make_var_array_internal, takes a hash table to look |
| in and a pointer to a mapping function and returns a char ** |
| environment-style list |
| - make_var_array now just calls make_var_array_internal |
| - new mapping function, local_and_exported, returns all local variables |
| in the current variable context with the export attribute set |
| - new function, make_local_export_array, returns an environment-style |
| char ** array of exported local variables in current context |
| - change environment creation order in maybe_make_export_env to |
| add variables to the environment in opposite order that |
| find_variable_internal uses. This means that local variables in |
| shell functions override variables with the same name in the |
| function_env |
| - change make_local_variable to set the initial value of the |
| variable it creates to NULL to make the `is set' and `is null' |
| tests that the expansion code does work right |
| - change make_local_variable to inherit the value of a variable with |
| the same name from the temporary enviroment |
| |
| 1/16 |
| ---- |
| Makefile.in |
| - link bashversion with buildversion.o instead of version.o, for |
| cross-compiling. version.o is for the target system; |
| buildversion.o is for the build system |
| |
| error.c |
| - add line numbers to internal_error() messages if the shell is |
| not interactive and running a shell script or a -c command |
| - report_error now prints non-zero line numbers for non-interactive |
| shells |
| |
| test.c |
| - test_syntax_error now calls builtin_error() instead of printing |
| its own messages |
| |
| builtins/common.c |
| - builtin_error now prints line numbers if a non-interactive shell |
| is running a shell script or a -c command |
| |
| print_cmd.c |
| - in cprintf, remove free_argp, since it's not used |
| |
| builtins/history.def |
| - make `history -n' increment the number of history lines in this |
| session by the number of lines read from the history file |
| |
| arrayfunc.c |
| - fix array_value_internal to expand the subscript even if the |
| variable is unset, so side effects produced by the arithmetic |
| evaluation will take place |
| |
| lib/readline/doc/{rluser,rltech}.texinfo |
| - some fixes for printing in @smallbook format from Brian |
| Youmans |
| |
| 1/17 |
| ---- |
| jobs.h |
| - new PRUNNING, PSTOPPED, PDEADPROC defines for PROCESSes, analogous |
| to RUNNING, STOPPED, and DEADJOB defines for jobs |
| |
| jobs.c |
| - use PS_RUNNING, PS_DONE, PS_STOPPED values for `running' field |
| of a PROCESS |
| - find_pipeline and find_job now take an additional flags argument |
| that, if non-zero, means to find only running processes; changed |
| all callers |
| - changed calls to find_pipeline and find_job made from waitchld |
| to find only running processes |
| - find_pipeline takes a third argument: an int *. If it looks in |
| the jobs list to find the pid, and the arg is non-null, it passes |
| the job index back to the caller. Used to avoid calls to |
| find_pipeline immediately followed by find_job with the same PID |
| |
| nojobs.c |
| - a couple of changes to make sure that set_pid_status is never |
| called with a pid argument of 0 or -1 |
| |
| trap.c |
| - change trap_handler to longjmp to wait_intr_buf (set by wait_builtin) |
| if a signal is received for which a trap has been set during |
| execution of the wait builtin (need to include builtins.h and |
| builtins/builtext.h and declare some extern variables for the |
| right things to check) |
| - new variable to keep track of which signal caused the longjmp to |
| wait_intr_buf, set by trap_handler (wait_signal_received) |
| |
| builtins/wait.def |
| - set the return value of wait when a longjmp(wait_intr_buf, 1) is |
| done to 128 + wait_signal_received |
| |
| {jobs,nojobs}.c |
| - set wait_signal_received to SIGINT in wait_sigint_handler before |
| the longjmp(wait_intr_buf, 1) |
| |
| 1/18 |
| ---- |
| bashline.c |
| - turn off rl_filename_completion_desired when completing a command |
| name with a single match only if the first char of that match is |
| not a `/' |
| - if there are multiple identical matches for a command name in |
| attempt_shell_completion, turn off rl_filename_completion_desired |
| if the first char is not a `/' to avoid readline appending a |
| slash if there's a directory with the same name in the current |
| directory |
| |
| 1/22 |
| ---- |
| lib/readline/complete.c |
| - new variable, _rl_page_completions, to control whether we want to |
| run the internal pager when listing completions (defaults to 1) |
| |
| lib/readline/rlprivate.h |
| - extern declaration for _rl_page_completions |
| |
| lib/readline/bind.c |
| - new bindable variable, `page-completions', controls value of |
| _rl_page_completions |
| |
| lib/readline/doc/{rluser.texinfo,readline.3}, doc/bash.1 |
| - documented `page-completions' variable |
| |
| Makefile.in |
| - use $(INSTALL_SCRIPT) instead of $(INSTALL_PROGRAM) to install |
| `bashbug' |
| |
| aclocal.m4 |
| - fix small quoting problem in RL_LIB_READLINE_VERSION macro |
| |
| lib/readline/terminal.c |
| - fetch and save terminal's `vs' and `ve' cursor control attributes |
| - fetch and save terminal's `kI' attribute (string sent by Insert) |
| - new function, _rl_set_cursor, sets cursor to normal (insert mode) |
| or very visible (overwrite mode) |
| |
| lib/readline/readline.c |
| - new global variable, rl_insert_mode |
| - new function to toggle overwrite mode, rl_overwrite_mode |
| - each new line starts in insert mode |
| - switching to vi mode or emacs mode resets to insert mode |
| - reset cursor to normal before returning line |
| - _rl_replace_text now returns the number of characters inserted, |
| the return value from rl_insert_text |
| - new function, _rl_insert_or_replace_text (const char *string, int insert), |
| either inserts STRING or replaces the number of chars in STRING |
| with STRING starting at rl_point, depending on value of INSERT |
| - renamed rl_insert to _rl_insert_char, rl_insert just calls |
| _rl_insert_char with the same arguments when in insert mode |
| - new function, _rl_overwrite_char, handles self-insert in overwrite |
| mode. Does multibyte chars by reading an entire multibyte character |
| before entering overwrite loop |
| - new function, _rl_overwrite_rubout, handles RUBOUT when in |
| overwrite mode, called from rl_rubout |
| - new function, _rl_rubout_char, old body of rl_rubout; rl_rubout |
| calls this when not in overwrite mode |
| |
| lib/readline/readline.h |
| - extern declarations for rl_insert_mode and rl_overwrite_mode() |
| |
| lib/readline/rldefs.h |
| - define constants for values of rl_insert_mode |
| |
| lib/readline/rlprivate.h |
| - extern declarations for _rl_set_cursor and _rl_set_insert_mode |
| - change type of _rl_replace_text to return int |
| - extern declarations for _rl_insert_char, _rl_rubout_char |
| |
| lib/readline/funmap.c |
| - new bindable name `overwrite-mode', bound to rl_overwrite_mode |
| |
| lib/readline/rlconf.h |
| - define CURSOR_MODE if you want the cursor to show insert or |
| overwrite mode (only available if both `vs' and `ve' capabilities |
| are present) |
| |
| lib/readline/{complete,parens,readline,search,vi_mode}.c |
| - change calls to rl_insert to _rl_insert_char |
| |
| lib/readline/{readline,search}.c |
| - change calls to rl_rubout to _rl_rubout_char to avoid overwrite |
| mode problems |
| |
| lib/readline/vi_mode.c |
| - fix rl_vi_overstrike to just call _rl_overwrite_char, which |
| handles multibyte chars |
| |
| lib/readline/doc/{rluser.texinfo,readline.3}, doc/bash.1 |
| - document new `overwrite-mode' command |
| |
| 1/23 |
| ---- |
| lib/readline/readline.c |
| - return 0 immediately from rl_insert_text if the string to insert |
| is NULL or "" |
| |
| bashline.c |
| - if a numeric argument is given to one of the bash-specific glob |
| pattern completion functions (including TAB), append a `*' to |
| the word before generating matches |
| - in attempt_shell_completion, when doing glob completion, only |
| set the match list to NULL if rl_completion_type == TAB and |
| there is more than one completion. This permits listing completions |
| with double tabs and displaying ambiguous completions |
| - new function, bash_glob_complete_word, appends a `*' to the word |
| to be completed and then globs it. It uses a new filename |
| quoting function (bash_glob_quote_filename) to avoid quoting |
| globbing characters in the filename if there are no matches or |
| multiple matches |
| |
| lib/readline/complete.c |
| - set completion_changed_buffer to 0 in rl_complete_internal if |
| no matches were produced by the completion generator function |
| - new variable, rl_completion_suppress_append, suppresses appending |
| of rl_completion_append_character. Settable by application |
| completion functions, always 0 when application completion |
| functions are called (set to 0 by rl_complete_internal and |
| rl_menu_complete) |
| - broke the code that assigns default values to readline completion |
| variables out of rl_complete_internal and rl_menu_complete into |
| a new function, set_completion_defaults (int what_to_do) |
| |
| lib/readline/readline.h |
| - extern declaration for rl_completion_suppress_append |
| |
| lib/readline/doc/rluser.texinfo, doc/bash.1 |
| - documented behavior of glob-expand-word and glob-list-expansions |
| when supplied a numeric argument |
| - documented glob-complete-word |
| |
| lib/readline/doc/rltech.texinfo |
| - documented rl_completion_suppress_append |
| |
| 1/24 |
| ---- |
| lib/readline/text.c |
| - new file, text and character handling functions from readline.c |
| |
| lib/readline/misc.c |
| - new file, miscellanous bindable functions and their supporting |
| code from readline.c |
| |
| Makefile.in, lib/readline/Makefile.in |
| - changes for text.c, misc.c |
| |
| lib/readline/bind.c |
| - change ISKMAP case of rl_invoking_keyseqs_in_map to output |
| ESC as "\M-" instead of "\e" -- it's closer to the documentation |
| - change _rl_get_keyname to output ESC as \e instead of \C-[ |
| (it's easier to understand) |
| |
| pcomplete.h |
| - new flag, COPT_NOSPACE |
| |
| builtins/complete.def |
| - new `-o nospace' option for complete and compgen (though it doesn't |
| really do anything for compgen, since that doesn't hand anything |
| off to readline) |
| |
| bashline.c |
| - if a programmable completion specifies COPT_NOSPACE, set |
| rl_completion_suppress_append = 1 |
| |
| lib/readline/doc/rluser.texinfo |
| - documented new `-o nospace' option to complete and compgen |
| |
| doc/{bash.1,bashref.texi} |
| - documented $'\cX' escape sequence (forgot to before) |
| |
| 1/28 |
| ---- |
| variables.c |
| - make_new_variable now takes the HASH_TABLE * as its second |
| argument; changed callers |
| - new function, bind_variable_in_table, takes the HASH_TABLE * as |
| its third paramter; bind_variable calls bind_variable_in_table |
| with shell_variables as third argument |
| |
| variables.h |
| - new struct var_context, variable context (per-scope -- global, |
| function local, etc.) |
| |
| variables.[ch],builtins/common.[ch] |
| - moved functions that push and pop a variable context from |
| builtins/common.c to variables.c; move extern function |
| declarations to variables.h |
| - new function, all_local_variables |
| - variable_in_context is now static, used only by all_local_variables |
| |
| variables.[ch],execute_cmd.c |
| - push_context now takes the function name as an argument for |
| future use |
| - push_context takes an indication of whether or not the function is |
| executing in a subshell and saves the positional parameters only |
| if not in a subshell |
| - new functions for managing a stack of variable contexts and |
| scopes: new_var_context, dispose_var_context, push_var_context, |
| pop_var_context, push_scope, pop_scope |
| |
| builtins/declare.def |
| - call all_local_variables instead of map_over (...) in declare_internal |
| - don't call make_local_variable if we're looking at functions |
| ((flags_on & att_function) != 0), since it's wasted |
| - make sure VAR is set to NULL if check for variable_context fails |
| and we didn't just create or fetch a local variable in |
| declare_internal |
| - in non-function branch of declare_internal, only call find_variable |
| if VAR is NULL -- if it's not null, we just created or fetched a |
| local variable and don't need to do it again |
| |
| 1/29 |
| ---- |
| variables.[ch] |
| - the temporary environments (temporary_env, builtin_env, function_env) |
| are now HASH_TABLEs instead of argv-style arrays of strings (this |
| is an intermediate step on the way to the new lcc-inspired symbol |
| table scope structure) |
| - new internal attribute for variables: att_propagate. This means |
| to propagate the value out of the temporary environment up the |
| (for now implicit) chain of variable scopes when the containing |
| temporary environment is deleted |
| |
| variables.c |
| - assign_in_env now adds to the HASH_TABLE temporary_env instead |
| of making environment-style strings in an array of strings |
| - changed the way the temporary environments are merged into the |
| shell variable table to account for the new HASH_TABLE temp |
| environments |
| - changed the way the export environment is created due to the new |
| structure of the temporary environments |
| - new function, bind_variable_internal (name, value, table), binds |
| NAME to have VALUE in TABLE without searching the temporary |
| environments |
| - removed: shell_var_from_env_string, bind_name_in_env_array |
| - variable_in_context now checks the att_local attribute and makes |
| sure the variable is not invisible |
| - local_and_exported now makes sure the variable is not invisible |
| |
| execute_cmd.c |
| - we no longer need to copy the temporary environment to function_env |
| or builtin_env, we can simply use variable assignments |
| |
| {findcmd,subst,variables}.c, builtins/{declare,setattr}.def |
| - since variables from the temporary environments are no longer turned |
| into SHELL_VARs on the fly, don't dispose the SHELL_VAR returned |
| by find_variable or find_variable_internal |
| - need to savestring() the value returned by find_variable if it has |
| the tempvar attribute before calling bind_variable on it, because |
| bind_variable will search and bind into the temporary environments |
| and will free the old value before binding the new. For temporary |
| environments, these two pointers will be the same, and |
| bind_tempenv_variable will end up using freed memory |
| |
| builtins/{declare,setattr}.def |
| - set the att_propagate attribute when exporting or making readonly |
| variables from the temp environment (i.e., `var=value declare -x var' |
| or `var=value export var' sets the propagate attribute on the entry |
| for `var' in the temporary environment HASH_TABLE) |
| |
| lib/readline/isearch.c |
| - ^W when reading isearch string yanks the current word out of the |
| current line into the search string, skipping the portion already |
| matched |
| - ^Y when reading isearch string yanks the rest of the current line |
| into the search string, skipping the portion already matched |
| |
| 1/30 |
| ---- |
| {print_cmd,variables}.c |
| - moved indirection_level_string() from variables.c to print_cmd.c |
| |
| {externs,variables}.h |
| - moved extern declaration of indirection_level_string to externs.h |
| |
| {general,variables}.c |
| - moved assignment() from variables.c to general.c |
| |
| {general,variables}.h |
| - moved extern declaration of assignment() to general.h |
| |
| {externs,input}.h |
| - moved extern declaration of decode_prompt_string to externs.h |
| |
| print_cmd.c |
| - include flags.h, don't include stdc.h |
| |
| variables.c |
| - moved some functions around to group functions better |
| - changed new_shell_variable to explicitly initialize each member |
| of the created struct variable instead of calling bzero() |
| - make_new_variable now just calls new_shell_variable instead |
| of duplicating what it does |
| - removed some code in bind_function that duplicated what |
| new_variable does on the newly-created SHELL_VAR |
| - since there are no local function variables (functions are always |
| made at the global scope), kill_all_local_variables() doesn't |
| need to consider functions |
| |
| 1/31 |
| ---- |
| variables.c |
| - sort the array of special variables |
| - short-circuit the search in stupidly_hack_special_variables if |
| the passed name can't be found in the rest of the array |
| (that is, if name[0] < special_vars[i].name[0]) |
| |
| lib/readline/history.c |
| - unstifle_history() was returning values exactly opposite of |
| the documentation |
| |
| lib/readline/doc/{hsuser.texinfo,history.3} |
| - clarified the unstifle_history() documentation a little |
| |
| 2/4 |
| --- |
| variables.c |
| - in bind_variable, don't call bind_tempenv_variable after a |
| find_tempenv_variable succeeds -- just change the value inline. |
| There's no reason to look it up twice |
| - change makunbound to only call stupidly_hack_special_variables |
| if we're not unsetting a function |
| |
| variables.[ch] |
| - new function, unbind_function, like makunbound but doesn't mess |
| with previous contexts or calling stupidly_hack_special_variables |
| |
| builtins/set.def |
| - change unset_builtin to call either unbind_func or unbind_variable |
| |
| builtins/getopts.def |
| - call unbind_variable(name) instead of makunbound(name, shell_variables) |
| |
| 2/5 |
| --- |
| lib/glob/sm_loop.c |
| - use malloc instead of xmalloc in BRACKMATCH and handle failures |
| |
| error.c |
| - add extern declaration of executing_line_number with prototype, |
| since execute_cmd.h can't be included without including other |
| files |
| |
| lib/readline/parens.c |
| - include <unistd.h> |
| |
| lib/malloc/stats.c |
| - include <unistd.h> |
| - add extern declaration of malloc_free_blocks() with prototype |
| |
| pathexp.c |
| - added some forward declarations with prototypes for static functions |
| |
| lib/readline/rlprivate.h |
| - removed declarations of rl_untranslate_keyseq, rl_discard_argument, |
| rl_stop_output, rl_alphabetic since they appear in readline.h |
| |
| 2/6 |
| --- |
| {arrayfunc,execute_cmd,pcomplete,shell}.c |
| - change calls to makunbound(name, shell_variables) to |
| unbind_variable (name) |
| |
| 2/7 |
| --- |
| builtins/getopt.c |
| - don't defer incrementing of OPTIND when an invalid option is |
| encountered until the next call to sh_getopt() -- what if OPTIND |
| is reset before that next call? This means that OPTIND is always |
| incremented to the next option to be handled when an option is |
| returned, whether it's valid or not. This is what POSIX-2002 |
| says to do. |
| |
| syntax.h |
| - new #define, CSUBSTOP |
| |
| mksyntax.c |
| - add "-=?+" with value CSUBSTOP to the syntax table. These are the |
| valid expansion operators OP in ${param[:]OPword} |
| |
| subst.c |
| - use table lookup for CSUBSTOP in VALID_PARAM_EXPAND_CHAR |
| - new flags for the string extraction functions: EX_NOALLOC. This |
| indicates that the functions are being used only to skip over |
| strings and the result won't be used, so the substring shouldn't |
| be allocated, copied, and freed |
| - new flag for string_extract: EX_VARNAME. This serves the same |
| purpose as the old `varname' parameter. parameter_brace_expand() |
| changed appropriately |
| - extract_delimited_string and extract_dollar_brace_string now take |
| an additional `flags' argument, which may include EX_NOALLOC |
| - changed callers of extract_delimited_string and |
| extract_dollar_brace_string appropriately |
| - string_extract now understands EX_NOALLOC; callers changed |
| - some smaller code cleanups |
| - converted char_is_quoted(), unclosed_pair(), and skip_to_delim() |
| to understand multibyte characters |
| |
| 2/11 |
| ---- |
| variables.[ch] |
| - moved to a symbol organization inspired by lcc. The basic structure |
| is no longer a HASH_TABLE, but a VAR_CONTEXT, which includes a hash |
| table as one of its members. VAR_CONTEXTs are linked together to do |
| variable scoping. One nice thing about this is that the entire |
| symbol table doesn't need to be searched at function scope exit to |
| remove local variables. Fixes problems with only one instance of |
| builtin_env and function_env, even though it really is a stack |
| - shell_variables is now a VAR_CONTEXT *, with a global_variables |
| variable that points to the bottom of the stack for fast access |
| - function-scope local variables (assignments specified on the command |
| line before a function call) and function-local variables (declared |
| with the `local' builtin) have been unified in the same variable |
| context, replacing function_env |
| - assignment statements preceding the `.' and `eval' builtins are now |
| a separate variable scope VAR_CONTEXT, replacing builtin_env |
| - temporary_env (a HASH_TABLE) is now the only separate environment |
| - changes to export environment creation, variable binding, variable |
| lookup, local variable propagation all changed to work with the |
| new symbol table/scope structure |
| - a SHELL_VAR no longer has a `prev_context' member; it's not needed |
| |
| execute_cmd.c |
| - changes to push_context calls to include any temporary variables in |
| temporary_env; pop_context takes care of propagating any temporary |
| variables if necessary |
| - calls to push_scope if `eval' or `.' is called with a list of |
| preceding variable assignments, and pop_scope called at end of |
| builtin's execution. pop_scope takes care of merging temporary |
| variables into the shell environment when appropriate |
| |
| builtins/{setattr,declare}.def |
| - changes to account for variable assignments preceding `local', |
| `export', `readonly', `declare', etc. to work with the new |
| variable scoping implementation |
| |
| shell.c |
| - since shell_variables is now a VAR_CONTEXT, call |
| delete_all_contexts() when the shell is reinitializing instead of |
| delete_all_variables() |
| |
| builtins/common.c |
| - new function, get_job_by_name(), used by execute_simple_command() |
| for the `auto_resume' stuff and get_job_spec() |
| |
| builtins/common.h |
| - new set of #defined constants for flags argument to |
| get_job_by_name() |
| |
| 2/12 |
| ---- |
| command.h |
| - new redirection operator: r_reading_string for `here strings' |
| |
| parse.y |
| - new token, LESS_LESS_LESS, for new redirection `here string' |
| operator: [N]<<< word |
| - recognize LESS_LESS_LESS and create the appropriate redirection |
| |
| {dispose_cmd,copy_cmd,make_cmd,print_cmd}.c |
| - recognize r_reading_string and do the right thing (dispose_redirects, |
| copy_redirect, print_redirection, and make_redirection, respectively) |
| |
| redir.c |
| - here_document_to_fd now takes the redirection operator as its |
| second argument |
| - new function, write_here_string, expands a here string and writes it |
| to the here document file descriptor |
| - here_document_to_fd calls write_here_string for r_reading_string |
| operator |
| - handle r_reading_string in do_redirection_internal() and |
| stdin_redirection() |
| |
| 2/18 |
| ---- |
| doc/{bash.1,bashref.texi} |
| - documented here strings |
| |
| {configure,Makefile}.in |
| - bumped version number up to bash-2.05b and the release status |
| to alpha1 |
| |
| expr.c |
| - make expr_streval understand that variables with the `invisible' |
| attribute are really unset, and accessing such a variable when |
| `set -u' is set should be an error |
| |
| variables.h |
| - new accessor macros: var_isset(var) and var_isnull(var), test |
| whether var->value is NULL |
| |
| {eval,subst,variables}.c, builtins/{declare,setattr}.def |
| - be more consistent about using value_cell(var) instead of |
| directly referencing var->value |
| - use var_isset and var_isnull where appropriate |
| |
| builtins/help.def |
| - augmented a couple of help strings with pointers to `info' and |
| `man -k' |
| |
| 2/14 |
| ---- |
| variables.h |
| - new macros to use when setting variable values directly instead of |
| through bind_variable and its siblings |
| |
| {arrayfunc,variables}.c |
| - use var_setarray and other lvalue macros instead of assigning to |
| var->value directly |
| |
| builtins/setattr.def |
| - change show_var_attributes to show function definitions separately |
| from function attributes. This allows the output of `declare -f' |
| (with other flags), `export -f', and `readonly -f' to be reused as |
| shell input, instead of the old |
| |
| declare -f[flags] func() |
| { |
| foo |
| } |
| |
| which has syntax errors. When in posix mode, `export -fp' and |
| `readonly -fp' still don't print function definitions |
| |
| 2/16 |
| ---- |
| parse.y |
| - comment out calls to discard_parser_constructs; no need to call |
| empty functions |
| |
| 2/18 |
| ---- |
| lib/sh/memset.c |
| - replacement function for memset(3) |
| |
| lib/sh/Makefile.in, Makefile.in |
| - additions for memset.c |
| |
| configure.in,config.h.in |
| - check for memset, define HAVE_MEMSET if found, add memset.o to |
| LIBOBJS if not |
| |
| lib/malloc/malloc.c |
| - removed zmemset(), replaced with calls to memset(3) |
| |
| {subst,execute_cmd,lib/sh/netopen}.c |
| - replaced calls to bzero with calls to memset |
| |
| subst.c |
| - word_split() now takes a second argument: the value of $IFS, so |
| it doesn't have to look up IFS every time |
| - word_list_split() now calls getifs() and passes the result to |
| each call to word_split() as its second arg |
| - do a quick scan for CTLNUL in remove_quoted_nulls before allocating |
| new string, copying old string to it, copying over original string |
| and freeing new string |
| |
| eval.c |
| - don't bother calling dispose_used_env_vars if temporary_env is NULL |
| |
| execute_cmd.c |
| - fix fix_assignment_words to only look up the builtin corresponding |
| to the first word if one of the words in the list is marked as |
| W_ASSIGNMENT |
| |
| hashlib.c |
| - renamed hash_string to hash_bucket, which better reflects what it |
| does |
| - extracted the portion of hash_bucket that computes the hash out |
| into a new hash_string() |
| - made new body of hash_bucket into a macro HASH_BUCKET; function |
| just calls the macro |
| - calls to hash_bucket in this file now call HASH_BUCKET macro |
| - in add_hash_item, just add a new item at the front of the appropriate |
| bucket list instead of at the end |
| |
| hashcmd.h |
| - reduced FILENAME_HASH_BUCKETS to 53 from 107 |
| |
| 2/19 |
| ---- |
| hashlib.[ch] |
| - find_hash_item, remove_hash_item, add_hash_item all take a new |
| third `flags' argument |
| - add_hash_item doesn't call find_hash_item if HASH_NOSRCH passed in |
| flags arg |
| - find_hash_item will create a new hash table entry if HASH_CREATE is |
| passed in flags arg |
| - new function, hash_walk, takes a pointer to a function and a table |
| and calls the function for each item in the table. If the function |
| returns < 0, the walk is terminated |
| - fixed flush_hash_table to set table->nentries to 0 after freeing |
| all entries |
| - BUCKET_CONTENTS now has a new `khash' member, what key hashes to; |
| set by HASH_BUCKET macro (which calls hash_string), assigned in |
| find_hash_item (HASH_CREATE) and add_hash_item |
| - find_hash_item and remove_hash_item check `khash' against the |
| hash of the string argument before calling strcmp |
| |
| {alias,hashlib,hashcmd,pcomplib,variables}.c |
| - changed all calls to {find,remove,add}_hash_item |
| |
| builtins/hash.def |
| - return immediately from print_hashed_commands if there are no |
| entries in the hash table (this eliminates need for `any_printed' |
| variable) |
| - change print_hashed_commands to use hash_walk |
| |
| alias.c |
| - short-circuit all_aliases and map_over_aliases if |
| HASH_ENTRIES(aliases) == 0 |
| - simplify map_over_aliases by just allocating enough room in the |
| returned list for all entries in the aliases hash table, instead |
| of doing the check and xrealloc |
| - add_alias now calls add_hash_item with HASH_NOSRCH argument |
| |
| pcomplete.h |
| - sh_csprint_func_t is no more; use hash_wfunc instead |
| |
| pcomplib.c |
| - short-circuit print_all_compspecs if HASH_ENTRIES(prog_completes) |
| is 0 |
| - print_all_compspecs now takes a `hash_wfunc *' argument |
| - print_all_compspecs now just calls hash_walk |
| |
| builtins/complete.def |
| - new function, print_compitem, takes a BUCKET_CONTENTS *, extracts |
| the right info, and calls print_one_completion |
| |
| variables.c |
| - short-circuit map_over_funcs if HASH_ENTRIES(shell_functions) == 0 |
| - short-circuit flatten if the passed table has no entries |
| - bind_variable_internal takes a new fourth argument: `hflags', |
| to pass to hash table functions |
| - make_new_variable now passes HASH_NOSRCH flag to add_hash_item |
| - set_if_not now calls bind_variable_internal and passes |
| HASH_NOSRCH as flags argument |
| - bind_function now calls add_hash_item with HASH_NOSRCH argument |
| - fixed make_local_variable: old_var == 0 && was_tmpvar can never |
| be true |
| - if we didn't find an old variable in make_local_variable, call |
| bind_variable_internal with HASH_NOSRCH argument |
| - fix push_temp_var to reset variable context to 0 if binding into |
| global_variables->table |
| |
| parse.y |
| - fix to parse_compound_assignment to avoid core dumps on empty |
| compound array assignments |
| |
| subst.c |
| - getifs() is now global so read_builtin can call it |
| |
| subst.h |
| - extern declaration for getifs() |
| |
| 2/20 |
| ---- |
| hashlib.c |
| - changed hash_string to use a better hash function |
| - changed HASH_BUCKET to use masking rather than modulus to hash a |
| string to a bucket -- HASH TABLES MUST NOW BE SIZED BY POWERS |
| OF TWO |
| |
| hashlib.h |
| - DEFAULT_HASH_BUCKETS is now 64 |
| |
| hashcmd.h |
| - FILENAME_HASH_BUCKETS is now 64 |
| |
| pcomplib.c |
| - COMPLETE_HASH_BUCKETS is now 32 |
| |
| variables.c |
| - TEMPENV_HASH_BUCKETS is now 4 |
| |
| alias.c |
| - new define, ALIAS_HASH_BUCKETS, set to 16, used to size alias table |
| |
| hashlib.c |
| - removed initialize_hash_table; folded code into make_hash_table |
| - fixed copy_bucket_array to copy the `khash' member of an item |
| - renamed functions to be more systematic and easier for me: |
| make_hash_table -> hash_create |
| hash_table_nentries -> hash_size |
| copy_hash_table -> hash_copy |
| find_hash_item -> hash_search |
| remove_hash_item -> hash_remove |
| add_hash_item -> hash_insert |
| flush_hash_table -> hash_flush |
| dispose_hash_table -> hash_dispose |
| print_table_stats -> hash_pstats |
| get_hash_bucket -> hash_items |
| - changed hash_search to short-circuit if table->nentries == 0 and |
| HASH_CREATE has not been passed in the flags argument |
| |
| {alias,variables,hashcmd,pcomplib}.c |
| - renamed calls to all renamed functions from hashlib.c |
| |
| builtins/kill.def |
| - don't drop a leading `-' in a pid argument |
| - call kill_pid with an explicit third argument of 1 if the pid |
| argument to kill is < -1, rather than rely on the behavior of |
| kill(2) |
| |
| 2/21 |
| ---- |
| subst.c |
| - quoted_strchr is no longer declared `inline' |
| - skip_double_quoted is no longer declared `inline' |
| - string_extract_double_quoted is no longer declared `inline' |
| |
| lib/readline/input.c |
| - rl_gather_tyi is now an `int' valued function; returns the number |
| of characters read (0 or 1) or -1 on error |
| - if rl_gather_tyi() returns -1 to rl_read_key(), set rl_done to 1 |
| and return a newline; something is wrong with the input fd |
| |
| 2/25 |
| ---- |
| variables.[ch] |
| - IFS is now a special variable |
| - new special var function, sv_ifs(), called when IFS is set or unset |
| - call setifs() when IFS is first set in initialize_shell_variables |
| - call setifs() from make_local_variable and assign_in_env if |
| appropriate |
| - if assign_in_env() is called with a var assignment like `VAR=', |
| make the value in the new SHELL_VAR created be "" like |
| do_assignment_internal does, since certain parts of the shell use |
| a NULL value as evidence that the variable is unset (though |
| attributes may have been assigned) |
| - if push_temp_var pushes something up to the global_variables table, |
| make sure that the context is set to 0 |
| - new function dispose_temporary_env, called by both |
| dispose_used_env_vars and merge_temporary_env with different `free |
| func' function pointers; calls sv_ifs after disposing the temporary |
| environment |
| - push_exported_var now calls bind_variable_internal instead of |
| bind_variable |
| - pop_scope and pop_context now call sv_ifs |
| |
| subst.[ch] |
| - new global variables used to keep track of IFS state, to avoid |
| having to call find_variable("IFS") all the time: |
| |
| ifs_var the SHELL_VAR for IFS |
| ifs_value ifs_var ? value_cell (ifs_var) : " \t\n" |
| ifs_cmap bitmap of characters in ifs_value |
| ifs_firstc first character in ifs_value |
| |
| - new function setifs(), sets the aforementioned ifs variables each |
| time IFS is set or unset, and at nested scope exit |
| - instead of calling getifs() from inside subst.c, use ifs_value |
| - getifs() now just returns ifs_value |
| - use ifs_firstc in string_list_dollar_star() |
| - only call member() in issep() if separators is more than one char |
| - don't cache a bitmap every time expand_word_internal() is called; |
| use ifs_cmap instead |
| - new macro, isifs(c), checks whether C is in ifs_cmap |
| |
| builtins/read.def |
| - use issep() and isifs() macros instead of looking at $IFS directly |
| |
| syntax.h |
| - make sure macros that access sh_syntaxtab cast the argument to |
| `unsigned char' before array access |
| - new macros: issyntype(c, type) and notsyntype(c, type), check |
| sh_syntaxtab[c] for a particular flag value `type' |
| |
| 2/26 |
| ---- |
| hashlib.h |
| - the `data' member of a `BUCKET_CONTENTS' is now a PTR_T |
| |
| {hashlib,alias,variables,hashcmd,pcomplib}.c |
| - removed some casts when assigning to and using `data' member of a |
| `BUCKET_CONTENTS' |
| |
| subst.c |
| - in split_at_delims, call make_word_list instead of allocating and |
| initializing a WORD_LIST * directly |
| |
| make_cmd.[ch] |
| - add_string_to_list is now just a macro that calls make_word_list |
| - make_simple_command now calls make_word_list instead of allocating |
| a WORD_LIST * directly |
| |
| 2/27 |
| ---- |
| copy_cmd.c |
| - copy_word now calls make_bare_word to allocate the copy |
| - copy_word_list now calls make_word_list to allocate the copy |
| |
| shell.h |
| - include `ocache.h' for simple object caching |
| - call cmd_init() to initialize the WORD_DESC and WORD_LIST object |
| caches |
| |
| {make,dispose}_cmd.c |
| - allocate WORD_DESC * and WORD_LIST * vars from their respective |
| ocaches, and return them to the cache when disposing |
| |
| jobs.c |
| - renamed old `waiting_for_job' variable to `queue_sigchld', which |
| better reflects its intent: sigchld_handler does not call waitchld |
| if `queue_sigchld' is non-zero, it simply increments the count of |
| waiting children |
| - cleanup_dead_jobs now just sets and clears queue_sigchld instead of |
| blocking and unblocking SIGCHLD; it calls waitchld at the end if |
| `sigchld' is non-zero, but that's not really necessary |
| - in setjstatus, only call xrealloc if `statsize' is less than the |
| number of processes passed -- no reason to do it if they're the |
| same |
| |
| 2/28 |
| ---- |
| sig.[ch] |
| - reinitialize_signals is no more; initialize_signals takes an |
| argument saying whether or not we are reinitializing |
| |
| builtins/exec.def |
| - reinitialize_signals() -> initialize_signals(1) |
| |
| test.c |
| - fix filecomp() to work right when one file has a non-positive |
| timestamp and the other file does not exist |
| |
| doc/{bash.1,bashref.texi} |
| - document what happens for test's -nt and -ot operators when one |
| file operand exists and the other does not |
| |
| jobs.c |
| - if we haven't messed with SIGTTOU, just manipulate queue_sigchld |
| in notify_of_job_status instead of calling sigprocmask() |
| - list_one_job now calls pretty_print_job directly instead of going |
| through print_job |
| - pretty_print_job now must be called with SIGCHLD blocked or held |
| instead of blocking SIGCHLD itself |
| - changed start_job so that it doesn't call UNBLOCK_CHILD and then |
| immediately call BLOCK_CHILD again (explicitly or via last_pid()), |
| call find_last_pid instead of last_pid and then UNBLOCK_CHILD |
| - changed wait_for_job the same way |
| - find_last_pid now takes a second argument: block; uses BLOCK_CHILD |
| if `block' is 1, not otherwise. Changed existing calls: |
| find_last_pid(j) -> find_last_pid(j, 0) |
| last_pid(j) -> find_last_pid(j, 1) |
| `last_pid()' is now gone |
| - rewrote wait_for_background_pids(); it was a little strange |
| |
| copy_cmd.c |
| - copy_if_command: don't copy null false_case commands |
| - copy_simple_command: don't copy a null redirection list |
| |
| subst.c |
| - in get_word_from_string and list_string, just check for " \t\n" |
| directly rather than calling strcmp |
| - in get_word_from_string and strip_trailing_ifs_whitespace, use |
| isifs() instead of issep(), since they're never called with |
| separators != $IFS |
| - change issep() to call isifs if separators is longer than one |
| character, since it's never called with anything but "", " ", |
| or $IFS |
| |
| 3/1 |
| --- |
| sig.h |
| - enclose the BLOCK_SIGNAL macro in a do {...} while (0) loop, at it |
| should have been all along |
| |
| lib/readline/doc/rltech.texinfo |
| - document that readline defaults to stdin/stdout if rl_instream/ |
| rl_outstream are NULL |
| |
| lib/readline/terminal.c |
| - if an application is using a custom redisplay function, |
| rl_resize_terminal just calls rl_forced_update_display to tell |
| (*rl_redisplay_func) to update the display, otherwise call |
| _rl_redisplay_after_sigwinch |
| |
| lib/readline/readline.c |
| - change readline_internal_setup() so the change to vi insertion mode |
| happens even if readline_echoing_p is 0 |
| - don't print the prompt to rl_outstream in readline_internal_setup |
| if we're not echoing and the caller has defined a custom redisplay |
| function -- let the redisplay function deal with it |
| |
| configure.in |
| - new option: --enable-mem-scramble, controls memory scrambling on |
| free() (on by default; only affects use of bash malloc) |
| |
| config.h.in |
| - new option MEMSCRAMBLE, controlled by --enable-mem-scramble |
| |
| 3/5 |
| --- |
| parse.y |
| - added ksh-like behavior of [...] to read_token_word: if a `[' is |
| seen in an assignment context and the previous characters in the |
| token form a valid identifier, parse the [...] with |
| parse_matched_pair to allow spaces (and newlines) in the subscript |
| |
| bashline.c |
| - new function bash_servicename_completion_function, for completing |
| service names from /etc/services |
| |
| bashline.h |
| - new extern declaration for bash_servicename_completion_function |
| |
| builtins/complete.def |
| - allow new `-s/-A service' option to complete and compgen builtins |
| |
| pcomplete.h |
| - new CA_SERVICE define, new ITEMLIST variable it_services |
| |
| pcomplete.c |
| - add callback to bash_servicename_completion_function to generate |
| list of matching service names for completion |
| |
| doc/bash.1,lib/readline/doc/rluser.texinfo |
| - documented new `-s/-A service' option to complete and compgen |
| |
| 3/6 |
| --- |
| builtins/read.def |
| - change hard-coded `0' to new variable `fd' (initially 0) in |
| preparation for adding `-u fd' option |
| |
| bashline.c |
| - bash_directory_completion_hook calls expand_prompt_string instead |
| of expand_string (it does the right thing). This keeps expansion |
| errors from causing a longjmp, which shouldn't happen because of |
| completion |
| - command_subst_completion_function was augmented very slightly to |
| do filename completion on a non-command-word in a command |
| substitution |
| - command_subst_completion_function now skips over the lcd that |
| rl_completion_matches puts in matches[0] if there is more than |
| one possible completion |
| |
| 3/7 |
| --- |
| builtins/read.def |
| - only add the unwind_protect to free `rlbuf' if `edit' is non-zero, |
| since we won't be using readline otherwise |
| |
| lib/sh/zread.c |
| - renamed zread1 -> zreadintr |
| |
| redir.c |
| - small change to redirection_error() to make a slightly better |
| guess about the invalid file descriptor if the redirection op is |
| r_duplicating_input or r_duplicating_output |
| |
| include/stdc.h |
| - new macro, SH_VA_START, to encapsulate the difference between |
| stdarg va_start and varargs va_start |
| |
| {error,pcomplete,print_cmd}.c,builtins/common.c,lib/sh/snprintf.c |
| - use SH_VA_START |
| |
| 3/8 |
| --- |
| builtins/read.def |
| - support for the ksh-like `-u fd' option |
| |
| general.c |
| - new function sh_validfd(fd), returns 1 if fd is a valid open file |
| descriptor |
| |
| general.h |
| - extern decl for sh_validfd |
| |
| bashline.c |
| - don't call posix_readline_initialize() from initialize_readline(); |
| sv_strict_posix() should already have taken care of it |
| |
| 3/11 |
| ---- |
| {error,pcomplete,print_cmd}.c, builtins/common.c |
| - removed non-varargs versions of functions |
| |
| builtins/printf.def |
| - if the string argument to %q has non-printing characters, call |
| ansic_quote to quote it rather than sh_backslash_quote |
| |
| variables.h |
| - new attribute: att_trace (and corresponding trace_p() macro). |
| Functions with this attribute will inherit the DEBUG trap. |
| Currently ignored for variables |
| |
| builtins/declare.def |
| - new `-t' option to declare/typeset toggle the `att_trace' attribute |
| |
| builtins/setattr.def |
| - check for att_trace and output `-t' flag in show_var_attributes |
| |
| execute_cmd.c |
| - if a function is being traced (it has the `-t' attribute set), |
| don't turn off the DEBUG trap when it executes |
| |
| doc/{bash.1,bashref.texi} |
| - document the new `-t' option to declare/typeset |
| |
| 3/12 |
| ---- |
| execute_cmd.c |
| - don't execute the debug trap in the `cm_simple:' case of |
| execute_command_internal; run it in execute_simple_command so we |
| get the line number information right when executing in a shell |
| function |
| - run a DEBUG trap before executing ((...)) arithmetic commands, |
| like ksh93 |
| - run a DEBUG trap before executing [[...]] conditional commands, |
| like ksh93 |
| |
| eval.c |
| - add a static forward declaration for alrm_catcher() |
| |
| general.c |
| - add static forward declarations for bash_special_tilde_expansions, |
| unquoted_tilde_word, initialize_group_array |
| |
| variables.h |
| - add extern declarations for sh_get_env_value, map_over_funcs, |
| local_exported_variables |
| |
| variables.c |
| - add static forward declarations for dispose_temporary_env, |
| make_func_export_array |
| |
| bashhist.c |
| - add static forward declaration for check_history_control |
| |
| configure.in |
| - add a call to AC_CHECK_DECLS for strcpy |
| |
| config.h.in |
| - add placeholder for HAVE_DECL_STRCPY define, set by configure |
| |
| general.h |
| - don't declare strcpy if HAVE_DECL_STRCPY is defined with a non-zero |
| value |
| |
| sig.h |
| - add prototype to typedef of SigHandler |
| |
| lib/readline/histlib.h |
| - removed extern declaration of strcpy() |
| - include string.h/strings.h directly in histlib.h instead of source |
| files |
| |
| lib/readline/{histexpand,histfile,history,histsearch}.c |
| - don't include string.h/strings.h now that histlib.h includes it |
| |
| lib/tilde/tilde.c |
| - removed extern declaration of strcpy(), rely on string.h/strings.h |
| |
| command.h |
| - four new redirection types: r_move_input, r_move_output, |
| r_move_input_word, r_move_output_word, for |
| [N]<&word- and [N]>&word- from ksh93 |
| |
| print_cmd.c |
| - changes to print r_move_input[_word] and r_move_output[_word] |
| |
| copy_cmd.c |
| - changes to copy r_move_input[_word] and r_move_output[_word] |
| |
| dispose_cmd.c |
| - changes to dispose r_move_input_word and r_move_output_word |
| |
| make_cmd.c |
| - changes to make r_move_input[_word] and r_move_output[_word] from |
| r_duplicating_{input,output}_word, which is how the new redirs |
| are passed by the parser |
| |
| redir.c |
| - changes to make r_move_input[_word] and r_move_output[_word] do |
| the right thing when executed |
| |
| builtins/read.def |
| - print an error message and return failure immediately if zread/zreadc |
| return < 0 |
| |
| doc/{bash.1,bashref.texi} |
| - documented new [n]<&word- and [n]>&word- redirections |
| |
| 3/13 |
| ---- |
| lib/readline/isearch.c |
| - enabled code to allow chars bound to rl_rubout to delete characters |
| from the incremental search string |
| |
| shell.c |
| - add `-l' invocation option to parse_shell_options; equivalent to |
| `--login' |
| - fixed set_login_shell to check first char of base pathname of argv0 |
| for `-', like other shells |
| - move the check for make_login_shell after the call to |
| parse_shell_options because the `-l' option might set it |
| |
| doc/{bash.1,bashref.texi} |
| - documented new `-l' invocation option |
| |
| array.c |
| - new function, array_shift, shifts an array left by a specified |
| number of elements |
| - array_walk is now compiled in by default |
| - array_to_assignment_string now takes a second argument: int quoted. |
| If non-zero, the result is single-quoted before being returned |
| - quoted_array_assignment_string has been removed |
| |
| array.[ch] |
| - renamed most of the array functions so that all have an array_ |
| prefix and are more systematically named |
| - array_slice now preserves the indicies from the original array |
| - change array_to_assign to use a static buffer for expanding the |
| array indices, instead of malloc/free |
| |
| {arrayfunc,subst,variables}.c, builtins/read.def |
| - changed calls to various array functions to use new names |
| |
| lib/sh/stringvec.c, externs.h |
| - renamed all of the functions to have a strvec_ prefix and to have |
| a more sensible name scheme |
| - strvec_search's arguments are now supplied in reverse order, so |
| the char **array is first, like the other functions |
| - new function, strvec_resize, xrealloc for strvecs |
| |
| {alias,array,bracecomp,braces,bashline,execute_cmd,findcmd,general,pathexp, |
| pcomplete,variables}.c |
| lib/sh/stringlist.c |
| builtins/{bind,complete,exec,getopts,pushd,set}.def |
| - change calls to all functions from lib/sh/stringvec.c |
| - use strvec_resize where appropriate |
| |
| externs.h |
| - only declare dup2() if HAVE_DUP2 is undefined or DUP2_BROKEN is |
| defined |
| |
| lib/readline/{macro,readline,util}.c, lib/readline/rlprivate.h |
| - _rl_defining_kbd_macro is gone, use RL_ISSTATE(RL_STATE_MACRODEF) |
| |
| lib/readline/readline.h |
| - new struct readline_state, encapsulates most of readline's internal |
| state in case you need reentrancy or nested calls to readline() |
| - extern declarations for rl_save_state, rl_restore_state |
| |
| lib/readline/readline.c |
| - add (undocumented) int rl_save_state (struct readline_state *), |
| int rl_restore_state (struct readline_state *) |
| |
| 3/14 |
| ---- |
| array.[ch] |
| - new function, array_rshift, shifts an array right by a specified |
| number of elements, optionally inserting a new element 0 |
| |
| examples/bashdb/bashdb |
| - new single-file version of bash debugger, originally modified from |
| version in bash-2.04 by Gary Vaughan (the old debugger still |
| appears in examples/obashdb). This version has a more gdb-like |
| command set |
| |
| examples/bashdb/bashdb.el |
| - new emacs bashdb debugger mode from Masatake YAMATO <jet@gyve.org> |
| |
| execute_cmd.c |
| - don't make $LINENO relative to function start unless the shell is |
| currently interactive -- this is what ksh93 does and what I |
| believe to be the intent of POSIX.2 (this required changing some |
| of the test checks because the output has changed) |
| - run the debug trap for each command in an arithmetic for expression, |
| like ksh93 does |
| |
| lib/readline/vi_mode.c |
| - redid rl_vi_subst (binding func for `s' and `S') in terms of |
| rl_vi_change_to: `S' == `cc' and `s' == `c '. This makes undo |
| work right |
| |
| 3/18 |
| ---- |
| hashlib.c |
| - fixed hash_walk to return if the item function returns < 0, instead |
| of breaking out of the current hash chain |
| |
| array.c |
| - fixed array_walk to return if the item function returns < 0, like |
| hash_walk |
| |
| lib/sh/stringlist.c, externs.h |
| - new function: strlist_walk, takes a stringlist and a pointer to an |
| item func. Like other _walk funcs, if item func returns < 0 the |
| walk is cancelled |
| - new function: strlist_flush, frees items in the contained list |
| with strvec_flush |
| - renamed functions to have a strlist_ prefix and be more systematic |
| |
| pcomplib.c,pcomplete.h |
| - removed redundant `progcomp_initialized' variable |
| - renamed functions to have `progcomp_' or `compspec_' prefixes |
| like the hash library |
| |
| {bashline,pcomplete}.c,builtins/complete.def |
| - fixed calls to stringlist functions to use new names |
| - fixed calls to functions in pcomplib.c to use new names |
| |
| pcomplete.c |
| - made the debugging code #ifdef DEBUG -- it should be mature enough |
| |
| builtins/hash.def,parse.y |
| - use REVERSE_LIST(x, t) instead of (t)reverse_list(x) |
| |
| list.c,{externs,general}.h |
| - renamed the list functions to have a list_ prefix, changed callers |
| |
| externs.h,{execute_cmd,stringlib,subst}.c,builtins/common.c,lib/sh/stringvec.c |
| - word_list_to_argv -> strvec_from_word_list |
| - argv_to_word_list -> strvec_to_word_list |
| - moved functions to lib/sh/stringvec.c |
| |
| lib/sh/stringvec.c |
| - changed name of second argument to strvec_from_word_list from `copy' |
| to `alloc' so the use of `copy' between strvec_from_word_list and |
| strvec_to_word_list isn't as confusing |
| - changed name and sense of second argument to |
| strvec_to_word_list from `copy' to `alloc' for the same reason -- |
| now both functions agree on semantics of second argument |
| |
| lib/sh/stringlist.c |
| - ditto for strlist_from_word_list and strlist_to_word_list |
| |
| subst.c |
| - changed callers of strvec_to_word_list |
| |
| 3/19 |
| ---- |
| builtins/hash.def |
| - added `-l' option to list table or individual targets in reusable |
| format |
| - added `-d' option to remove one or more names from the table of |
| hashed commands (provides `unhash' or `unalias -t' functionality) |
| |
| doc/{bash.1,bashref.texi} |
| - documented new `-l' and `-d' options to `hash' |
| |
| hashcmd.[ch] |
| - renamed functions to have a `phash_' prefix and follow new naming |
| convention |
| - phash_remove now returns an int: 1 if command not in hash table, |
| 0 if filename removed OK |
| |
| {findcmd,variables}.c, builtins/{hash,type}.def |
| - changed callers to use new names from hashcmd.c |
| |
| builtins/common.[ch] |
| - new function, sh_notfound(s), prints standard `not found' message |
| - new function, sh_invalidid(s), prints standard `invalid identifier' |
| message |
| - new function, sh_restricted(s), prints standard `restricted' message |
| for restricted shells |
| - new function, sh_invalidnum(s), prints standard `invalid number' |
| message |
| - renamed bad_option to sh_invalidopt, changed to print |
| `invalid option' instead of `unknown option' |
| - new function, sh_invalidoptname, prints standard `invalid option |
| name' for long options |
| - new function, sh_badjob (s), prints standard `no such job' message |
| - new function, sh_invalidsig (s), prints standard `invalid signal |
| specification' message |
| - new function, sh_nojobs (s), prints standard `no job control' message |
| - new function, sh_needarg (s), prints standard `option requires an |
| argument' message |
| - new function, sh_neednumarg (s), prints standard `numeric |
| argument required' message |
| - new function, sh_badpid(s), prints standard `not a pid...' message |
| - new function, sh_erange (s, desc) prints standard `out of range' |
| message, optionally using `desc' to say what the argument is |
| |
| builtins/{alias,command,declare,exec,hash,type}.def |
| - call sh_notfound() instead of calling builtin_error directly |
| |
| builtins/{declare,getopts,read,set,setattr}.def |
| - call sh_invalidid() instead of calling builtin_error directly |
| |
| builtins/{cd,command,enable,exec,hash,source}.def |
| - call sh_restricted() instead of calling builtin_error directly |
| |
| builtins/{printf,read,ulimit}.def, builtins/common.c |
| - call sh_invalidnum instead of calling builtin_error directly |
| |
| builtins/{complete,declare,pushd,set}.def, builtins/bashgetopt.c |
| - call sh_invalidopt instead of bad_option or builtin_error directly |
| |
| builtins/{complete,set,shopt}.def |
| - call sh_invalidoptname instead of builtin_error directly |
| |
| builtins/{fg_bg,jobs,kill,wait}.def |
| - call sh_badjob instead of calling builtin_error directly |
| |
| builtins/common.c, builtins/{kill,signal}.def |
| - call sh_invalidsig instead of calling builtin_error directly |
| |
| builtins/{fg_bg,suspend,wait}.def |
| - call sh_nojobs instead of calling builtin_error directly |
| |
| builtins/{common,bashgetopt}.c, builtins/{hash,kill}.def |
| - call sh_neednumarg and sh_needarg where required |
| |
| builtins/{kill,wait}.def |
| - call sh_badpid where required |
| |
| builtins/{break,fc,history,pushd,shift,ulimit,umask}.def |
| - call sh_erange where appropriate |
| |
| builtins/printf.def |
| - new static function, printf_erange, prints standard out-of-range |
| warning message |
| |
| builtins/set.def |
| - changed so that calls to sh_invalidopt always include the leading |
| `+' or `-' |
| |
| builtins/shopt.def |
| - changed SHOPT_ERROR macro to shopt_error function |
| |
| builtins/bind.def |
| - regularized error messages to `bind: object: error string' like |
| other error messages |
| |
| builtins.h |
| - the `short_doc' member of a `struct builtin' is now of type |
| `const char *' |
| - the strings in `long_doc' array of a struct builtin are now const |
| |
| builtins/mkbuiltins.c |
| - changes for new `const' members of struct builtin |
| |
| 3/20 |
| ---- |
| lib/readline/histfile.c |
| - use pointers instead of indexing into buffer when reading the |
| contents of the history file in read_history_range and |
| history_truncate_file |
| |
| 3/21 |
| ---- |
| lib/readline/histfile.c |
| - new file, with code to mmap the history file for reading and |
| writing (depends on HAVE_MMAP, currently nothing checks for that) |
| |
| 3/25 |
| ---- |
| error.[ch] |
| - new function, err_badarraysub(s), calls report_error with standard |
| `bad array subscript' message |
| - new function, err_unboundvar(s), calls report_error with standard |
| `unbound variable' message |
| - new function, err_readonly(s), calls report_error with standard |
| `readonly variable' message |
| |
| {arrayfunc,subst}.c |
| - call err_badarraysub where appropriate |
| |
| {expr,subst}.c |
| - call err_unboundvar where appropriate |
| |
| {arrayfunc,variables}.c |
| - call err_readonly where appropriate |
| |
| shell.c |
| - changed text of bad option error messages to be the same as that |
| printed for builtin errors |
| |
| builtins/common.c |
| - changed sh_invalidopt to print the invalid option before the rest |
| of the error message (required some tests to be modified) |
| - new function, sh_readonly, calls builtin_error with standard |
| `readonly variable' message |
| |
| variables.c,builtins/declare.def |
| - call sh_readonly where appropriate |
| |
| lib/sh/stringvec.c |
| - added strvec_remove (sv, s), removes S from SV and shuffles rest of |
| elements down 1 |
| |
| lib/sh/stringlist.c |
| - added strlist_remove(sl, s), just calls strvec_remove on the |
| component list |
| |
| externs.h |
| - new extern declarations for strvec_remove and strlist_remove |
| - fixed extern declaration for strvec_search; the arguments were |
| reversed (unimportant, it's not compiled into the shell) |
| |
| subst.c |
| - change param_expand to call quote_escapes on values retrieved when |
| expanding the positional parameters |
| - change parameter_brace_expand_word to quote escapes on values |
| retrieved when expanding the positional parameters |
| - fix parameter_brace_substring to quote escape characters on unquoted |
| substrings extracted from variable values (needed to separate case |
| VT_VARIABLE from VT_ARRAYMEMBER for this, since, because |
| get_var_and_type calls array_value for VT_ARRAYMEMBER, we need to |
| skip over quoted characters in an already-appropriately-quoted |
| string to find the substring we want) |
| - fix parameter_brace_substring to quote escape characters in the |
| value returned by pos_params when expanding subsets of the |
| positional parameters and not within double quotes (in which case |
| pos_params() quotes the string for us) |
| - fix parameter_brace_substring to quote escape characters in the |
| value returned by array_subrange when expanding subsets of an |
| array and not within double quotes (in which case |
| array_subrange() quotes the string for us) |
| - new function, quoted_strlen(s), does strlen(s) while skipping over |
| characters quoted with CTLESC (#ifdef INCLUDE_UNUSED, since it's |
| not used yet) |
| - changed pos_params() so it always returns a list whose members are |
| quoted strings if (quoted&(Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) != 0 |
| |
| arrayfunc.c |
| - fix array_value to consistently call quote_escapes, even when a |
| non-array variable is being subscripted with element 0, in which |
| case we return the variable value |
| |
| lib/sh/strtrans.c |
| - make the for_echo parameter to ansicstr a `flags' parameter that |
| has its old `for echo' meaning if flags&1 is non-zero (which is |
| consistent with the old code) |
| - Added code to the `flags' parameter to ansicstr so that if flags&2 |
| is non-zero, CTLESC and CTLNUL are escaped with CTLESC in the |
| expanded string |
| - change ansiexpand() to call ansicstr with a `flags' parameter of 2 |
| |
| 3/26 |
| ---- |
| lib/readline/histfile.c |
| - when reading and writing the history file, use malloc instead of |
| xmalloc and handle failures gracefully, so the application doesn't |
| abort if the history file or history list is too big |
| |
| 3/27 |
| ---- |
| arrayfunc.c |
| - changed array_value_internal to take an additional `int *' |
| parameter, in which is returned the type of array indexing |
| performed (array[@] vs. array or array[index]) |
| - changed array_value and get_array_value to take a corresponding |
| extra parameter and pass it to array_value_internal |
| - changed array_value_internal to no longer return newly-allocated |
| memory or quote CTLESC and CTLNUL in the returned string if |
| `simple' array indexing (subscript not `@' or `*') is being |
| performed. This makes it more like a variable lookup |
| |
| arrayfunc.h |
| - changed prototypes for array_value and get_array_value |
| |
| expr.c |
| - added new parameter to call to get_array_value in expr_streval |
| - don't need to free memory returned by get_array_value any more |
| |
| subst.c |
| - quote_escapes now works with multibyte characters |
| - dequote_string now works with multibyte characters |
| - dequote_escapes is now needed, so it's compiled in, and it |
| now works with multibyte characters |
| - remove_quoted_escapes now just calls dequote_escapes and copies the |
| result over the argument string |
| - remove_quoted_nulls now returns its char * argument, parallels |
| remove_quoted_escapes |
| - parameter_brace_expand_word now passes the new argument to |
| array_value and quotes CTLESC and CTLNUL in the result if it's a |
| `simple' array expansion by calling quote_escapes |
| - get_var_and_type now returns VT_ARRAYMEMBER for references like |
| ${array} where `array' is an array variable (just like ${array[0]}). |
| Documented (in comment) that a VT_VARIABLE return value means that |
| quote_escapes has been called at some point |
| - changed callers of get_var_and_type to no longer free value if |
| VT_ARRAYMEMBER is returned as type |
| - changed parameter_brace_substring and parameter_brace_patsub to |
| call dequote_escapes on the value from get_var_and_type if the |
| type is VT_VARIABLE, since the substring and pattern substitution |
| code doesn't understand CTLESC quoting |
| - parameter_brace_substring no longer needs to call quoted_substring |
| for the VT_ARRAYMEMBER case |
| - changed parameter_brace_patsub to call quote_escapes on the result |
| of pat_subst for the VT_VARIABLE and VT_ARRAYMEMBER cases, and to |
| quote the returned string in the VT_ARRAYVAR and VT_POSPARAMS cases |
| if the `MATCH_QUOTED' flag isn't set (if it is, the pattern |
| substitution functions perform any necessary quoting) |
| - quoted_substring is no longer used; it's now #ifdef INCLUDE_UNUSED |
| |
| lib/malloc/mstats.h |
| - new member in _malstats: u_bits32_t bytesreq, the total number of |
| bytes requested by the caller via calls to malloc() and realloc() |
| |
| lib/malloc/stats.c |
| - print bytesreq member in _print_malloc_stats |
| - don't print statistics for buckets for which nmal == 0 (no mallocs) |
| |
| lib/malloc/malloc.c |
| - modified internal_malloc, internal_realloc to keep running total of |
| number of bytes requested by calling application |
| |
| shell.c |
| - sh_exit is now compiled in; exit_shell calls sh_exit |
| |
| error.c |
| - changed fatal_error, report_error, parser_error to call sh_exit |
| |
| 3/28 |
| ---- |
| subst.[ch] |
| - changed Q_NOQUOTE to Q_PATQUOTE; it makes the intent more clear |
| |
| subst.c |
| - moved code from parameter_brace_expand into a new function that |
| dispatches for pattern substitution: parameter_brace_remove_pattern |
| - changed structure of parameter_brace_remove_pattern to be like |
| parameter_brace_patsub and its ilk: call get_var_and_type to |
| isolate the variable name, move the pattern isolation code out of |
| the various *_remove_pattern functions into |
| parameter_brace_remove_pattern and pass the results to the various |
| functions, use a switch on the return value from get_var_and_type |
| to decide which function to call, regularized the arguments to the |
| separate pattern removal functions |
| - parameter_brace_remove_pattern now properly quotes escape chars in |
| the returned value |
| - changed get_var_and_type to call dequote_escapes on the `value' |
| parameter for case VT_VARIABLE and return the result in *valp, |
| so the calling functions don't have to do it themselves; changed |
| callers appropriately |
| - fixed getpattern() where it broke posix compliance: if you enclose |
| a pattern removal spec in double quotes, the outer double quotes |
| have no effect on the pattern (POSIX.1-200x 2.6.2). This uncovered |
| a bug in the test suite (!) |
| |
| pathexp.c |
| - fixed a problem with quote_string_for_globbing where it would change |
| consecutive CTLESC chars all to \ instead of changing every other |
| quoted char |
| |
| 3/31 |
| ---- |
| lib/malloc/{malloc,stats}.c |
| - moved declaration of _mstats to malloc.c so stats.o doesn't get |
| linked into the shell if the stats functions aren't called |
| |
| 4/2 |
| --- |
| lib/glob/smatch.c |
| - introduce `XCHAR' define, which is the type of arguments passed to |
| strcoll/strcmp/strlen and their wide-character equivalents, added |
| appropriate casts |
| - static arrays in single-byte version of rangecmp() are `char', not |
| `unsigned char', so compilers don't complain about calls to strcoll |
| |
| lib/glob/sm_loop.c |
| - casts for `XCHAR' and `XCHAR *' arguments to libc functions |
| - use prototype declaration for BRACKMATCH if `PROTOTYPES' is defined |
| to avoid problems with type promotion (unsigned char -> int) |
| |
| lib/glob/collsyms.h |
| - `name' member of struct _COLLSYM is now of type `XCHAR *', since |
| some compilers don't like `unsigned char *' initializers from |
| constant strings |
| |
| [bash-2.05b-alpha1 released] |
| |
| 4/3 |
| --- |
| builtins/{evalstring.c,common.h} |
| - new flag for parse_and_execute, SEVAL_NOFREE, means to not free |
| the argument string when finished |
| |
| lib/readline/text.c |
| - fixed a trivial typo in _rl_insert_char when reading multibyte |
| char sequences |
| - replace calls to ding() with rl_ding() |
| |
| include/chartypes.h |
| - remove SIGN_EXTEND_CHAR and TOASCII macros; they're unused |
| |
| make_cmd.c |
| - include dispose_cmd.h for extern function declarations |
| |
| lib/glob/glob.c |
| - include `shmbutil.h' and `xmalloc.h' for extern function declarations |
| |
| lib/glob/smatch.c |
| - include `xmalloc.h' for extern function declarations |
| |
| shell.c |
| - fix maybe_make_restricted to use its argument instead of global |
| `shell_name' |
| |
| version.c |
| - update copyright message to include this year |
| |
| lib/readline/display.c |
| - fixes from Jiro SEKIBA <jir@yamato.ibm.com> to fix autowrapping |
| when using multibyte characters |
| |
| lib/glob/sm_loop.c |
| - fixed a problem in BRACKMATCH where not enough memory was allocated |
| to hold a multibyte character when parsing POSIX.2 char class names |
| |
| support/config.{guess,sub} |
| - updated via patch from Paul Eggert with latest GNU additions |
| |
| variables.c |
| - var_lookup should use its `vcontext' argument instead of |
| unconditionally using `shell_variables' |
| |
| 4/4 |
| --- |
| builtins/bind.def,doc/{bash.1,bashref.texi} |
| - changed the usage summary and help text to make it clear that any |
| readline command that may appear in ~/.inputrc may be supplied as |
| one of the non-option arguments to `bind' |
| |
| builtins/mkbuiltins.c |
| - added support for `-H' option, which means to write long documentation |
| for each builtin to a separate file in the `helpfiles' directory |
| |
| builtins/Makefile.in |
| - new target `helpdoc', just creates long doc files in helpfiles |
| directory |
| |
| lib/sh/zcatfd.c |
| - new file, with zcatfd(int fd, int ofd, char *fn); dumps data from |
| FD to OFD |
| |
| Makefile.in,lib/sh/Makefile.in |
| - added zcatfd.c, zcatfd.o member of libsh.a |
| |
| builtins/evalstring.c |
| - changed cat_file to call zcatfd(fd, 1, fn) |
| |
| builtins/{shopt,colon}.def |
| - removed the $DOCNAME directive for `shopt', `true', and `false'; |
| just use the names |
| - changed $DOCNAME for `:' to just be `colon' instead of |
| `colon_builtin' |
| |
| builtins/reserved.def |
| - added help entries for ((, [[, `for ((' |
| |
| builtins/let.def |
| - add id++, id--, ++id, --id, ** to help text |
| |
| 4/8 |
| --- |
| builtins/bashgetopt.[ch] |
| - changed to allow options beginning with `+', enabled by a leading |
| `+' in the option string |
| - new variable, list_opttype, set to `-' or `+' |
| |
| builtins/{common.c,{builtin,eval,exit,fg_bg,let,printf,pushd,return,source,wait}.def |
| - changes to allow a `--' option for every builtin that accepts |
| operands but not options, as per posix.1-2001 |
| |
| builtins/{declare,setattr}.def |
| - use internal_getopt for parsing options, now that it supports `+' |
| |
| builtins/set.def |
| - use internal_getopt for initial option parse, now that it supports |
| a leading `+' |
| |
| |
| {configure,Makefile}.in, builtins/{Makefile.in,help.def,mkbuiltins.c} |
| - support for a new configure option, ``--enable-separate-helpfiles'', |
| moves the `long' help text to separate help files, installed by |
| default into ${datadir}/bash, one file per builtin. Off by |
| default -- it saves 47K, but it's only 47K, and it's in the text |
| segment |
| |
| flags.c |
| - build internal_getopt() option string argument from flags array at |
| runtime in shell.c |
| |
| shell.c |
| - new variable to control writing malloc stats at exit: |
| malloc_trace_at_exit, 0 by default |
| |
| lib/malloc/malloc.c |
| - heavily updated: |
| o partial page allocated on first call to malloc to make |
| subsequent sbrks page-aligned no longer wasted |
| o begin and end range guards are now the same value: the chunk |
| requested |
| o coalescing code was changed to attempt to coalesce first two |
| adjacent blocks on the free list; enabled by default |
| o blocks of size 32 are now candidates for larger block |
| splitting, since 32 is the most popular size |
| o blocks of size 32 are now candidates for smaller block |
| coalescing |
| o the IN_BUCKET check was changed to just make sure that the |
| size isn't too big for the bucket, since the `busy block' |
| checking code may increase the bucket by one or more, |
| meaning that the old check would fail and cause a panic when |
| a chunk allocated in such a way was freed |
| o bin sizes are now precomputed and looked up in an array |
| rather than being computed at runtime |
| o moved the _mstats declaration here to avoid the stats code |
| being linked in even when no stats functions were called |
| (only matters if MALLOC_DEBUG is defined) |
| o malloc now keeps track of the address of the top of the heap |
| and will return large chunks to the system with calls to |
| sbrk with a negative argument when freeing the top chunk. |
| Two thresholds: LESSCORE_FRC means to unconditionally return |
| memory to the system; LESSCORE_MIN means to return memory if |
| there's at least one block already on the free list |
| |
| lib/malloc/mstats.h |
| - stats struct now keeps track of number of block coalesces by bin, |
| and the number of times memory was returned to the system by bin |
| |
| lib/malloc/stats.c |
| - trace_malloc_stats now takes a second argument: the name of the file |
| to write to. The first `%p' in the template file name is replaced |
| by the pid |
| |
| 4/9 |
| --- |
| lib/malloc/imalloc.h |
| - added some macros derived from dlmalloc and glibc malloc to inline |
| memcpy and memset if the requested size is <= 32 bytes |
| |
| lib/malloc/malloc.c |
| - use MALLOC_MEMSET instead of memset in internal_{malloc,free} |
| |
| include/ocache.h |
| - use OC_MEMSET (variant of MALLOC_MEMSET) in ocache_free |
| |
| configure.in, config.h.in |
| - check for getservent(), define HAVE_GETSERVENT if found |
| |
| bashline.c |
| - punt immediately from bash_servicename_completion_function if |
| HAVE_GETSERVENT is not defined (cygwin seems to not define it) |
| - include "input.h" for extern save_token_state() and |
| restore_token_state() declarations |
| - change bash_execute_unix_command to call parse_and_execute with |
| SEVAL_NOHIST flag so the command doesn't get saved on the history |
| list |
| - change bash_execute_unix_command to save and restore the current |
| command line count and the token state (last_read_token, etc.). |
| Everything else is saved by either parse_and_execute directly or |
| the call it makes to push_stream(). The shell_input_line stuff |
| doesn't need to be saved and restored; it's not computed until |
| readline() returns |
| |
| 4/10 |
| ---- |
| lib/glob/glob.[ch] |
| - glob_filename and glob_vector now take an additional `flags' arg |
| - define GX_MARKDIRS as possible flag value for glob_filename and |
| glob_vector |
| |
| lib/sh/snprintf.c |
| - fixed some bugs with handling of `g' and `G' formats |
| - make sure numtoa returns the fractional part correctly when passed 0 |
| - implemented thousands grouping for `'' flag character |
| |
| lib/sh/rename.c |
| - a few changes to make it more bulletproof |
| |
| 4/11 |
| ---- |
| lib/glob/glob.c |
| - added the couple of dozen lines of code to glob_dir_to_array to |
| finish implementing GX_MARKDIRS |
| |
| builtins/set.def |
| - changed unset builtin so that it no longer considers unsetting an |
| unset variable or function to be an error |
| |
| lib/readline/display.c |
| - fix to rl_redisplay for a problem which caused display to be messed |
| up when the last line of a multi-line prompt (possibly containing |
| invisible characters) was longer than the screen width |
| |
| 4/15 |
| ---- |
| aclocal.m4 |
| - use AC_DEFINE_UNQUOTED in BASH_SYS_DEFAULT_MAIL_DIR instead of |
| enumerating all of the possible values and using AC_DEFINE |
| |
| 4/16 |
| ---- |
| Makefile.in, {builtins,support}/Makefile.in |
| - new variables, CFLAGS_FOR_BUILD and CPPFLAGS_FOR_BUILD, substituted |
| by `configure' |
| - changed CCFLAGS_FOR_BUILD to BASE_CCFLAGS, removing $(CPPFLAGS); |
| CCFLAGS and CCFLAGS_FOR_BUILD now include $(BASE_CCFLAGS) with |
| (possibly) different values for CPPFLAGS and CFLAGS |
| - GCC_LINT_CFLAGS now includes $(BASE_CCFLAGS) and $(CPPFLAGS) |
| instead of CCFLAGS_FOR_BUILD |
| - new variable, LDFLAGS_FOR_BUILD, right now equivalent to LDFLAGS |
| - remove $(CPPFLAGS) from recipes for buildversion, mksignames, and |
| mksyntax |
| |
| configure.in |
| - compute and substitute CFLAGS_FOR_BUILD, CPPFLAGS_FOR_BUILD, and |
| LDFLAGS_FOR_BUILD |
| - changed qnx to use LOCAL_LDFLAGS and LOCAL_LIBS instead of putting |
| everything in LOCAL_LDFLAGS |
| |
| builtins/Makefile.in |
| - remove $(PROFILE_FLAGS) from recipe for building `mkbuiltins' |
| - use LDFLAGS_FOR_BUILD instead of LDFLAGS in recipe for building |
| `mkbuiltins' |
| |
| Makefile.in |
| - use $(CC_FOR_BUILD) and $(CCFLAGS_FOR_BUILD) to build auxiliary |
| test programs (printenv, recho, zecho) |
| |
| support/Makefile.in |
| - use CC_FOR_BUILD and CCFLAGS_FOR_BUILD in recipe for building |
| `man2html' |
| |
| lib/tilde/Makefile.in |
| - substitute PROFILE_FLAGS, use PROFILE_FLAGS in $(CCFLAGS) |
| |
| 4/25 |
| ---- |
| Makefile.in, configure.in |
| - moved RELSTATUS to configure.in; configure substitutes it into |
| the generated Makefile |
| |
| lib/sh/snprintf.c |
| - fix wchars() to deal with systems where MB_CUR_MAX is not a |
| constant expression |
| |
| 5/2 |
| --- |
| lib/sh/shquote.c |
| - add `,' to list of chars that are backslash-quoted. It doesn't |
| hurt normal usage and prevents filenames with commas from being |
| inappropriately split by brace expansion after using |
| complete-into-braces |
| |
| 5/6 |
| --- |
| lib/sh/xstrchr.c |
| - we only need the check of MB_CUR_MAX and the slow code for a |
| few encodings, and even then only for a subset of the charset |
| |
| arrayfunc.c |
| - some speedups for skipsubscript and multibyte chars from Bruno Haible |
| |
| locale.c |
| - changed set_lang to call setlocale(LC_ALL, ...) if LC_ALL doesn't |
| already have a value, but doesn't change any shell variables |
| |
| include/shmbutil.h |
| - major speedups from Bruno Haible, mostly concerned with reducing |
| the number of strlen(3) calls |
| |
| subst.c |
| - change callers of macros in shmbutil.h to add extra argument as |
| necessary |
| - skip_single_quoted and skip_double_quoted take another argument: |
| the length of the string; mostly useful when using multibyte chars |
| - many speedups from precomputing string lengths at function start |
| - fixed a small bug in de_backslash in the midst of rewriting for |
| better efficiency |
| |
| {braces,make_cmd,pathexp}.c |
| - change callers of macros in shmbutil.h to add extra argument as |
| necessary |
| |
| pathexp.c |
| - fix a one-too-far problem with multibyte chars in |
| unquoted_glob_pattern_p |
| |
| braces.c |
| - brace_gobbler takes a new argument, the length of the passed string |
| - expand_amble takes a new argument, the length of the passed string |
| |
| 5/7 |
| --- |
| subst.c |
| - modified remove_quoted_nulls to eliminate the memory allocation and |
| do the copy in place using the same strategy as de_backslash |
| |
| lib/readline/{rldefs.h,complete.c} |
| - new define RL_QF_OTHER_QUOTE, so _rl_find_completion_word can note |
| that it found a quoting character other than \'" that appears in |
| rl_completer_quote_characters |
| |
| 5/9 |
| --- |
| jobs.c |
| - save and restore old value of jobs_list_frozen when calling trap |
| handlers from set_job_status_and_cleanup to avoid seg faults when |
| running recursive trap handlers |
| |
| 5/10 |
| ---- |
| builtins/common.h |
| - new #defines to use for value of changed_dollar_vars (provides |
| information about the caller who wants to blow away the old dollar |
| variables) |
| |
| builtins/common.c |
| - changed set_dollar_vars_changed to set changed_dollar_vars to one |
| of the ARGS_* values depending on the caller and environment |
| |
| builtins/source.def |
| - source restores the positional parameters unless the `set' builtin |
| was called to specify a new set while not executing a shell function |
| |
| 5/13 |
| ---- |
| POSIX |
| - new file, was in CWRU/POSIX.NOTES |
| |
| doc/{Makefile.in,Makefile} |
| - changed `posix' rule to modify ../POSIX |
| |
| doc/mkposix |
| - write to `POSIX' by default |
| |
| lib/sh/strtrans.c |
| - when ansicstr is parsing a format string for `echo -e' (or the |
| equivalent xpg_echo option is enabled), obey the POSIX-2001/SUSv3 |
| standard and accept 0-3 octal digits after a leading `0' |
| |
| doc/{bash.1,bashref.texi} |
| - updated `echo' description to note that up to three octal digits |
| are now accepted following `\0' |
| |
| 5/16 |
| ---- |
| doc/Makefile.in |
| - remove the generated documentation on `make distclean' if the |
| build directory and source directory are not the same |
| |
| Makefile.in |
| - descend into `support' subdirectory on a `make clean' and |
| `make distclean' |
| - remove parser-built, y.tab[ch] on a `make distclean' if the build |
| directory and source directory are not the same |
| |
| support/Makefile.in |
| - support various `clean' targets and remove man2html.o and man2html |
| |
| {configure,Makefile}.in |
| - move values for DEBUG and MALLOC_DEBUG into configure.in; on by |
| default for development versions; off by default for releases |
| (off for profiling, too) |
| |
| 5/21 |
| ---- |
| parse.y |
| - modified the grammar to allow a simple_list followed by yacc_EOF |
| to terminate a command. This fixes problems with things like |
| a backslash-newline at the end of an `eval'd string |
| - change handle_eof_input_unit() to reset the token state before |
| calling prompt_again(), in case the prompt to be evaluated contains |
| a command substitution |
| |
| 5/23 |
| ---- |
| lib/readline/vi_mode.c |
| - fix `r' command (rl_vi_change_char) when HANDLE_MULTIBYTE is defined |
| but MB_CUR_MAX == 1 |
| |
| 5/24 |
| ---- |
| lib/malloc/watch.c |
| - don't try to print `file' argument to _watch_warn if it's null |
| |
| lib/malloc/malloc.c |
| - changed guard checking code in internal_{malloc,free,realloc} to |
| access memory as (char *) and copy into a union instead of |
| casting and dereferencing a pointer to u_bits32_t, since that |
| results in unaligned accesses which will cause Sparcs to upchuck |
| |
| 5/30 |
| ---- |
| [bash-2.05b-beta1 released] |
| |
| lib/readline/text.c |
| - fixed a problem with rl_transpose_chars on systems supporting |
| multibyte characters with a locale that doesn't have any multibyte |
| chars |
| |
| 6/4 |
| --- |
| expr.c |
| - fix a/=0 and a%=0 to throw evaluation errors rather than core dumps |
| |
| lib/readline/display.c |
| - fix core dump when line wrapping a multibyte character (line |
| accidentally dropped from the original patch) |
| |
| lib/readline/mbutil.c |
| - fix reversed return value from _rl_is_mbchar_matched; fixes problem |
| with backward-char-search |
| |
| 6/10 |
| ---- |
| lib/sh/getenv.c |
| - fix getenv to not free value returned by find_tempenv_variable |
| - add setenv, putenv, unsetenv for completeness |
| |
| 6/12 |
| ---- |
| shell.c |
| - change init_noninteractive to init expand_aliases to the value of |
| posixly_correct |
| - don't initialize expand_aliases to posixly_correct anywhere else. |
| This allows the -O expand_aliases invocation option to work correctly |
| |
| general.c |
| - fix move_to_high_fd to not try the dup2 unless the fd loop results |
| in an fd > 3; just return the passed file descriptor otherwise |
| - use HIGH_FD_MAX, defined in general.h, instead of hard-coded 256 |
| as highest file descriptor to try |
| |
| subst.c |
| - in process_substitute, call move_to_high_fd with `maxfd' parameter |
| of -1 instead of 64, so move_to_high_fd will use its maximum |
| |
| 6/21 |
| ---- |
| lib/malloc/malloc.c |
| - don't bother calling MALLOC_MEMSET if the requested size is 0 |
| |
| builtins/setattr.def |
| - note in short doc that export and readonly can take assignment |
| statements as arguments |
| |
| error.c |
| - new function, error_prolog(), to capture common error message |
| prefix code (except for parser errors) |
| |
| 6/25 |
| ---- |
| aclocal.m4 |
| - add tests for standard-conforming declarations for putenv and |
| unsetenv in system header files |
| |
| {configure,config.h}.in |
| - call BASH_FUNC_STD_PUTENV and BASH_FUNC_STD_UNSETENV, define |
| HAVE_STD_GETENV and HAVE_STD_UNSETENV, respectively, if they |
| succeed |
| |
| lib/sh/getenv.c |
| - change putenv and unsetenv to take differing prototypes in |
| stdlib.h into account |
| |
| 6/27 |
| ---- |
| [bash-2.05b-beta2 released] |
| |
| 6/28 |
| ---- |
| builtins/common.c |
| - fix get_job_spec so that %N works when N is the size of the jobs |
| list (%8 means job 8, but the 7th member of the jobs array, so |
| it's OK if N == job_slots because the function returns N-1) |
| |
| 7/1 |
| --- |
| shell.c |
| - turn off line editing if $EMACS is set to `t' |
| |
| 7/10 |
| ---- |
| builtins/set.def |
| - remove mention of `-i' from long help doc, since it has no effect |