Files
bash/CWRU/old-changelogs/CWRU.chlog.v7
T

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