[gnu.bash.bug] Some bash bugs

keith%tira@GARGOYLE.UCHICAGO.EDU (06/14/89)

Hi!

I've found a number of bugs in bash -- compile-time problems actually.
I'm compiling for SunOS 4.0 on a Sun 4 (sparc) using Sun's cc.  I'm
enclosing the relevant parts of the Makefile at the end of this list.
I'm not sending you diffs because I cheated in my fixes (I just
commented out one or the other of the inconsistencies at random to
get it to compile).  So far, bash looks like it works fine.  I have to
say that it looks pretty much like the best of all three (sh/csh/ksh)
worlds.  Thanks!

[If you want more info or actual diffs or something, let me know.]

Most of the problems have to do with inconsistent declarations of functions.

1. get_string_value used (and implicitly declared int ()) prior to the
inclusion of variables.h, which declares it char *():

    $ egrep -n 'get_string_value|variables\.h' readline.[ch]
    readline.c:241:      rl_reset_terminal (get_string_value ("TERM"));
    readline.c:2152:#include "variables.h"
    readline.c:2582:      path = get_string_value ("PATH");
    readline.c:2840:          /* KDW: char *get_string_value (); */
    readline.c:2841:          temp_home = get_string_value ("HOME");
    readline.c:2873:              /* KDW: char *get_string_value (); */
    readline.c:2877:                tp = get_string_value ("PWD");
    readline.c:2879:                tp = get_string_value ("OLDPWD");

2. A couple missing \n\'s in builtins.c causes a newline in string
constant error, near line 364.

3. rl_handle_sigwinch forward-declared static near line 68 in readline.c
Can you do this in ANSI C??

4. move_cursor_relative forward-declared static near line 726 in
readline.c.

5. throw_to_top_level forward-declared Sighandler on line 528 in
shell.c and implicitly declared int later.

6. termination_unwind_protect forward-declared Sighandler on line 756 in
shell.c and implicitly declared int later.

The pertinent parts of my makefile follow:

----- Makefile (extracts) -----
# Of course, you cannot do this the first time through...
#SHELL=/usr/gnu/bin/bash
SHELL=/bin/sh

MAINTAINER = '"keith@curry.uchicago.edu"'

# Destination installation directory.  The shell is copied here if
# you do a `make install'.  The directory name does NOT end in a slash.
DESTDIR = /usr/local/bin

# The name of the target hardware.  It makes a difference.  If your
# machine doesn't seem to be represented by one of the machines here,
# try one and see how well you do.
# SUN3, SUN4, VAX, SONY, CONVEX, HP, HP9KS300
TARGET = SUN4

# The name of the target operating system.  There isn't such a big
# difference between SUNOS3 and Bsd.  But there might be in the future.
# SUNOS3, SUNOS4, SYSV, Bsd, HPUX
OS = SUNOS4

# You only need this if you are hacking the shell in a location
# that doesn't do enough backups, or does a poor job.  In that
# case, BACKUP_DIR should be the name of a directory on another
# device (i.e. different than the one you are building the shell
# on), and you should do `make backup' at least once a day.
BACKUP_DIR = /usr/gnu/backups

# PROFILE_FLAGS is either -pg, to generate profiling info for use
# with gprof, or nothing (the default).
PROFILE_FLAGS=

# HP-UX compilation requires the BSD library.
#LOCAL_LIBS = -lBSD

#GCC_SUNOS4_FLAG = -Bstatic
DEBUG_FLAGS = $(PROFILE_FLAGS) -g $(GCC_SUNOS4_FLAG)
LDFLAGS = $(DEBUG_FLAGS) 
CFLAGS = $(DEBUG_FLAGS) -D${TARGET} -DTARGET=${TARGET} -D${OS}

# The name of the termcap library.  /usr/local/lib/gnutermcap?
TERMCAP = termcap

# If you don't have Bison use "yacc".  Otherwise use "bison -y".
BISON = yacc

# If you don't have Gcc use cc.
GCC = cc

# Make TRADITIONAL be `-traditional' if you are using Gcc 1.2x
# or greater.
TRADITIONAL = 
#
####################################################################

# Don't change this one, change the one above it.
CC = $(GCC)
----- End of Makefile extracts -----



Keith Waclena                             keith@curry.uchicago.edu
TIRA / U of Chicago	                  keith%curry@uchimvs1.bitnet
1100 E.57th.St Chi IL 60637               ...uunet!curry.uchicago.edu!keith