mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-07-01 17:39:56 +02:00
672 lines
19 KiB
Plaintext
672 lines
19 KiB
Plaintext
[Beginning of work with version 1.11]
|
|
|
|
10/31
|
|
-----
|
|
Makefile
|
|
- changed instances of $(AWK) to $(GAWK) -- political correctness from
|
|
bfox
|
|
|
|
builtins.h, builtins/help.def, builtins/mkbuiltins.c
|
|
- changed representation of long_doc from a single string to an
|
|
array of strings
|
|
|
|
execute_cmd.c
|
|
- only call __setostype() if on isc386 and _POSIX_SOURCE is
|
|
defined
|
|
|
|
general.c
|
|
- only define functions for index and rindex if index and rindex
|
|
are not already cpp defines
|
|
|
|
jobs.c
|
|
- #undef some things that clash between <sys/ioctl.h> and <termios.h>
|
|
on Posix suns
|
|
|
|
machines.h
|
|
- make isc386 machines links with the shared C library explicitly
|
|
(-lc_s)
|
|
- new entry for a MagicStation (?) from bfox
|
|
|
|
variables.c
|
|
- use a cpp define _CONST_HACK to determine whether the parameter to
|
|
getenv() is a char const * (yes for _STDC_, no otherwise)
|
|
|
|
builtins/type.def
|
|
- make found_file local to the block that searches for executable
|
|
disk files
|
|
|
|
11/4
|
|
----
|
|
execute_cmd.c
|
|
- make execute_function_or_builtin use unwind protects to protect
|
|
the `return catch' variables
|
|
|
|
support/getcppsyms.c
|
|
- added definitions for M_UNIX, M_XENIX, and _AIX
|
|
|
|
11/5
|
|
----
|
|
bashline.c
|
|
- fix a call to savestring in command_word_completion_function with
|
|
a post-incremented int parameter, since savestring is a macro that
|
|
evaluates its argument twice (builtin completion)
|
|
|
|
lib/glob/fnmatch.c
|
|
- add `^' as a character that negates a character class ([])
|
|
|
|
11/6
|
|
----
|
|
subst.c
|
|
- add a new variable last_command_subst_pid to keep track of the
|
|
pid of the last child created for command substitution. Used
|
|
to determine whether or not command substitution has taken
|
|
place.
|
|
|
|
execute_cmd.c
|
|
- made the exit status of a command that has only assignments and
|
|
redirections obey the Posix spec
|
|
|
|
unwind_prot.c, trap.c
|
|
- make sure all sigset_t variables are initialized with sigemptyset
|
|
before use
|
|
|
|
lib/glob/fnmatch.c
|
|
- fixed a couple of bugs with [] classes in fnmatch: not checking
|
|
whether or not we've hit the ']' and not incrementing the string
|
|
argument in the right place
|
|
|
|
11/7
|
|
----
|
|
braces.c
|
|
- Make backquotes inhibit brace expansion -- defer it until the
|
|
subshell runs
|
|
- Ditto for $( )
|
|
|
|
subst.c
|
|
- since braces.c now calls unquoted_member and unquoted_substring,
|
|
they can no longer be static functions
|
|
|
|
config.h
|
|
- two new configuration options: ALLOW_RIGID_POSIX_COMPLIANCE and
|
|
DISABLED_BUILTINS
|
|
|
|
shell.c, jobs.c
|
|
- define and use top_level_signal_mask, restored on longjmps to
|
|
top_level by throw_to_top_level
|
|
|
|
builtins/builtin.def
|
|
- use builtin_address to find the function (if so configured) so
|
|
that `builtin foo' still works after `enable -n foo'
|
|
|
|
builtins/common.c
|
|
- have both find_shell_builtin, which never finds disabled builtins,
|
|
and builtin_address, which does
|
|
|
|
11/8
|
|
----
|
|
general.c
|
|
- the getdtablesize emulation should ensure that _SC_OPEN_MAX is
|
|
defined on Posix systems before trying to use it in a call to
|
|
sysconf()
|
|
|
|
|
|
11/10
|
|
-----
|
|
lib/glob/fnmatch.c
|
|
- fixes from Roland McGrath for some of the more egregious bugs
|
|
- naturally, Roland missed a few
|
|
|
|
lib/readline/readline.c
|
|
- add missing calls to sigemptyset(), since Posix specifies that
|
|
all sigset_t variables be initialized before use using it
|
|
- only turn off ISTRIP and INPCK in the termio(s) code if the
|
|
character size is 8 bits ((otio.c_cflag & CSIZE) == CS8)
|
|
- Sequents running Dynix/ptx should include <sys/pte.h> rather
|
|
that <sys/ptem.h>
|
|
|
|
builtins/type.def
|
|
- change a call to printf to builtin_error when printing a
|
|
diagnostic that something is not found
|
|
|
|
builtins/times.def
|
|
- changed file inclusion code to include <sys/time.h> and
|
|
<sys/resource.h> if HAVE_RESOURCE is defined, then to include
|
|
<sys/times.h> if !HAVE_RESOURCE and RUSAGE_SELF is not defined.
|
|
This catches systems with deficient <sys/resource.h> files
|
|
|
|
11/11
|
|
-----
|
|
lib/readline/readline.c
|
|
- Don't try to dereference funmap in rl_named_function() if it's
|
|
null (as it is before rl_initialize_funmap is called)
|
|
|
|
11/12
|
|
-----
|
|
lib/readline/readline.c
|
|
- backed out of change of 11/11 to rl_named_function
|
|
|
|
bashline.c
|
|
- add a state variable bash_readline_initialized to keep track of
|
|
whether or not readline has been initialized with a call to
|
|
initialize_readline()
|
|
|
|
builtins/bind.def
|
|
- if readline has not been initialized the first time this is
|
|
called, call initialize_readline
|
|
|
|
11/13
|
|
-----
|
|
execute_cmd.c
|
|
- execute_subshell_builtin_or_function would only let the output
|
|
of `jobs' be piped if pipe_in and pipe_out were both != NO_PIPE
|
|
(?). Obviously a typo.
|
|
|
|
builtins/command.def
|
|
- add an unwind_protect to dispose of the new command created
|
|
by the call to make_bare_simple_command
|
|
|
|
builtins/jobs.def
|
|
- add the `jobs -x command args' form from the System V.4 sh
|
|
All job specs in `args' are replaced with the appropriate
|
|
job's process group id and `command' is executed
|
|
|
|
builtins/getopt.c
|
|
- if getopt() finds that optind > argc when it is called, it
|
|
sets optind = argc and returns EOF
|
|
|
|
builtins/times.def
|
|
- backed out of 11/10 change. Some systems, most notably
|
|
HP/UX have all the correct includes and defines and simply
|
|
do not implement getrusage(). At all.
|
|
|
|
subst.c
|
|
- if sv_optind finds that OPTIND has been unset or set to an
|
|
empty string, call getopts_reset (0). The Gnu getopt
|
|
resets its internal state when optind == 0.
|
|
- call getopts_reset(0) if OPTIND=1, because that's what the
|
|
Posix spec says to use to reset
|
|
|
|
11/14
|
|
-----
|
|
builtins/alias.def
|
|
- fixed a typo in the SHORT_DOC for the unalias builtin
|
|
|
|
builtins/shift.def
|
|
- allowed the shift count to be 0
|
|
|
|
11/15
|
|
-----
|
|
lib/readline/readline.c
|
|
- turn on 8 bit characters if NO_EIGHT_BIT_CHARACTERS is not
|
|
defined and the Posix termios code path is being taken
|
|
|
|
[The following two entries describe what's needed for an initial
|
|
implementation of the vi mode `.' command]
|
|
|
|
lib/readline/vi_mode.c
|
|
- new variables:
|
|
vi_last_command: last command that modified text in
|
|
the buffer
|
|
vi_last_repeat: the repeat count to vi_last_command
|
|
vi_last_arg_sign: arg sign for vi_last_repeat
|
|
vi_last_motion: the last motion qualifier for the
|
|
text modification commands that use one
|
|
vi_redoing: state variable, if 1 we're re-doing a
|
|
command
|
|
vi_textmod: list of commands that modify text
|
|
(initially "_*\\AaIiCcDdPpYyRrSsXx~")
|
|
|
|
- new functions:
|
|
rl_vi_redo: an initial implementation of the vi mode
|
|
`.' command
|
|
rl_vi_set_last: initialize the state of the new variables
|
|
described above
|
|
rl_vi_textmod_command: return true if command passed is
|
|
a text modification command
|
|
- changed rl_vi_domove to save the movement command information in
|
|
vi_last_motion
|
|
- changed rl_vi_movement_mode to call rl_vi_set_last to initialize
|
|
the `last command' state
|
|
|
|
lib/readline/readline.c
|
|
- changed rl_dispatch to save vi_last_command, vi_last_repeat,
|
|
and vi_last_arg_sign
|
|
- changed rl_newline to call vi_set_last
|
|
|
|
lib/readline/readline.h
|
|
- new function rl_vi_redo
|
|
|
|
lib/readline/vi_keymap.c
|
|
- bind rl_vi_redo to `.'
|
|
|
|
11/20
|
|
-----
|
|
posixstat.h
|
|
- make isc386 defines for S_IFDIR and S_IFMT be used if they
|
|
do not already appear, no matter whether or not gcc is being
|
|
used for the compile
|
|
|
|
machines.h
|
|
- new entry for Omron Luna 88k running Mach 2.5 (nice machines)
|
|
|
|
lib/readline/vi_mode.c
|
|
- fixed a bug with rl_vi_domove and the last word on the line.
|
|
If rl_point ended up > rl_end, it was being set to rl_end - 1
|
|
rather than to rl_end.
|
|
|
|
cpp-Makefile
|
|
- quote the values of RANLIB and AR passed to makes in
|
|
subdirectories
|
|
|
|
shell.c
|
|
- instead of making all Xenix systems swap the second and third
|
|
arguments to setvbuf, make that behavior dependent on the
|
|
definition of REVERSED_SETVBUF_ARGS
|
|
|
|
11/21
|
|
-----
|
|
lib/readline/readline.c
|
|
- fixed an error in rl_forward that caused vi-mode to walk off
|
|
the end of the line after executing `l' in command mode on an
|
|
empty line
|
|
|
|
11/22
|
|
-----
|
|
support/getcppsyms.c
|
|
- added the `luna88k' define
|
|
|
|
11/24
|
|
-----
|
|
execute_cmd.c
|
|
- all calls to dup2 in do_redirection_internal should be checked
|
|
for errors and the redirection should fail if the dup2 fails
|
|
|
|
shell.h, parse.y, execute_cmd.c, print_cmd.c, make_cmd.c
|
|
- replaced the single redirection operator `r_duplicating' with
|
|
r_duplicating_input and r_duplicating_output to avoid the
|
|
read 1<&7 getting printed as read 1>&7 problem:
|
|
foo()
|
|
{
|
|
exec 9</dev/tty
|
|
read 1<&9
|
|
exec 9<&-
|
|
}
|
|
is printed wrong when `type foo' is executed
|
|
|
|
shell.h
|
|
- added two new redirection_operators, r_duplicating_input_word and
|
|
r_duplicating_output_word to implement true sh semantics for
|
|
[n]<&word and [n]>&word
|
|
parse.y
|
|
- eliminated the old yacc production for >& word, meaning put stdout
|
|
and stderr into `word'
|
|
- added productions for [n]<&word and [n]>&word that use the new
|
|
redirection operators
|
|
execute_cmd.c
|
|
- the first thing done in do_redirection_internal is now a check for
|
|
r_duplicating_input_word and r_duplicating_output_word. If the
|
|
redirection is one of those two, `word' is expanded and a new
|
|
redirection is made
|
|
print_cmd.c
|
|
- new code to print the [n]<&word and [n]>&word redirections
|
|
(r_duplicating_input_word and r_duplicating_output_word)
|
|
make_cmd.c
|
|
- new code for make_redirection to handle r_duplicating_input_word
|
|
and r_duplicating_output_word
|
|
|
|
documentation/bash.1
|
|
- added documentation for the -x option to `jobs' + minor cleanups
|
|
and corrections
|
|
|
|
11/25
|
|
-----
|
|
cpp-Makefile
|
|
- added GCC_EXTRAS for gcc-specific compiler flags
|
|
|
|
execute_cmd.c
|
|
- removed some unused functions (close_all_files) and variables
|
|
(file_exists_p)
|
|
|
|
parse.y
|
|
- added new command-oriented-style history: all lines of a multiple
|
|
line command will be added to the same history line
|
|
- new variable current_command_line_count to keep track of the
|
|
number of lines in the current command. If > 1, a line is appended
|
|
to the current history line to implement command-oriented history
|
|
- new function bash_add_history
|
|
|
|
shell.c
|
|
- added code to reset current_command_line_count to 0 before calling
|
|
parse_command and yyparse
|
|
|
|
subst.c
|
|
- the command-oriented history is controlled by the setting of the
|
|
variable command_oriented_history
|
|
|
|
builtins/reserved.def
|
|
- a new help topic: `variables', giving help on some common shell
|
|
variables
|
|
|
|
11/26
|
|
-----
|
|
lib/glob/glob.c
|
|
- if the filename portion of the pathname to be matched is null
|
|
(e.g. a*/), do not call glob_vector to attempt to match each
|
|
file in the expanded directories against the null string.
|
|
|
|
11/27
|
|
-----
|
|
lib/glob/glob.c
|
|
- force globbing of directory names even if the metacharacters
|
|
contained therein are protected by backslashes. The globbing
|
|
strips the quotes correctly
|
|
|
|
shell.c
|
|
- make sure current_command_line_count is declared everywhere
|
|
it's used
|
|
|
|
parse.y
|
|
- remove declaration of history_lines_this_session from
|
|
pre_process_line
|
|
- add extern declaration of history_lines_this_session to
|
|
bash_add_history
|
|
|
|
12/2
|
|
----
|
|
trap.h
|
|
- removed inclusion of <sys/types.h> because most files include it
|
|
themselves, and this is dangerous on systems that do not protect
|
|
against multiple inclusion of header files
|
|
|
|
trap.c
|
|
- include <sys/types.h> before "trap.h" since it was the only file
|
|
in the distribution not to do so
|
|
|
|
shell.c
|
|
- Install the SIGINT sighandler the Posix way on machines with
|
|
_POSIX_VERSION defined
|
|
|
|
12/3
|
|
----
|
|
dispose_cmd.c
|
|
- make sure dispose_redirects properly handles r_duplicating_input_word
|
|
and r_duplicating_output_word by freeing the `filename'
|
|
|
|
execute_cmd.c
|
|
- fix do_redirection_internal to copy new_redirect->redirectee.filename
|
|
using alloca() so no memory has to be freed at function exit
|
|
|
|
12/4
|
|
----
|
|
parse.y
|
|
- expand \n in PS1 or PS2 into \r\n only if line editing is enabled
|
|
|
|
shell.c
|
|
- define top_level_mask if _POSIX_VERSION defined
|
|
|
|
newversion.c
|
|
- made it write a definition of SCCSVERSION to version.h -- an SCCS
|
|
string so the `what' command will be useful
|
|
|
|
version.c
|
|
- new variable `sccsversion' set to SCCSVERSION
|
|
|
|
12/5
|
|
----
|
|
builtins/fc.def
|
|
- make fc_gethist check that the history list is non-null before
|
|
trying to access its members
|
|
|
|
12/6
|
|
----
|
|
lib/readline/readline.c
|
|
- changed the ISTRIP code (again) to force bash to disable ISTRIP
|
|
only if the tty driver guarantees eight bits (cflag & CSIZE == CS8)
|
|
|
|
12/9
|
|
----
|
|
lib/readline/readline.c
|
|
- tgetent returns 0 if it can't find the terminal name in /etc/termcap,
|
|
so we failed if it returns <= 0, not < 0.
|
|
|
|
12/11
|
|
-----
|
|
machines.h
|
|
- Sony machines running NEWS-OS 4.0 (V.4) should have strerror(),
|
|
so define HAVE_STRERROR
|
|
- Pyramids running BSD do not all have the vprintf family of functions,
|
|
so remove the definition of HAVE_VPRINTF
|
|
|
|
12/12
|
|
-----
|
|
parse.y
|
|
- make sure that shell_getc always checks that shell_input_line is
|
|
valid before trying to reference shell_input_line[0]
|
|
|
|
12/13
|
|
-----
|
|
mailcheck.c
|
|
- Since `dollar_underscore' saves the value of $_ in a local variable,
|
|
it's possible that bind_variable can free and reallocate the cell
|
|
for $_, leaving dollar_underscore pointing at freed storage. The
|
|
fix is to copy it into freshly-allocated memory.
|
|
- ensure that when saving and restoring dollar_underscore that we do
|
|
not try to call strlen on a null string
|
|
|
|
12/15
|
|
-----
|
|
general.c, execute_cmd.c
|
|
- moved the utility function `all_digits' from execute_cmd.c to
|
|
general.c
|
|
|
|
builtins/kill.def
|
|
- remove use of sscanf, used calls to all_digits and atoi instead
|
|
|
|
machines.h
|
|
- if not using gcc, need to make SYSDEP_LDFLAGS = -Xp for Posix
|
|
on isc386
|
|
|
|
12/16
|
|
-----
|
|
machines.h
|
|
- isc386 has multiple groups
|
|
|
|
execute_cmd.c
|
|
- add a QUIT to the while loop in find_user_command_in_path that
|
|
searches the path, so users can interrupt a lengthy path search
|
|
|
|
12/17
|
|
-----
|
|
builtins/alias.def
|
|
- added the Posix-specified -a option to unalias, made unalias obey
|
|
the getopt argument syntax guidelines
|
|
|
|
builtins/jobs.def
|
|
- made `jobs' handle the -- option to signal the end of arguments
|
|
|
|
flags.c
|
|
- Posix.2a has specified that the -b flag stand for asynchronous
|
|
notification, so move the definition of asynchronous_notification
|
|
here and add a new entry to the `flags' struct if JOB_CONTROL is
|
|
defined
|
|
|
|
flags.h
|
|
- add an extern declaration of asynchronous_notification
|
|
|
|
jobs.c
|
|
- change the definition of asynchronous_notification to extern, since
|
|
it's now declared in flags.c
|
|
|
|
builtins/set.def
|
|
- change documentation strings to add -b option, note that
|
|
set -o notify is now the same as set -b
|
|
- change the code to make set -o notify the same as set -b
|
|
(list_long_opts(), take the special case out of set_minus_o_option)
|
|
|
|
12/19
|
|
-----
|
|
lib/readline/readline.c
|
|
- added support for $LINES, $COLUMNS. The variables are read after
|
|
the ioctl(TIOCGWINSZ) and before calls to tgetent
|
|
|
|
builtins/fc.def
|
|
- made the fc output format correspond to that specified by Posix.2a
|
|
("%d\t%s\n")
|
|
|
|
12/20
|
|
-----
|
|
execute_cmd.c
|
|
- user_command_matches did not properly handle a null $PATH element,
|
|
which should be the same as ".". Changed the code to mirror
|
|
find_user_command_in_path ()
|
|
|
|
|
|
12/23
|
|
-----
|
|
execute_cmd.c
|
|
- added a new function get_next_path_element, which calls
|
|
extract_colon_unit and interprets the result, translating
|
|
"" to "."
|
|
|
|
builtins/cd.def
|
|
- added description of -l option to dirs short_doc
|
|
- fixed the bug that caused `dirs' to always print an extra
|
|
trailing space
|
|
|
|
documentation/bash.1
|
|
- added description of -l option to dirs
|
|
|
|
parse.y
|
|
- added optional leading ( for case clause, as per Posix.2
|
|
|
|
12/30
|
|
-----
|
|
lib/readline/vi_mode.c
|
|
- removed unused variable `added_blank'
|
|
|
|
bashline.c
|
|
- added dynamic completion from bfox
|
|
|
|
execute_cmd.c
|
|
- redirections must be performed in a child before execution of
|
|
the command is attempted or aborted (because it's not found
|
|
by a hash table or $PATH search), according to Posix.2
|
|
|
|
getcwd.c
|
|
- new file, from the Gnu C library, for systems that don't do
|
|
this right -- they use popen("/bin/pwd", "r") instead
|
|
|
|
12/31
|
|
-----
|
|
builtins/type.def
|
|
- the type builtin would not report a name as not found if any name
|
|
had previously been found because the flag variable used to report
|
|
this (found_something) was not reset each time through the loop.
|
|
Added a variable `found_any' to be global and reset found_something
|
|
to 0 each time through the loop
|
|
|
|
1/4
|
|
---
|
|
builtins/jobs.def
|
|
- make sure that the call to add_unwind_protect in
|
|
execute_list_with_replacements is made after the new command
|
|
struct is completely initialized
|
|
|
|
support/mksysdefs
|
|
- look for /dev/fd, define HAVE_DEV_FD if present
|
|
|
|
cpp-Makefile
|
|
- pass HAVE_DEV_FD through to make in SYSTEM_FLAGS
|
|
|
|
shell.c, execute_cmd.c
|
|
- call unlink_fifo_list only if HAVE_DEV_FD is not defined and
|
|
PROCESS_SUBSTITUTION is defined
|
|
|
|
subst.c
|
|
- new function make_dev_fd_filename to return /dev/fd/xx, where
|
|
xx corresponds to the parent end of the pipe
|
|
- all the named pipe utility functions should be #if !defined
|
|
(HAVE_DEV_FD)
|
|
- change process_subsitute to do the following on systems with /dev/fd:
|
|
1. Make a pipe in the parent
|
|
2. if (open_for_read_in_child)
|
|
parent_pipe_fd = fildes[1]
|
|
child_pipe_fd = fildes[0]
|
|
else
|
|
parent_pipe_fd = fildes[0]
|
|
child_pipe_fd = fildes[1]
|
|
3. pathname = make_dev_fd_filename (parent_pipe_fd);
|
|
4. fork
|
|
5. In parent, close child_pipe_fd and return pathname
|
|
6. In child, turn off job control, dup child_pipe_fd to
|
|
either fd 0 or 1 depending on OPEN_FOR_READ_IN_CHILD,
|
|
close parent_pipe_fd, parse and execute the string,
|
|
and exit
|
|
|
|
shell.c
|
|
- added call to unlink_fifo_list in reader_loop so that all fifos
|
|
get closed, even after builtin commands are executed
|
|
|
|
1/6
|
|
---
|
|
machines.h, make_cmd.c, print_cmd.c, shell.c, cpp-Makefile
|
|
- HAVE_VPRINTF --> HAVE_VFPRINTF
|
|
|
|
cpp-Makefile, machines.h, test.c
|
|
- HAVE_MULTIPLE_GROUPS --> HAVE_GETGROUPS
|
|
|
|
cpp-Makefile, machines.h
|
|
- HAVE_SIGLIST --> HAVE_SYS_SIGLIST
|
|
|
|
parse.y
|
|
- add if_command production
|
|
|
|
builtins/echo.def
|
|
- validate all arguments before using them so that -nanything != -n
|
|
- document the -E option and its use
|
|
|
|
builtins/umask.def
|
|
- allow other arguments to be used with -S
|
|
|
|
subst.c
|
|
- make sure to close all files in the child created to run a
|
|
process substutition to avoid holding write file descriptors
|
|
to pipes that will cause the shell to hang
|
|
|
|
1/7
|
|
---
|
|
cpp-Makefile
|
|
- fixed a typo: SEARCHLIB -> SEARCH_LIB
|
|
|
|
machines.h
|
|
- new description for Amiga 3000 running System V.4
|
|
|
|
shell.c
|
|
- default secondary prompt is now "> "
|
|
|
|
builtins/bashgetopt.c
|
|
- more internal cleanups and bug fixes
|
|
|
|
support/mksysdefs
|
|
- detect the amiga by the presence of /usr/amiga
|
|
|
|
1/9
|
|
---
|
|
general.c
|
|
- canonicalize_pathname should remove ./ only if it's at the
|
|
beginning of the pathname, or immediately preceded by a `/'
|
|
|
|
1/10
|
|
----
|
|
documentation/bash.1
|
|
- clean up the documentation for test -t, since according to
|
|
Posix, it always requires an argument
|
|
|
|
general.c
|
|
- don't build index and rindex for DG machines
|
|
|
|
|
|
machines.h
|
|
- description for System V.4 on IBM 370 architecture
|
|
- fixed up DG/UX machine description
|