summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJari Aalto <jari.aalto@cante.net>1997-09-22 20:22:27 +0000
committerJari Aalto <jari.aalto@cante.net>2009-09-12 16:46:51 +0000
commite8ce775db824de329b81293b4e5d8fbd65624528 (patch)
tree4b20c4dc766f5172b65ca1bc16ae1b6d48920fa1
parentd166f048818e10cf3799aa24a174fb22835f1acc (diff)
downloadbash-e8ce775db824de329b81293b4e5d8fbd65624528.tar.gz
Imported from ../bash-2.01.1.tar.gz.
-rw-r--r--CHANGES103
-rw-r--r--aclocal.m435
-rw-r--r--bashline.c16
-rw-r--r--bracecomp.c47
-rw-r--r--builtins/Makefile.in6
-rw-r--r--builtins/declare.def2
-rw-r--r--builtins/evalstring.c7
-rw-r--r--builtins/read.def13
-rw-r--r--builtins/setattr.def4
-rw-r--r--builtins/trap.def14
-rw-r--r--config.h.in4
-rwxr-xr-xconfigure646
-rw-r--r--configure.in8
-rw-r--r--doc/Makefile.in3
-rw-r--r--doc/bashref.info996
-rw-r--r--doc/bashref.texi5
-rw-r--r--doc/texinfo.tex1205
-rw-r--r--execute_cmd.c23
-rw-r--r--externs.h4
-rw-r--r--flags.c5
-rw-r--r--general.c3
-rw-r--r--jobs.c17
-rw-r--r--lib/glob/Makefile.in4
-rw-r--r--lib/malloc/Makefile.in12
-rw-r--r--lib/readline/Makefile.in30
-rw-r--r--lib/readline/complete.c4
-rw-r--r--lib/readline/display.c7
-rw-r--r--lib/readline/histfile.c4
-rw-r--r--lib/readline/isearch.c2
-rw-r--r--lib/readline/readline.h2
-rw-r--r--lib/readline/tilde.c2
-rw-r--r--lib/tilde/Makefile.in3
-rw-r--r--lib/tilde/tilde.c2
-rw-r--r--locale.c10
-rw-r--r--mailcheck.c2
-rw-r--r--oslib.c12
-rw-r--r--parse.y15
-rw-r--r--print_cmd.c12
-rw-r--r--shell.c14
-rw-r--r--sig.c6
-rw-r--r--sig.h2
-rw-r--r--siglist.c4
-rw-r--r--subst.c25
-rwxr-xr-xsupport/config.guess15
-rw-r--r--test.c10
-rw-r--r--tests/array.right4
-rw-r--r--trap.c26
-rw-r--r--variables.c18
-rw-r--r--version.c2
-rw-r--r--y.tab.c247
50 files changed, 2165 insertions, 1497 deletions
diff --git a/CHANGES b/CHANGES
index a6f7472e..830dafe4 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,106 @@
+This document details the changes between this version, bash-2.01.1-release,
+and the previous version, bash-2.01-release.
+
+1. Changes to Bash
+
+a. The select command was fixed to check the validity of the user's
+ input more strenuously.
+
+b. A bug was fixed that prevented `time' from timing commands correctly
+ when supplied as an argument to `bash -c'.
+
+c. A fix was made to the mail checking code to keep from adding the same
+ mail file to the list of files to check multiple times when parsing
+ $MAILPATH.
+
+d. Fixed an off-by-one error in the tilde expansion library.
+
+e. When using the compound array assignment syntax, the old value of
+ the array is cleared before assigning the new value.
+
+f. Fixed a bug that could cause a core dump when a trap handler was reset
+ to the default in the trap command associated with that signal.
+
+g. Fixed a bug in the locale code that occurred when assigning a value
+ to LC_ALL.
+
+h. A change was made to the parser so that words of the form xxx=(...)
+ are not considered compound assignment statements unless there are
+ characters before the `='.
+
+i. A fix was made to the command tracing code to correctly quote each
+ word of output.
+
+j. Some changes were made to the bash-specific autoconf tests to make them
+ more portable.
+
+k. Completion of words with globbing characters now correctly quotes the
+ result.
+
+l. The directory /var/spool/mail is now preferred to /usr/spool/mail when
+ configure is deciding on the default mail directory.
+
+m. The brace completion code was fixed to not quote the `{' and `}'.
+
+n. Some fixes were made to make $RANDOM more random in subshells.
+
+o. System-specific changes were made to configure for: SVR4.2
+
+p. Changes were made so that completion of words containing globbing chars
+ substitutes the result only if a single filename was matched.
+
+q. The window size is now recomputed after a job is stopped with SIGTSTP if
+ the user has set `checkwinsize' with `shopt'.
+
+r. When doing substring expansion, out-of-range substring specifiers now
+ cause nothing to be substituted rather than an expansion error.
+
+s. A fix was made so that you can no longer trap `SIGEXIT' or `SIGDEBUG' --
+ only `EXIT' and `DEBUG' are accepted.
+
+t. The display of trapped signals now uses the signal number if signals
+ for which bash does not know the name are trapped.
+
+u. A fix was made so that `bash -r' does not turn on restricted mode until
+ after the startup files are executed.
+
+v. A bug was fixed that occasionally caused a core dump when a variable
+ found in the temporary environment of export/declare/readonly had a
+ null value.
+
+w. A bug that occasionally caused unallocated memory to be passed to free()
+ when doing arithmetic substitution was fixed.
+
+x. A bug that caused a buffer overrun when expanding a prompt string
+ containing `\w' and ${#PWD} exceeded PATH_MAX was fixed.
+
+y. A problem with the completion code that occasionally caused it to
+ refer to a character before the beginning of the readline line buffer
+ was fixed.
+
+z. A bug was fixed so that the `read' builtin restarts reads when
+ interrupted by signals other than SIGINT.
+
+aa. Fixed a bug that caused a command to be freed twice when there was
+ an evaluation error in the `eval' command.
+
+2. Changes to Readline
+
+a. Added a missing `extern' to a declaration in readline.h that kept
+ readline from compiling cleanly on some systems.
+
+b. The history file is now opened with mode 0600 when it is written for
+ better security.
+
+c. Changes were made to the SIGWINCH handling code so that prompt redisplay
+ is done better.
+
+d. ^G now interrupts incremental searches correctly.
+
+e. A bug that caused a core dump when the set of characters to be quoted
+ when completing words was empty was fixed.
+
+------------------------------------------------------------------------------
This document details the changes between this version, bash-2.01-release,
and the previous version, bash-2.01-beta2.
diff --git a/aclocal.m4 b/aclocal.m4
index b852ac02..85fbb74a 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -197,8 +197,26 @@ fi
dnl
dnl Check for sys_siglist[] or _sys_siglist[]
dnl
+AC_DEFUN(BASH_DECL_UNDER_SYS_SIGLIST,
+[AC_MSG_CHECKING([for _sys_siglist in signal.h or unistd.h])
+AC_CACHE_VAL(bash_cv_decl_under_sys_siglist,
+[AC_TRY_COMPILE([
+#include <sys/types.h>
+#include <signal.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif], [ char *msg = _sys_siglist[2]; ],
+ bash_cv_decl_under_sys_siglist=yes, bash_cv_decl_under_sys_siglist=no,
+AC_MSG_ERROR(cannot check for _sys_siglist[] if cross compiling))])dnl
+AC_MSG_RESULT($bash_cv_decl_under_sys_siglist)
+if test $bash_cv_decl_under_sys_siglist = yes; then
+AC_DEFINE(UNDER_SYS_SIGLIST_DECLARED)
+fi
+])
+
AC_DEFUN(BASH_UNDER_SYS_SIGLIST,
-[AC_MSG_CHECKING([for _sys_siglist in system C library])
+[AC_REQUIRE([BASH_DECL_UNDER_SYS_SIGLIST])
+AC_MSG_CHECKING([for _sys_siglist in system C library])
AC_CACHE_VAL(bash_cv_under_sys_siglist,
[AC_TRY_RUN([
#include <sys/types.h>
@@ -206,12 +224,12 @@ AC_CACHE_VAL(bash_cv_under_sys_siglist,
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
-#ifndef _sys_siglist
+#ifndef UNDER_SYS_SIGLIST_DECLARED
extern char *_sys_siglist[];
#endif
main()
{
-char *msg = _sys_siglist[2];
+char *msg = (char *)_sys_siglist[2];
exit(msg == 0);
}],
bash_cv_under_sys_siglist=yes, bash_cv_under_sys_siglist=no,
@@ -434,7 +452,7 @@ typedef int (*_bashfunc)();
main()
{
_bashfunc pf;
-pf = printf;
+pf = (_bashfunc) printf;
exit(pf == 0);
}
],bash_cv_printf_declared=yes, bash_cv_printf_declared=no,
@@ -911,7 +929,10 @@ AC_DEFUN(BASH_CHECK_GETPW_FUNCS,
AC_CACHE_VAL(bash_cv_can_redecl_getpw,
[AC_TRY_COMPILE([#include <sys/types.h>
#include <pwd.h>
-extern struct passwd *getpwent();], [struct passwd *z; z = getpwent();],
+extern struct passwd *getpwent();
+extern struct passwd *getpwuid();
+extern struct passwd *getpwnam();],
+[struct passwd *z; z = getpwent(); z = getpwuid(0); z = getpwnam("root");],
bash_cv_can_redecl_getpw=yes,bash_cv_can_redecl_getpw=no)])
AC_MSG_RESULT($bash_cv_can_redecl_getpw)
if test $bash_cv_can_redecl_getpw = no; then
@@ -994,10 +1015,10 @@ AC_CACHE_VAL(bash_cv_mail_dir,
bash_cv_mail_dir=/var/mail
elif test -d /usr/mail; then
bash_cv_mail_dir=/usr/mail
- elif test -d /usr/spool/mail; then
- bash_cv_mail_dir=/usr/spool/mail
elif test -d /var/spool/mail; then
bash_cv_mail_dir=/var/spool/mail
+ elif test -d /usr/spool/mail; then
+ bash_cv_mail_dir=/usr/spool/mail
else
bash_cv_mail_dir=unknown
fi
diff --git a/bashline.c b/bashline.c
index fbd196a7..4feb7be8 100644
--- a/bashline.c
+++ b/bashline.c
@@ -700,8 +700,8 @@ attempt_shell_completion (text, start, end)
/* Check that we haven't incorrectly flagged a closed command substitution
as indicating we're in a command position. */
- if (in_command_position && rl_line_buffer[ti] == '`' && *text != '`' &&
- unclosed_pair (rl_line_buffer, 0, "`") == 0)
+ if (in_command_position && ti >= 0 && rl_line_buffer[ti] == '`' &&
+ *text != '`' && unclosed_pair (rl_line_buffer, 0, "`") == 0)
in_command_position = 0;
/* Special handling for command substitution. If *TEXT is a backquote,
@@ -744,7 +744,16 @@ attempt_shell_completion (text, start, end)
/* This could be a globbing pattern, so try to expand it using pathname
expansion. */
if (!matches && glob_pattern_p (text))
- matches = completion_matches (text, glob_complete_word);
+ {
+ matches = completion_matches (text, glob_complete_word);
+ /* A glob expression that matches more than one filename is problematic.
+ If we match more than one filename, punt. */
+ if (matches && matches[1])
+ {
+ free_array (matches);
+ matches = (char **)0;
+ }
+ }
return (matches);
}
@@ -1801,6 +1810,7 @@ glob_complete_word (text, state)
if (state == 0)
{
+ rl_filename_completion_desired = 1;
if (matches)
free (matches);
matches = shell_glob_filename (text);
diff --git a/bracecomp.c b/bracecomp.c
index 47f6bc39..cca8d6ca 100644
--- a/bracecomp.c
+++ b/bracecomp.c
@@ -36,6 +36,8 @@
#include "shell.h"
#include <readline/readline.h>
+extern char *backslash_quote ();
+
/* Find greatest common prefix of two strings. */
static int
string_gcd (s1, s2)
@@ -61,20 +63,19 @@ really_munge_braces (array, real_start, real_end, gcd_zero)
int real_start, real_end, gcd_zero;
{
int start, end, gcd;
- char *result, *subterm;
- int result_size, flag;
+ char *result, *subterm, *x;
+ int result_size, flag, tlen;
flag = 0;
if (real_start == real_end)
{
- if (array[real_start])
- return (savestring (array[real_start] + gcd_zero));
- else
- return (savestring (array[0]));
+ x = array[real_start] ? backslash_quote (array[real_start] + gcd_zero)
+ : backslash_quote (array[0]);
+ return x;
}
- result = xmalloc (result_size = 1);
+ result = xmalloc (result_size = 16);
*result = '\0';
for (start = real_start; start < real_end; start = end + 1)
@@ -103,15 +104,29 @@ really_munge_braces (array, real_start, real_end, gcd_zero)
flag++;
}
+ /* Make sure we backslash quote every substring we insert into the
+ resultant brace expression. This is so the default filename
+ quoting function won't inappropriately quote the braces. */
if (start == end)
- subterm = savestring (array[start] + gcd_zero);
+ {
+ x = savestring (array[start] + gcd_zero);
+ subterm = backslash_quote (x);
+ free (x);
+ }
else
{
/* If there is more than one element in the subarray,
- insert the prefix and an opening brace. */
- result_size += gcd - gcd_zero + 1;
+ insert the (quoted) prefix and an opening brace. */
+ tlen = gcd - gcd_zero;
+ x = xmalloc (tlen + 1);
+ strncpy (x, array[start] + gcd_zero, tlen);
+ x[tlen] = '\0';
+ subterm = backslash_quote (x);
+ free (x);
+ result_size += strlen (subterm) + 1;
result = xrealloc (result, result_size);
- strncat (result, array[start] + gcd_zero, gcd - gcd_zero);
+ strcat (result, subterm);
+ free (subterm);
strcat (result, "{");
subterm = really_munge_braces (array, start, end + 1, gcd);
subterm[strlen (subterm) - 1] = '}';
@@ -146,25 +161,35 @@ hack_braces_completion (names)
names[0] = temp;
}
+/* We handle quoting ourselves within hack_braces_completion, so we turn off
+ rl_filename_quoting_desired and rl_filename_quoting_function. */
void
bash_brace_completion ()
{
Function *orig_ignore_func;
Function *orig_entry_func;
+ CPFunction *orig_quoting_func;
CPPFunction *orig_attempt_func;
+ int orig_quoting_desired;
orig_ignore_func = rl_ignore_some_completions_function;
orig_attempt_func = rl_attempted_completion_function;
orig_entry_func = rl_completion_entry_function;
+ orig_quoting_func = rl_filename_quoting_function;
+ orig_quoting_desired = rl_filename_quoting_desired;
rl_completion_entry_function = (Function *) filename_completion_function;
rl_attempted_completion_function = NULL;
rl_ignore_some_completions_function = (Function *) hack_braces_completion;
+ rl_filename_quoting_function = NULL;
+ rl_filename_quoting_desired = 0;
rl_complete_internal (TAB);
rl_ignore_some_completions_function = orig_ignore_func;
rl_attempted_completion_function = orig_attempt_func;
rl_completion_entry_function = orig_entry_func;
+ rl_filename_quoting_function = orig_quoting_func;
+ rl_filename_quoting_desired = orig_quoting_desired;
}
#endif /* BRACE_EXPANSION && READLINE */
diff --git a/builtins/Makefile.in b/builtins/Makefile.in
index 205f4fc4..73e719d9 100644
--- a/builtins/Makefile.in
+++ b/builtins/Makefile.in
@@ -97,8 +97,11 @@ mkbuiltins: $(srcdir)/mkbuiltins.c ../config.h
common.o: common.c
bashgetopt.o: bashgetopt.c
getopt.o: getopt.c
+evalstring.o: evalstring.c
+evalfile.o: evalfile.c
-ulimit.o: ulimit.def pipesize.h
+ulimit.o: ulimit.def
+ulimit.o: pipesize.h
pipesize.h: psize.aux
$(SHELL) $(srcdir)/psize.sh > pipesize.h
@@ -149,6 +152,7 @@ return.o: return.def
set.o: set.def
setattr.o: setattr.def
shift.o: shift.def
+shopt.o: shopt.def
source.o: source.def
suspend.o: suspend.def
test.o: test.def
diff --git a/builtins/declare.def b/builtins/declare.def
index 10a31465..ae49b66b 100644
--- a/builtins/declare.def
+++ b/builtins/declare.def
@@ -369,8 +369,10 @@ declare_internal (list, local_var)
assign_array_var_from_string (var, value);
else
#endif
+ /* This essentially duplicates the internals of bind_variable() */
if (offset)
{
+ var->attributes &= ~att_invisible;
t = make_variable_value (var, value);
FREE (var->value);
var->value = t;
diff --git a/builtins/evalstring.c b/builtins/evalstring.c
index bf4a8a5b..1a22887d 100644
--- a/builtins/evalstring.c
+++ b/builtins/evalstring.c
@@ -160,7 +160,9 @@ parse_and_execute (string, from_file, flags)
}
else
{
- dispose_command (command); /* XXX */
+#if 0
+ dispose_command (command); /* pe_dispose does this */
+#endif
continue;
}
@@ -192,7 +194,8 @@ parse_and_execute (string, from_file, flags)
#if defined (ONESHOT)
if (startup_state == 2 && *bash_input.location.string == '\0' &&
command->type == cm_simple && !command->redirects &&
- !command->value.Simple->redirects)
+ !command->value.Simple->redirects &&
+ ((command->flags & CMD_TIME_PIPELINE) == 0))
{
command->flags |= CMD_NO_FORK;
command->value.Simple->flags |= CMD_NO_FORK;
diff --git a/builtins/read.def b/builtins/read.def
index 64a4a11a..e1e63541 100644
--- a/builtins/read.def
+++ b/builtins/read.def
@@ -46,6 +46,8 @@ $END
# include <unistd.h>
#endif
+#include <errno.h>
+
#include "../shell.h"
#include "common.h"
#include "bashgetopt.h"
@@ -55,6 +57,10 @@ $END
#include <readline/readline.h>
#endif
+#if !defined(errno)
+extern int errno;
+#endif
+
#define issep(c) (strchr (ifs_chars, (c)))
extern int interrupt_immediately;
@@ -180,8 +186,11 @@ read_builtin (list)
c = rlbuf[rlind++];
}
else
-#endif
- if (read (0, &c, 1) != 1)
+#endif
+
+ while (((retval = read (0, &c, 1)) < 0) && errno == EINTR)
+ ;
+ if (retval <= 0)
{
eof = 1;
break;
diff --git a/builtins/setattr.def b/builtins/setattr.def
index e465eecb..d4068a33 100644
--- a/builtins/setattr.def
+++ b/builtins/setattr.def
@@ -326,7 +326,7 @@ show_var_attributes (var, pattr, nodefs)
printf ("%s\n", named_function_string (var->name, function_cell (var), 1));
else
{
- x = double_quote (value_cell (var));
+ x = double_quote (value_cell (var) ? value_cell (var) : "");
printf ("%s=%s\n", var->name, x);
free (x);
}
@@ -366,7 +366,7 @@ set_var_attribute (name, attribute, undo)
{
if (tv = find_tempenv_variable (name))
{
- var = bind_variable (tv->name, tv->value);
+ var = bind_variable (tv->name, tv->value ? tv->value : "");
dispose_variable (tv);
}
else
diff --git a/builtins/trap.def b/builtins/trap.def
index 2d5daca7..252a1dbe 100644
--- a/builtins/trap.def
+++ b/builtins/trap.def
@@ -191,7 +191,7 @@ static void
showtrap (i)
int i;
{
- char *t, *p;
+ char *t, *p, *sn;
p = trap_list[i];
@@ -199,9 +199,15 @@ showtrap (i)
return;
t = (p == (char *)IGNORE_SIG) ? (char *)NULL : single_quote (p);
- printf ("trap -- %s %s\n", t ? t : "''", signal_name (i));
- if (t)
- free (t);
+ sn = signal_name (i);
+ /* Make sure that signals whose names are unknown (for whatever reason)
+ are printed as signal numbers. */
+ if (STREQN (sn, "SIGJUNK", 7) || STREQN (sn, "unknown", 7))
+ printf ("trap -- %s %d\n", t ? t : "''", i);
+ else
+ printf ("trap -- %s %s\n", t ? t : "''", sn);
+
+ FREE (t);
}
static int
diff --git a/config.h.in b/config.h.in
index 6a85ad78..cd1ef954 100644
--- a/config.h.in
+++ b/config.h.in
@@ -215,6 +215,9 @@
/* Define if `sys_siglist' is declared by <signal.h>. */
#undef SYS_SIGLIST_DECLARED
+/* Define if `_sys_siglist' is declared by <signal.h> or <unistd.h>. */
+#undef UNDER_SYS_SIGLIST_DECLARED
+
/* Define to `int' if <sys/types.h> doesn't define. */
#undef uid_t
@@ -515,4 +518,3 @@
#include "config.h.bot"
#endif /* _CONFIG_H_ */
-
diff --git a/configure b/configure
index 705c5afc..220b2e6c 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,8 @@
#! /bin/sh
-# From configure.in for Bash 2.01, version 1.26, from autoconf version 2.12
+# From configure.in for Bash 2.01, version 1.28, from autoconf version 2.12
+
+
@@ -671,7 +673,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
fi
echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:675: checking host system type" >&5
+echo "configure:677: checking host system type" >&5
host_alias=$host
case "$host_alias" in
@@ -705,7 +707,7 @@ alpha-*) opt_gnu_malloc=no ;; # alpha running osf/1 or linux
*-osf1*) opt_gnu_malloc=no ;; # other osf/1 machines
sparc-svr4*) opt_gnu_malloc=no ;; # sparc SVR4, SVR4.2
sparc-netbsd*) opt_gnu_malloc=no ;; # needs 8-byte alignment
-*-sgi-irix6*) opt_gnu_malloc=no ;; # needs 8-byte alignment
+sgi-irix6*) opt_gnu_malloc=no ;; # needs 8-byte alignment
sparc-linux*) opt_gnu_malloc=no ;; # sparc running linux; requires ELF
*-freebsd*) opt_gnu_malloc=no ;; # they claim it's better
*-aix*) opt_gnu_malloc=no ;; # AIX machines
@@ -713,7 +715,7 @@ sparc-linux*) opt_gnu_malloc=no ;; # sparc running linux; requires ELF
*-dgux*) opt_gnu_malloc=no ;; # DG/UX machines
*-qnx*) opt_gnu_malloc=no ;; # QNX 4.2
*-machten4) opt_gnu_malloc=no ;; # MachTen 4.x
-*-bsdi2.1) opt_gnu_malloc=no ; : ${CC:=shlicc2} ;; # for loadable builtins
+*-bsdi2.1|*-bsdi3.0) opt_gnu_malloc=no ; : ${CC:=shlicc2} ;; # for loadable builtins
esac
# Check whether --with-afs or --without-afs was given.
@@ -1049,14 +1051,14 @@ fi
BASHVERS=2.01
-BASHPATCH=0
+BASHPATCH=1
echo "Beginning configuration for bash-$BASHVERS"
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1060: checking for $ac_word" >&5
+echo "configure:1062: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1085,7 +1087,7 @@ if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1089: checking for $ac_word" >&5
+echo "configure:1091: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1133,7 +1135,7 @@ fi
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1137: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1139: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -1143,11 +1145,11 @@ ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS
cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext <<EOF
-#line 1147 "configure"
+#line 1149 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:1151: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1153: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
ac_cv_prog_cc_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
@@ -1167,12 +1169,12 @@ if test $ac_cv_prog_cc_works = no; then
{ echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1171: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1173: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
cross_compiling=$ac_cv_prog_cc_cross
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1176: checking whether we are using GNU C" >&5
+echo "configure:1178: checking whether we are using GNU C" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1181,7 +1183,7 @@ else
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1185: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1187: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
ac_cv_prog_gcc=yes
else
ac_cv_prog_gcc=no
@@ -1196,7 +1198,7 @@ if test $ac_cv_prog_gcc = yes; then
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1200: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1202: checking whether ${CC-cc} accepts -g" >&5
if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1224,7 +1226,7 @@ else
fi
echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6
-echo "configure:1228: checking for POSIXized ISC" >&5
+echo "configure:1230: checking for POSIXized ISC" >&5
if test -d /etc/conf/kconfig.d &&
grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
then
@@ -1245,7 +1247,7 @@ else
fi
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1249: checking how to run the C preprocessor" >&5
+echo "configure:1251: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
@@ -1260,13 +1262,13 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
-#line 1264 "configure"
+#line 1266 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1270: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1272: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
:
@@ -1277,13 +1279,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 1281 "configure"
+#line 1283 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1287: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1289: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
:
@@ -1307,17 +1309,17 @@ echo "$ac_t""$CPP" 1>&6
ac_safe=`echo "minix/config.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for minix/config.h""... $ac_c" 1>&6
-echo "configure:1311: checking for minix/config.h" >&5
+echo "configure:1313: checking for minix/config.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1316 "configure"
+#line 1318 "configure"
#include "confdefs.h"
#include <minix/config.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1321: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1323: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -1365,13 +1367,13 @@ test -n "$GCC" && test -n "$auto_cflags" && CFLAGS="$CFLAGS -O2"
if test $ac_cv_prog_gcc = yes; then
echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6
-echo "configure:1369: checking whether ${CC-cc} needs -traditional" >&5
+echo "configure:1371: checking whether ${CC-cc} needs -traditional" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_pattern="Autoconf.*'x'"
cat > conftest.$ac_ext <<EOF
-#line 1375 "configure"
+#line 1377 "configure"
#include "confdefs.h"
#include <sgtty.h>
Autoconf TIOCGETP
@@ -1389,7 +1391,7 @@ rm -f conftest*
if test $ac_cv_prog_gcc_traditional = no; then
cat > conftest.$ac_ext <<EOF
-#line 1393 "configure"
+#line 1395 "configure"
#include "confdefs.h"
#include <termio.h>
Autoconf TCGETA
@@ -1422,7 +1424,7 @@ fi
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# ./install, which can be erroneously created by make from ./install.sh.
echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:1426: checking for a BSD compatible install" >&5
+echo "configure:1428: checking for a BSD compatible install" >&5
if test -z "$INSTALL"; then
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1474,7 +1476,7 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
# Extract the first word of "ar", so it can be a program name with args.
set dummy ar; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1478: checking for $ac_word" >&5
+echo "configure:1480: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1502,7 +1504,7 @@ fi
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1506: checking for $ac_word" >&5
+echo "configure:1508: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1533,7 +1535,7 @@ do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1537: checking for $ac_word" >&5
+echo "configure:1539: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1563,7 +1565,7 @@ done
test -n "$YACC" || YACC="yacc"
echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:1567: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:1569: checking whether ${MAKE-make} sets \${MAKE}" >&5
set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1593,19 +1595,19 @@ fi
# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
# for constant arguments. Useless!
echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
-echo "configure:1597: checking for working alloca.h" >&5
+echo "configure:1599: checking for working alloca.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1602 "configure"
+#line 1604 "configure"
#include "confdefs.h"
#include <alloca.h>
int main() {
char *p = alloca(2 * sizeof(int));
; return 0; }
EOF
-if { (eval echo configure:1609: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1611: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
ac_cv_header_alloca_h=yes
else
@@ -1626,12 +1628,12 @@ EOF
fi
echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:1630: checking for alloca" >&5
+echo "configure:1632: checking for alloca" >&5
if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1635 "configure"
+#line 1637 "configure"
#include "confdefs.h"
#ifdef __GNUC__
@@ -1654,7 +1656,7 @@ int main() {
char *p = (char *) alloca(1);
; return 0; }
EOF
-if { (eval echo configure:1658: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1660: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
ac_cv_func_alloca_works=yes
else
@@ -1686,12 +1688,12 @@ EOF
echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:1690: checking whether alloca needs Cray hooks" >&5
+echo "configure:1692: checking whether alloca needs Cray hooks" >&5
if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1695 "configure"
+#line 1697 "configure"
#include "confdefs.h"
#if defined(CRAY) && ! defined(CRAY2)
webecray
@@ -1716,12 +1718,12 @@ echo "$ac_t""$ac_cv_os_cray" 1>&6
if test $ac_cv_os_cray = yes; then
for ac_func in _getb67 GETB67 getb67; do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1720: checking for $ac_func" >&5
+echo "configure:1722: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1725 "configure"
+#line 1727 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -1744,7 +1746,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:1748: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1750: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -1771,7 +1773,7 @@ done
fi
echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:1775: checking stack direction for C alloca" >&5
+echo "configure:1777: checking stack direction for C alloca" >&5
if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1779,7 +1781,7 @@ else
ac_cv_c_stack_direction=0
else
cat > conftest.$ac_ext <<EOF
-#line 1783 "configure"
+#line 1785 "configure"
#include "confdefs.h"
find_stack_direction ()
{
@@ -1798,7 +1800,7 @@ main ()
exit (find_stack_direction() < 0);
}
EOF
-if { (eval echo configure:1802: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1804: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
ac_cv_c_stack_direction=1
else
@@ -1820,7 +1822,7 @@ EOF
fi
echo $ac_n "checking whether getpgrp takes no argument""... $ac_c" 1>&6
-echo "configure:1824: checking whether getpgrp takes no argument" >&5
+echo "configure:1826: checking whether getpgrp takes no argument" >&5
if eval "test \"`echo '$''{'ac_cv_func_getpgrp_void'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1828,7 +1830,7 @@ else
{ echo "configure: error: cannot check getpgrp if cross compiling" 1>&2; exit 1; }
else
cat > conftest.$ac_ext <<EOF
-#line 1832 "configure"
+#line 1834 "configure"
#include "confdefs.h"
/*
@@ -1883,7 +1885,7 @@ main()
}
EOF
-if { (eval echo configure:1887: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1889: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
ac_cv_func_getpgrp_void=yes
else
@@ -1907,7 +1909,7 @@ EOF
fi
echo $ac_n "checking whether setvbuf arguments are reversed""... $ac_c" 1>&6
-echo "configure:1911: checking whether setvbuf arguments are reversed" >&5
+echo "configure:1913: checking whether setvbuf arguments are reversed" >&5
if eval "test \"`echo '$''{'ac_cv_func_setvbuf_reversed'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1915,7 +1917,7 @@ else
{ echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
else
cat > conftest.$ac_ext <<EOF
-#line 1919 "configure"
+#line 1921 "configure"
#include "confdefs.h"
#include <stdio.h>
/* If setvbuf has the reversed format, exit 0. */
@@ -1929,7 +1931,7 @@ main () {
exit(0); /* Non-reversed systems segv here. */
}
EOF
-if { (eval echo configure:1933: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1935: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
ac_cv_func_setvbuf_reversed=yes
else
@@ -1953,12 +1955,12 @@ EOF
fi
echo $ac_n "checking for vprintf""... $ac_c" 1>&6
-echo "configure:1957: checking for vprintf" >&5
+echo "configure:1959: checking for vprintf" >&5
if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1962 "configure"
+#line 1964 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char vprintf(); below. */
@@ -1981,7 +1983,7 @@ vprintf();
; return 0; }
EOF
-if { (eval echo configure:1985: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1987: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_func_vprintf=yes"
else
@@ -2005,12 +2007,12 @@ fi
if test "$ac_cv_func_vprintf" != yes; then
echo $ac_n "checking for _doprnt""... $ac_c" 1>&6
-echo "configure:2009: checking for _doprnt" >&5
+echo "configure:2011: checking for _doprnt" >&5
if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2014 "configure"
+#line 2016 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char _doprnt(); below. */
@@ -2033,7 +2035,7 @@ _doprnt();
; return 0; }
EOF
-if { (eval echo configure:2037: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2039: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_func__doprnt=yes"
else
@@ -2058,7 +2060,7 @@ fi
fi
echo $ac_n "checking for wait3 that fills in rusage""... $ac_c" 1>&6
-echo "configure:2062: checking for wait3 that fills in rusage" >&5
+echo "configure:2064: checking for wait3 that fills in rusage" >&5
if eval "test \"`echo '$''{'ac_cv_func_wait3_rusage'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2066,7 +2068,7 @@ else
ac_cv_func_wait3_rusage=no
else
cat > conftest.$ac_ext <<EOF
-#line 2070 "configure"
+#line 2072 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/time.h>
@@ -2097,7 +2099,7 @@ main() {
}
}
EOF
-if { (eval echo configure:2101: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2103: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
ac_cv_func_wait3_rusage=yes
else
@@ -2120,7 +2122,7 @@ EOF
fi
echo $ac_n "checking for working strcoll""... $ac_c" 1>&6
-echo "configure:2124: checking for working strcoll" >&5
+echo "configure:2126: checking for working strcoll" >&5
if eval "test \"`echo '$''{'ac_cv_func_strcoll_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2128,7 +2130,7 @@ else
ac_cv_func_strcoll_works=no
else
cat > conftest.$ac_ext <<EOF
-#line 2132 "configure"
+#line 2134 "configure"
#include "confdefs.h"
#include <string.h>
main ()
@@ -2138,7 +2140,7 @@ main ()
strcoll ("123", "456") >= 0);
}
EOF
-if { (eval echo configure:2142: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2144: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
ac_cv_func_strcoll_works=yes
else
@@ -2163,9 +2165,9 @@ fi
if test "$ac_cv_func_vprintf" = no; then
echo $ac_n "checking for declaration of vprintf in stdio.h""... $ac_c" 1>&6
-echo "configure:2167: checking for declaration of vprintf in stdio.h" >&5
+echo "configure:2169: checking for declaration of vprintf in stdio.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 2169 "configure"
+#line 2171 "configure"
#include "confdefs.h"
#include <stdio.h>
EOF
@@ -2186,12 +2188,12 @@ EOF
fi
echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:2190: checking return type of signal handlers" >&5
+echo "configure:2192: checking return type of signal handlers" >&5
if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2195 "configure"
+#line 2197 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <signal.h>
@@ -2208,7 +2210,7 @@ int main() {
int i;
; return 0; }
EOF
-if { (eval echo configure:2212: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2214: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_type_signal=void
else
@@ -2228,12 +2230,12 @@ EOF
echo $ac_n "checking for __setostype""... $ac_c" 1>&6
-echo "configure:2232: checking for __setostype" >&5
+echo "configure:2234: checking for __setostype" >&5
if eval "test \"`echo '$''{'ac_cv_func___setostype'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2237 "configure"
+#line 2239 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char __setostype(); below. */
@@ -2256,7 +2258,7 @@ __setostype();
; return 0; }
EOF
-if { (eval echo configure:2260: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2262: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_func___setostype=yes"
else
@@ -2279,12 +2281,12 @@ else
fi
echo $ac_n "checking for wait3""... $ac_c" 1>&6
-echo "configure:2283: checking for wait3" >&5
+echo "configure:2285: checking for wait3" >&5
if eval "test \"`echo '$''{'ac_cv_func_wait3'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2288 "configure"
+#line 2290 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char wait3(); below. */
@@ -2307,7 +2309,7 @@ wait3();
; return 0; }
EOF
-if { (eval echo configure:2311: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2313: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_func_wait3=yes"
else
@@ -2331,12 +2333,12 @@ fi
echo $ac_n "checking for mkfifo""... $ac_c" 1>&6
-echo "configure:2335: checking for mkfifo" >&5
+echo "configure:2337: checking for mkfifo" >&5
if eval "test \"`echo '$''{'ac_cv_func_mkfifo'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2340 "configure"
+#line 2342 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char mkfifo(); below. */
@@ -2359,7 +2361,7 @@ mkfifo();
; return 0; }
EOF
-if { (eval echo configure:2363: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2365: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_func_mkfifo=yes"
else
@@ -2391,12 +2393,12 @@ for ac_func in dup2 select getdtablesize getgroups gethostname \
getrlimit getrusage gettimeofday waitpid tcgetpgrp
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2395: checking for $ac_func" >&5
+echo "configure:2397: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2400 "configure"
+#line 2402 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -2419,7 +2421,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:2423: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2425: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -2449,12 +2451,12 @@ for ac_func in bcopy bzero confstr getcwd strcasecmp setenv putenv \
sysconf ulimit times tzset siginterrupt memmove
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2453: checking for $ac_func" >&5
+echo "configure:2455: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2458 "configure"
+#line 2460 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -2477,7 +2479,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:2481: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2483: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -2506,17 +2508,17 @@ for ac_hdr in libintl.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2510: checking for $ac_hdr" >&5
+echo "configure:2512: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2515 "configure"
+#line 2517 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2520: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2522: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -2545,12 +2547,12 @@ done
for ac_func in gettext textdomain bindtextdomain
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2549: checking for $ac_func" >&5
+echo "configure:2551: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2554 "configure"
+#line 2556 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -2573,7 +2575,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:2577: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2579: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -2600,7 +2602,7 @@ done
if test "$ac_cv_func_bindtextdomain" = "no"; then
echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6
-echo "configure:2604: checking for bindtextdomain in -lintl" >&5
+echo "configure:2606: checking for bindtextdomain in -lintl" >&5
ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -2608,7 +2610,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lintl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2612 "configure"
+#line 2614 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -2619,7 +2621,7 @@ int main() {
bindtextdomain()
; return 0; }
EOF
-if { (eval echo configure:2623: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2625: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -2650,12 +2652,12 @@ fi
for ac_func in gettext textdomain bindtextdomain
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2654: checking for $ac_func" >&5
+echo "configure:2656: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2659 "configure"
+#line 2661 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -2678,7 +2680,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:2682: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2684: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -2706,7 +2708,7 @@ done
fi
echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:2710: checking for dlopen in -ldl" >&5
+echo "configure:2712: checking for dlopen in -ldl" >&5
ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -2714,7 +2716,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2718 "configure"
+#line 2720 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -2725,7 +2727,7 @@ int main() {
dlopen()
; return 0; }
EOF
-if { (eval echo configure:2729: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2731: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -2755,12 +2757,12 @@ fi
for ac_func in dlopen dlclose dlsym
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2759: checking for $ac_func" >&5
+echo "configure:2761: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2764 "configure"
+#line 2766 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -2783,7 +2785,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:2787: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2789: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -2809,12 +2811,12 @@ done
echo $ac_n "checking for sys_siglist declaration in signal.h or unistd.h""... $ac_c" 1>&6
-echo "configure:2813: checking for sys_siglist declaration in signal.h or unistd.h" >&5
+echo "configure:2815: checking for sys_siglist declaration in signal.h or unistd.h" >&5
if eval "test \"`echo '$''{'ac_cv_decl_sys_siglist'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2818 "configure"
+#line 2820 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <signal.h>
@@ -2826,7 +2828,7 @@ int main() {
char *msg = *(sys_siglist + 1);
; return 0; }
EOF
-if { (eval echo configure:2830: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2832: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_decl_sys_siglist=yes
else
@@ -2852,12 +2854,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6
-echo "configure:2856: checking for $ac_hdr that defines DIR" >&5
+echo "configure:2858: checking for $ac_hdr that defines DIR" >&5
if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2861 "configure"
+#line 2863 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <$ac_hdr>
@@ -2865,7 +2867,7 @@ int main() {
DIR *dirp = 0;
; return 0; }
EOF
-if { (eval echo configure:2869: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2871: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_header_dirent_$ac_safe=yes"
else
@@ -2890,7 +2892,7 @@ done
# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
if test $ac_header_dirent = dirent.h; then
echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6
-echo "configure:2894: checking for opendir in -ldir" >&5
+echo "configure:2896: checking for opendir in -ldir" >&5
ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -2898,7 +2900,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldir $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2902 "configure"
+#line 2904 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -2909,7 +2911,7 @@ int main() {
opendir()
; return 0; }
EOF
-if { (eval echo configure:2913: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2915: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -2931,7 +2933,7 @@ fi
else
echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6
-echo "configure:2935: checking for opendir in -lx" >&5
+echo "configure:2937: checking for opendir in -lx" >&5
ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -2939,7 +2941,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lx $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2943 "configure"
+#line 2945 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -2950,7 +2952,7 @@ int main() {
opendir()
; return 0; }
EOF
-if { (eval echo configure:2954: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2956: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -2973,12 +2975,12 @@ fi
fi
echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:2977: checking whether time.h and sys/time.h may both be included" >&5
+echo "configure:2979: checking whether time.h and sys/time.h may both be included" >&5
if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2982 "configure"
+#line 2984 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/time.h>
@@ -2987,7 +2989,7 @@ int main() {
struct tm *tp;
; return 0; }
EOF
-if { (eval echo configure:2991: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2993: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_header_time=yes
else
@@ -3013,17 +3015,17 @@ for ac_hdr in unistd.h stdlib.h stdarg.h varargs.h limits.h string.h \
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3017: checking for $ac_hdr" >&5
+echo "configure:3019: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3022 "configure"
+#line 3024 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3027: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3029: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -3055,17 +3057,17 @@ for ac_hdr in sys/ptem.h sys/pte.h sys/stream.h sys/select.h sys/file.h \
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3059: checking for $ac_hdr" >&5
+echo "configure:3061: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3064 "configure"
+#line 3066 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3069: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3071: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -3098,14 +3100,14 @@ if test "X$bash_cv_have_socklib" = "X"; then
_bash_needmsg=
else
echo $ac_n "checking for socket library""... $ac_c" 1>&6
-echo "configure:3102: checking for socket library" >&5
+echo "configure:3104: checking for socket library" >&5
_bash_needmsg=yes
fi
if eval "test \"`echo '$''{'bash_cv_have_socklib'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
echo $ac_n "checking for getpeername in -lsocket""... $ac_c" 1>&6
-echo "configure:3109: checking for getpeername in -lsocket" >&5
+echo "configure:3111: checking for getpeername in -lsocket" >&5
ac_lib_var=`echo socket'_'getpeername | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -3113,7 +3115,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lsocket -lnsl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3117 "configure"
+#line 3119 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -3124,7 +3126,7 @@ int main() {
getpeername()
; return 0; }
EOF
-if { (eval echo configure:3128: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3130: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -3157,14 +3159,14 @@ if test $bash_cv_have_socklib = yes; then
_bash_needmsg=
else
echo $ac_n "checking for libnsl""... $ac_c" 1>&6
-echo "configure:3161: checking for libnsl" >&5
+echo "configure:3163: checking for libnsl" >&5
_bash_needmsg=yes
fi
if eval "test \"`echo '$''{'bash_cv_have_libnsl'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
echo $ac_n "checking for t_open in -lnsl""... $ac_c" 1>&6
-echo "configure:3168: checking for t_open in -lnsl" >&5
+echo "configure:3170: checking for t_open in -lnsl" >&5
ac_lib_var=`echo nsl'_'t_open | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -3172,7 +3174,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lnsl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3176 "configure"
+#line 3178 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -3183,7 +3185,7 @@ int main() {
t_open()
; return 0; }
EOF
-if { (eval echo configure:3187: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3189: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -3228,12 +3230,12 @@ fi
fi
echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
-echo "configure:3232: checking for uid_t in sys/types.h" >&5
+echo "configure:3234: checking for uid_t in sys/types.h" >&5
if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3237 "configure"
+#line 3239 "configure"
#include "confdefs.h"
#include <sys/types.h>
EOF
@@ -3262,7 +3264,7 @@ EOF
fi
echo $ac_n "checking type of array argument to getgroups""... $ac_c" 1>&6
-echo "configure:3266: checking type of array argument to getgroups" >&5
+echo "configure:3268: checking type of array argument to getgroups" >&5
if eval "test \"`echo '$''{'ac_cv_type_getgroups'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3270,7 +3272,7 @@ else
ac_cv_type_getgroups=cross
else
cat > conftest.$ac_ext <<EOF
-#line 3274 "configure"
+#line 3276 "configure"
#include "confdefs.h"
/* Thanks to Mike Rendell for this test. */
@@ -3295,7 +3297,7 @@ main()
}
EOF
-if { (eval echo configure:3299: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3301: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
ac_cv_type_getgroups=gid_t
else
@@ -3309,7 +3311,7 @@ fi
if test $ac_cv_type_getgroups = cross; then
cat > conftest.$ac_ext <<EOF
-#line 3313 "configure"
+#line 3315 "configure"
#include "confdefs.h"
#include <unistd.h>
EOF
@@ -3333,12 +3335,12 @@ EOF
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:3337: checking for ANSI C header files" >&5
+echo "configure:3339: checking for ANSI C header files" >&5
if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3342 "configure"
+#line 3344 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
@@ -3346,7 +3348,7 @@ else
#include <float.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3350: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3352: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -3363,7 +3365,7 @@ rm -f conftest*
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 3367 "configure"
+#line 3369 "configure"
#include "confdefs.h"
#include <string.h>
EOF
@@ -3381,7 +3383,7 @@ fi
if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 3385 "configure"
+#line 3387 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
@@ -3402,7 +3404,7 @@ if test "$cross_compiling" = yes; then
:
else
cat > conftest.$ac_ext <<EOF
-#line 3406 "configure"
+#line 3408 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -3413,7 +3415,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
exit (0); }
EOF
-if { (eval echo configure:3417: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3419: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
:
else
@@ -3437,12 +3439,12 @@ EOF
fi
echo $ac_n "checking for off_t""... $ac_c" 1>&6
-echo "configure:3441: checking for off_t" >&5
+echo "configure:3443: checking for off_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3446 "configure"
+#line 3448 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -3470,12 +3472,12 @@ EOF
fi
echo $ac_n "checking for mode_t""... $ac_c" 1>&6
-echo "configure:3474: checking for mode_t" >&5
+echo "configure:3476: checking for mode_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3479 "configure"
+#line 3481 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -3503,12 +3505,12 @@ EOF
fi
echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
-echo "configure:3507: checking for uid_t in sys/types.h" >&5
+echo "configure:3509: checking for uid_t in sys/types.h" >&5
if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3512 "configure"
+#line 3514 "configure"
#include "confdefs.h"
#include <sys/types.h>
EOF
@@ -3537,12 +3539,12 @@ EOF
fi
echo $ac_n "checking for pid_t""... $ac_c" 1>&6
-echo "configure:3541: checking for pid_t" >&5
+echo "configure:3543: checking for pid_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3546 "configure"
+#line 3548 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -3570,12 +3572,12 @@ EOF
fi
echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:3574: checking for size_t" >&5
+echo "configure:3576: checking for size_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3579 "configure"
+#line 3581 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -3603,12 +3605,12 @@ EOF
fi
echo $ac_n "checking for time_t""... $ac_c" 1>&6
-echo "configure:3607: checking for time_t" >&5
+echo "configure:3609: checking for time_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_time_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3612 "configure"
+#line 3614 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -3637,12 +3639,12 @@ fi
echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:3641: checking return type of signal handlers" >&5
+echo "configure:3643: checking return type of signal handlers" >&5
if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3646 "configure"
+#line 3648 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <signal.h>
@@ -3659,7 +3661,7 @@ int main() {
int i;
; return 0; }
EOF
-if { (eval echo configure:3663: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3665: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_type_signal=void
else
@@ -3679,12 +3681,12 @@ EOF
echo $ac_n "checking whether stat file-mode macros are broken""... $ac_c" 1>&6
-echo "configure:3683: checking whether stat file-mode macros are broken" >&5
+echo "configure:3685: checking whether stat file-mode macros are broken" >&5
if eval "test \"`echo '$''{'ac_cv_header_stat_broken'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3688 "configure"
+#line 3690 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/stat.h>
@@ -3735,7 +3737,7 @@ EOF
fi
cat > conftest.$ac_ext <<EOF
-#line 3739 "configure"
+#line 3741 "configure"
#include "confdefs.h"
#include <sys/time.h>
EOF
@@ -3748,7 +3750,7 @@ rm -f conftest*
if test -z "$bash_cv_struct_timeval"; then
cat > conftest.$ac_ext <<EOF
-#line 3752 "configure"
+#line 3754 "configure"
#include "confdefs.h"
#include <time.h>
EOF
@@ -3771,14 +3773,14 @@ EOF
fi
echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
-echo "configure:3775: checking whether byte ordering is bigendian" >&5
+echo "configure:3777: checking whether byte ordering is bigendian" >&5
if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_cv_c_bigendian=unknown
# See if sys/param.h defines the BYTE_ORDER macro.
cat > conftest.$ac_ext <<EOF
-#line 3782 "configure"
+#line 3784 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/param.h>
@@ -3789,11 +3791,11 @@ int main() {
#endif
; return 0; }
EOF
-if { (eval echo configure:3793: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3795: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
# It does; now see whether it defined to BIG_ENDIAN or not.
cat > conftest.$ac_ext <<EOF
-#line 3797 "configure"
+#line 3799 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/param.h>
@@ -3804,7 +3806,7 @@ int main() {
#endif
; return 0; }
EOF
-if { (eval echo configure:3808: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3810: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_bigendian=yes
else
@@ -3824,7 +3826,7 @@ if test "$cross_compiling" = yes; then
{ echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
else
cat > conftest.$ac_ext <<EOF
-#line 3828 "configure"
+#line 3830 "configure"
#include "confdefs.h"
main () {
/* Are we little or big endian? From Harbison&Steele. */
@@ -3837,7 +3839,7 @@ main () {
exit (u.c[sizeof (long) - 1] == 1);
}
EOF
-if { (eval echo configure:3841: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3843: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
ac_cv_c_bigendian=no
else
@@ -3864,7 +3866,7 @@ fi
# Pull the hash mark out of the macro call to avoid m4 problems.
ac_msg="whether #! works in shell scripts"
echo $ac_n "checking $ac_msg""... $ac_c" 1>&6
-echo "configure:3868: checking $ac_msg" >&5
+echo "configure:3870: checking $ac_msg" >&5
if eval "test \"`echo '$''{'ac_cv_sys_interpreter'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3890,7 +3892,7 @@ EOF
fi
echo $ac_n "checking for restartable system calls""... $ac_c" 1>&6
-echo "configure:3894: checking for restartable system calls" >&5
+echo "configure:3896: checking for restartable system calls" >&5
if eval "test \"`echo '$''{'ac_cv_sys_restartable_syscalls'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3898,7 +3900,7 @@ else
{ echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
else
cat > conftest.$ac_ext <<EOF
-#line 3902 "configure"
+#line 3904 "configure"
#include "confdefs.h"
/* Exit 0 (true) if wait returns something other than -1,
i.e. the pid of the child, which means that wait was restarted
@@ -3916,7 +3918,7 @@ main () {
}
EOF
-if { (eval echo configure:3920: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3922: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
ac_cv_sys_restartable_syscalls=yes
else
@@ -3941,12 +3943,12 @@ fi
if test "$ac_cv_func_lstat" = "no"; then
echo $ac_n "checking for lstat""... $ac_c" 1>&6
-echo "configure:3945: checking for lstat" >&5
+echo "configure:3947: checking for lstat" >&5
if eval "test \"`echo '$''{'bash_cv_func_lstat'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3950 "configure"
+#line 3952 "configure"
#include "confdefs.h"
#include <sys/types.h>
@@ -3956,7 +3958,7 @@ int main() {
lstat("",(struct stat *)0);
; return 0; }
EOF
-if { (eval echo configure:3960: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3962: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
bash_cv_func_lstat=yes
else
@@ -3979,7 +3981,7 @@ fi
fi
echo $ac_n "checking if dup2 fails to clear the close-on-exec flag""... $ac_c" 1>&6
-echo "configure:3983: checking if dup2 fails to clear the close-on-exec flag" >&5
+echo "configure:3985: checking if dup2 fails to clear the close-on-exec flag" >&5
if eval "test \"`echo '$''{'bash_cv_dup2_broken'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3987,7 +3989,7 @@ else
{ echo "configure: error: cannot check dup2 if cross compiling" 1>&2; exit 1; }
else
cat > conftest.$ac_ext <<EOF
-#line 3991 "configure"
+#line 3993 "configure"
#include "confdefs.h"
#include <sys/types.h>
@@ -4007,7 +4009,7 @@ main()
}
EOF
-if { (eval echo configure:4011: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4013: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
bash_cv_dup2_broken=yes
else
@@ -4032,7 +4034,7 @@ fi
echo $ac_n "checking whether pgrps need synchronization""... $ac_c" 1>&6
-echo "configure:4036: checking whether pgrps need synchronization" >&5
+echo "configure:4038: checking whether pgrps need synchronization" >&5
if eval "test \"`echo '$''{'bash_cv_pgrp_pipe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4040,7 +4042,7 @@ else
{ echo "configure: error: cannot check pgrp synchronization if cross compiling" 1>&2; exit 1; }
else
cat > conftest.$ac_ext <<EOF
-#line 4044 "configure"
+#line 4046 "configure"
#include "confdefs.h"
#ifdef HAVE_UNISTD_H
@@ -4092,7 +4094,7 @@ main()
}
EOF
-if { (eval echo configure:4096: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4098: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
bash_cv_pgrp_pipe=no
else
@@ -4117,13 +4119,13 @@ fi
echo $ac_n "checking for type of signal functions""... $ac_c" 1>&6
-echo "configure:4121: checking for type of signal functions" >&5
+echo "configure:4123: checking for type of signal functions" >&5
if eval "test \"`echo '$''{'bash_cv_signal_vintage'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4127 "configure"
+#line 4129 "configure"
#include "confdefs.h"
#include <signal.h>
int main() {
@@ -4136,7 +4138,7 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:4140: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4142: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
bash_cv_signal_vintage=posix
else
@@ -4145,7 +4147,7 @@ else
rm -rf conftest*
cat > conftest.$ac_ext <<EOF
-#line 4149 "configure"
+#line 4151 "configure"
#include "confdefs.h"
#include <signal.h>
int main() {
@@ -4155,7 +4157,7 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:4159: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4161: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
bash_cv_signal_vintage=4.2bsd
else
@@ -4164,7 +4166,7 @@ else
rm -rf conftest*
cat > conftest.$ac_ext <<EOF
-#line 4168 "configure"
+#line 4170 "configure"
#include "confdefs.h"
#include <signal.h>
@@ -4177,7 +4179,7 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:4181: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4183: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
bash_cv_signal_vintage=svr3
else
@@ -4217,12 +4219,12 @@ fi
echo $ac_n "checking for sys_errlist and sys_nerr""... $ac_c" 1>&6
-echo "configure:4221: checking for sys_errlist and sys_nerr" >&5
+echo "configure:4223: checking for sys_errlist and sys_nerr" >&5
if eval "test \"`echo '$''{'bash_cv_sys_errlist'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4226 "configure"
+#line 4228 "configure"
#include "confdefs.h"
#include <errno.h>
int main() {
@@ -4231,7 +4233,7 @@ extern char *sys_errlist[];
char *msg = sys_errlist[sys_nerr - 1];
; return 0; }
EOF
-if { (eval echo configure:4235: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4237: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
bash_cv_sys_errlist=yes
else
@@ -4252,7 +4254,7 @@ fi
echo $ac_n "checking for sys_siglist in system C library""... $ac_c" 1>&6
-echo "configure:4256: checking for sys_siglist in system C library" >&5
+echo "configure:4258: checking for sys_siglist in system C library" >&5
if eval "test \"`echo '$''{'bash_cv_sys_siglist'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4260,7 +4262,7 @@ else
{ echo "configure: error: cannot check for sys_siglist if cross compiling" 1>&2; exit 1; }
else
cat > conftest.$ac_ext <<EOF
-#line 4264 "configure"
+#line 4266 "configure"
#include "confdefs.h"
#include <sys/types.h>
@@ -4277,7 +4279,7 @@ char *msg = sys_siglist[2];
exit(msg == 0);
}
EOF
-if { (eval echo configure:4281: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4283: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
bash_cv_sys_siglist=yes
else
@@ -4298,8 +4300,46 @@ EOF
fi
+echo $ac_n "checking for _sys_siglist in signal.h or unistd.h""... $ac_c" 1>&6
+echo "configure:4305: checking for _sys_siglist in signal.h or unistd.h" >&5
+if eval "test \"`echo '$''{'bash_cv_decl_under_sys_siglist'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 4310 "configure"
+#include "confdefs.h"
+
+#include <sys/types.h>
+#include <signal.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+int main() {
+ char *msg = _sys_siglist[2];
+; return 0; }
+EOF
+if { (eval echo configure:4322: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ bash_cv_decl_under_sys_siglist=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ bash_cv_decl_under_sys_siglist=no
+fi
+rm -f conftest*
+fi
+echo "$ac_t""$bash_cv_decl_under_sys_siglist" 1>&6
+if test $bash_cv_decl_under_sys_siglist = yes; then
+cat >> confdefs.h <<\EOF
+#define UNDER_SYS_SIGLIST_DECLARED 1
+EOF
+
+fi
+
+
echo $ac_n "checking for _sys_siglist in system C library""... $ac_c" 1>&6
-echo "configure:4303: checking for _sys_siglist in system C library" >&5
+echo "configure:4343: checking for _sys_siglist in system C library" >&5
if eval "test \"`echo '$''{'bash_cv_under_sys_siglist'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4307,7 +4347,7 @@ else
{ echo "configure: error: cannot check for _sys_siglist if cross compiling" 1>&2; exit 1; }
else
cat > conftest.$ac_ext <<EOF
-#line 4311 "configure"
+#line 4351 "configure"
#include "confdefs.h"
#include <sys/types.h>
@@ -4315,16 +4355,16 @@ else
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
-#ifndef _sys_siglist
+#ifndef UNDER_SYS_SIGLIST_DECLARED
extern char *_sys_siglist[];
#endif
main()
{
-char *msg = _sys_siglist[2];
+char *msg = (char *)_sys_siglist[2];
exit(msg == 0);
}
EOF
-if { (eval echo configure:4328: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4368: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
bash_cv_under_sys_siglist=yes
else
@@ -4347,12 +4387,12 @@ fi
echo $ac_n "checking whether signal handlers are of type void""... $ac_c" 1>&6
-echo "configure:4351: checking whether signal handlers are of type void" >&5
+echo "configure:4391: checking whether signal handlers are of type void" >&5
if eval "test \"`echo '$''{'bash_cv_void_sighandler'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4356 "configure"
+#line 4396 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <signal.h>
@@ -4367,7 +4407,7 @@ int main() {
int i;
; return 0; }
EOF
-if { (eval echo configure:4371: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4411: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bash_cv_void_sighandler=yes
else
@@ -4387,12 +4427,12 @@ EOF
fi
echo $ac_n "checking for clock_t""... $ac_c" 1>&6
-echo "configure:4391: checking for clock_t" >&5
+echo "configure:4431: checking for clock_t" >&5
if eval "test \"`echo '$''{'bash_cv_type_clock_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4396 "configure"
+#line 4436 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -4423,12 +4463,12 @@ EOF
fi
echo $ac_n "checking for sigset_t""... $ac_c" 1>&6
-echo "configure:4427: checking for sigset_t" >&5
+echo "configure:4467: checking for sigset_t" >&5
if eval "test \"`echo '$''{'bash_cv_type_sigset_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4432 "configure"
+#line 4472 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -4459,12 +4499,12 @@ EOF
fi
echo $ac_n "checking for quad_t""... $ac_c" 1>&6
-echo "configure:4463: checking for quad_t" >&5
+echo "configure:4503: checking for quad_t" >&5
if eval "test \"`echo '$''{'bash_cv_type_quad_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4468 "configure"
+#line 4508 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -4500,19 +4540,19 @@ EOF
fi
echo $ac_n "checking for size and type of struct rlimit fields""... $ac_c" 1>&6
-echo "configure:4504: checking for size and type of struct rlimit fields" >&5
+echo "configure:4544: checking for size and type of struct rlimit fields" >&5
if eval "test \"`echo '$''{'bash_cv_type_rlimit'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4509 "configure"
+#line 4549 "configure"
#include "confdefs.h"
#include <sys/types.h>
int main() {
rlim_t xxx;
; return 0; }
EOF
-if { (eval echo configure:4516: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4556: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bash_cv_type_rlimit=rlim_t
else
@@ -4524,7 +4564,7 @@ if test "$cross_compiling" = yes; then
{ echo "configure: error: cannot check quad_t if cross compiling" 1>&2; exit 1; }
else
cat > conftest.$ac_ext <<EOF
-#line 4528 "configure"
+#line 4568 "configure"
#include "confdefs.h"
#include <sys/types.h>
@@ -4540,7 +4580,7 @@ main()
exit(1);
}
EOF
-if { (eval echo configure:4544: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4584: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
bash_cv_type_rlimit=quad_t
else
@@ -4572,12 +4612,12 @@ fi
echo $ac_n "checking for a c_line member of struct termios""... $ac_c" 1>&6
-echo "configure:4576: checking for a c_line member of struct termios" >&5
+echo "configure:4616: checking for a c_line member of struct termios" >&5
if eval "test \"`echo '$''{'bash_cv_termios_ldisc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4581 "configure"
+#line 4621 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <termios.h>
@@ -4585,7 +4625,7 @@ int main() {
struct termios t; int i; i = t.c_line;
; return 0; }
EOF
-if { (eval echo configure:4589: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4629: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bash_cv_termios_ldisc=yes
else
@@ -4605,12 +4645,12 @@ EOF
fi
echo $ac_n "checking for a c_line member of struct termio""... $ac_c" 1>&6
-echo "configure:4609: checking for a c_line member of struct termio" >&5
+echo "configure:4649: checking for a c_line member of struct termio" >&5
if eval "test \"`echo '$''{'bash_cv_termio_ldisc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4614 "configure"
+#line 4654 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <termio.h>
@@ -4618,7 +4658,7 @@ int main() {
struct termio t; int i; i = t.c_line;
; return 0; }
EOF
-if { (eval echo configure:4622: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4662: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bash_cv_termio_ldisc=yes
else
@@ -4639,12 +4679,12 @@ fi
echo $ac_n "checking if struct dirent has a d_ino member""... $ac_c" 1>&6
-echo "configure:4643: checking if struct dirent has a d_ino member" >&5
+echo "configure:4683: checking if struct dirent has a d_ino member" >&5
if eval "test \"`echo '$''{'bash_cv_dirent_has_dino'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4648 "configure"
+#line 4688 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -4673,7 +4713,7 @@ struct dirent d; int z; z = d.d_ino;
; return 0; }
EOF
-if { (eval echo configure:4677: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4717: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bash_cv_dirent_has_dino=yes
else
@@ -4695,12 +4735,12 @@ fi
echo $ac_n "checking if struct dirent has a d_fileno member""... $ac_c" 1>&6
-echo "configure:4699: checking if struct dirent has a d_fileno member" >&5
+echo "configure:4739: checking if struct dirent has a d_fileno member" >&5
if eval "test \"`echo '$''{'bash_cv_dirent_has_d_fileno'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4704 "configure"
+#line 4744 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -4729,7 +4769,7 @@ struct dirent d; int z; z = d.d_fileno;
; return 0; }
EOF
-if { (eval echo configure:4733: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4773: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bash_cv_dirent_has_d_fileno=yes
else
@@ -4750,12 +4790,12 @@ EOF
fi
echo $ac_n "checking for struct winsize in sys/ioctl.h""... $ac_c" 1>&6
-echo "configure:4754: checking for struct winsize in sys/ioctl.h" >&5
+echo "configure:4794: checking for struct winsize in sys/ioctl.h" >&5
if eval "test \"`echo '$''{'bash_cv_struct_winsize_in_ioctl'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4759 "configure"
+#line 4799 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/ioctl.h>
@@ -4763,7 +4803,7 @@ int main() {
struct winsize x;
; return 0; }
EOF
-if { (eval echo configure:4767: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4807: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bash_cv_struct_winsize_in_ioctl=yes
else
@@ -4785,12 +4825,12 @@ fi
echo $ac_n "checking for the existance of strsignal""... $ac_c" 1>&6
-echo "configure:4789: checking for the existance of strsignal" >&5
+echo "configure:4829: checking for the existance of strsignal" >&5
if eval "test \"`echo '$''{'bash_cv_have_strsignal'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4794 "configure"
+#line 4834 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <signal.h>
@@ -4798,7 +4838,7 @@ int main() {
char *s = (char *)strsignal(2);
; return 0; }
EOF
-if { (eval echo configure:4802: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4842: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
bash_cv_have_strsignal=yes
else
@@ -4819,7 +4859,7 @@ EOF
fi
echo $ac_n "checking if opendir() opens non-directories""... $ac_c" 1>&6
-echo "configure:4823: checking if opendir() opens non-directories" >&5
+echo "configure:4863: checking if opendir() opens non-directories" >&5
if eval "test \"`echo '$''{'bash_cv_opendir_not_robust'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4827,7 +4867,7 @@ else
{ echo "configure: error: cannot check opendir if cross compiling" 1>&2; exit 1; }
else
cat > conftest.$ac_ext <<EOF
-#line 4831 "configure"
+#line 4871 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -4863,7 +4903,7 @@ unlink("/tmp/not_a_directory");
exit (dir == 0);
}
EOF
-if { (eval echo configure:4867: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4907: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
bash_cv_opendir_not_robust=yes
else
@@ -4886,7 +4926,7 @@ EOF
fi
echo $ac_n "checking for declaration of printf in <stdio.h>""... $ac_c" 1>&6
-echo "configure:4890: checking for declaration of printf in <stdio.h>" >&5
+echo "configure:4930: checking for declaration of printf in <stdio.h>" >&5
if eval "test \"`echo '$''{'bash_cv_printf_declared'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4894,7 +4934,7 @@ else
{ echo "configure: error: cannot check printf declaration if cross compiling" 1>&2; exit 1; }
else
cat > conftest.$ac_ext <<EOF
-#line 4898 "configure"
+#line 4938 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -4906,12 +4946,12 @@ typedef int (*_bashfunc)();
main()
{
_bashfunc pf;
-pf = printf;
+pf = (_bashfunc) printf;
exit(pf == 0);
}
EOF
-if { (eval echo configure:4915: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4955: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
bash_cv_printf_declared=yes
else
@@ -4934,7 +4974,7 @@ EOF
fi
echo $ac_n "checking whether ulimit can substitute for getdtablesize""... $ac_c" 1>&6
-echo "configure:4938: checking whether ulimit can substitute for getdtablesize" >&5
+echo "configure:4978: checking whether ulimit can substitute for getdtablesize" >&5
if eval "test \"`echo '$''{'bash_cv_ulimit_maxfds'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4942,7 +4982,7 @@ else
{ echo "configure: error: cannot check ulimit if cross compiling" 1>&2; exit 1; }
else
cat > conftest.$ac_ext <<EOF
-#line 4946 "configure"
+#line 4986 "configure"
#include "confdefs.h"
main()
@@ -4952,7 +4992,7 @@ exit (maxfds == -1L);
}
EOF
-if { (eval echo configure:4956: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4996: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
bash_cv_ulimit_maxfds=yes
else
@@ -4975,7 +5015,7 @@ EOF
fi
echo $ac_n "checking to see if getenv can be redefined""... $ac_c" 1>&6
-echo "configure:4979: checking to see if getenv can be redefined" >&5
+echo "configure:5019: checking to see if getenv can be redefined" >&5
if eval "test \"`echo '$''{'bash_cv_getenv_redef'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4983,7 +5023,7 @@ else
{ echo "configure: error: cannot check getenv redefinition if cross compiling" 1>&2; exit 1; }
else
cat > conftest.$ac_ext <<EOF
-#line 4987 "configure"
+#line 5027 "configure"
#include "confdefs.h"
#ifdef HAVE_UNISTD_H
@@ -5018,7 +5058,7 @@ exit(s == 0); /* force optimizer to leave getenv in */
}
EOF
-if { (eval echo configure:5022: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5062: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
bash_cv_getenv_redef=yes
else
@@ -5041,7 +5081,7 @@ EOF
fi
echo $ac_n "checking if getcwd() calls popen()""... $ac_c" 1>&6
-echo "configure:5045: checking if getcwd() calls popen()" >&5
+echo "configure:5085: checking if getcwd() calls popen()" >&5
if eval "test \"`echo '$''{'bash_cv_getcwd_calls_popen'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -5049,7 +5089,7 @@ else
{ echo "configure: error: cannot check whether getcwd calls popen if cross compiling" 1>&2; exit 1; }
else
cat > conftest.$ac_ext <<EOF
-#line 5053 "configure"
+#line 5093 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -5104,7 +5144,7 @@ main()
}
EOF
-if { (eval echo configure:5108: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5148: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
bash_cv_getcwd_calls_popen=no
else
@@ -5127,12 +5167,12 @@ EOF
fi
echo $ac_n "checking for declaration of sbrk in <unistd.h>""... $ac_c" 1>&6
-echo "configure:5131: checking for declaration of sbrk in <unistd.h>" >&5
+echo "configure:5171: checking for declaration of sbrk in <unistd.h>" >&5
if eval "test \"`echo '$''{'bash_cv_sbrk_declared'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5136 "configure"
+#line 5176 "configure"
#include "confdefs.h"
#include <unistd.h>
EOF
@@ -5158,7 +5198,7 @@ fi
echo $ac_n "checking for presence of POSIX-style sigsetjmp/siglongjmp""... $ac_c" 1>&6
-echo "configure:5162: checking for presence of POSIX-style sigsetjmp/siglongjmp" >&5
+echo "configure:5202: checking for presence of POSIX-style sigsetjmp/siglongjmp" >&5
if eval "test \"`echo '$''{'bash_cv_func_sigsetjmp'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -5166,7 +5206,7 @@ else
{ echo "configure: error: cannot check for sigsetjmp/siglongjmp if cross-compiling" 1>&2; exit 1; }
else
cat > conftest.$ac_ext <<EOF
-#line 5170 "configure"
+#line 5210 "configure"
#include "confdefs.h"
#ifdef HAVE_UNISTD_H
@@ -5207,7 +5247,7 @@ exit(1);
#endif
}
EOF
-if { (eval echo configure:5211: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5251: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
bash_cv_func_sigsetjmp=present
else
@@ -5232,7 +5272,7 @@ fi
echo $ac_n "checking whether or not strcoll and strcmp differ""... $ac_c" 1>&6
-echo "configure:5236: checking whether or not strcoll and strcmp differ" >&5
+echo "configure:5276: checking whether or not strcoll and strcmp differ" >&5
if eval "test \"`echo '$''{'bash_cv_func_strcoll_broken'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -5240,7 +5280,7 @@ else
{ echo "configure: error: cannot check strcoll if cross compiling" 1>&2; exit 1; }
else
cat > conftest.$ac_ext <<EOF
-#line 5244 "configure"
+#line 5284 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -5279,7 +5319,7 @@ char *v[];
}
EOF
-if { (eval echo configure:5283: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5323: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
bash_cv_func_strcoll_broken=yes
else
@@ -5306,7 +5346,7 @@ fi
echo $ac_n "checking if signal handlers must be reinstalled when invoked""... $ac_c" 1>&6
-echo "configure:5310: checking if signal handlers must be reinstalled when invoked" >&5
+echo "configure:5350: checking if signal handlers must be reinstalled when invoked" >&5
if eval "test \"`echo '$''{'bash_cv_must_reinstall_sighandlers'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -5314,7 +5354,7 @@ else
{ echo "configure: error: cannot check signal handling if cross compiling" 1>&2; exit 1; }
else
cat > conftest.$ac_ext <<EOF
-#line 5318 "configure"
+#line 5358 "configure"
#include "confdefs.h"
#include <signal.h>
@@ -5361,7 +5401,7 @@ main()
}
EOF
-if { (eval echo configure:5365: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5405: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
bash_cv_must_reinstall_sighandlers=no
else
@@ -5385,7 +5425,7 @@ fi
echo $ac_n "checking for presence of necessary job control definitions""... $ac_c" 1>&6
-echo "configure:5389: checking for presence of necessary job control definitions" >&5
+echo "configure:5429: checking for presence of necessary job control definitions" >&5
if eval "test \"`echo '$''{'bash_cv_job_control_missing'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -5393,7 +5433,7 @@ else
{ echo "configure: error: cannot check job control if cross-compiling" 1>&2; exit 1; }
else
cat > conftest.$ac_ext <<EOF
-#line 5397 "configure"
+#line 5437 "configure"
#include "confdefs.h"
#include <sys/types.h>
@@ -5440,7 +5480,7 @@ exit(1);
exit(0);
}
EOF
-if { (eval echo configure:5444: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5484: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
bash_cv_job_control_missing=present
else
@@ -5464,7 +5504,7 @@ EOF
fi
echo $ac_n "checking for presence of named pipes""... $ac_c" 1>&6
-echo "configure:5468: checking for presence of named pipes" >&5
+echo "configure:5508: checking for presence of named pipes" >&5
if eval "test \"`echo '$''{'bash_cv_sys_named_pipes'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -5472,7 +5512,7 @@ else
{ echo "configure: error: cannot check for named pipes if cross-compiling" 1>&2; exit 1; }
else
cat > conftest.$ac_ext <<EOF
-#line 5476 "configure"
+#line 5516 "configure"
#include "confdefs.h"
#include <sys/types.h>
@@ -5506,7 +5546,7 @@ unlink ("/tmp/sh-np-autoconf");
exit(0);
}
EOF
-if { (eval echo configure:5510: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5550: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
bash_cv_sys_named_pipes=present
else
@@ -5531,12 +5571,12 @@ fi
echo $ac_n "checking for TIOCGWINSZ in sys/ioctl.h""... $ac_c" 1>&6
-echo "configure:5535: checking for TIOCGWINSZ in sys/ioctl.h" >&5
+echo "configure:5575: checking for TIOCGWINSZ in sys/ioctl.h" >&5
if eval "test \"`echo '$''{'bash_cv_tiocgwinsz_in_ioctl'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5540 "configure"
+#line 5580 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/ioctl.h>
@@ -5544,7 +5584,7 @@ int main() {
int x = TIOCGWINSZ;
; return 0; }
EOF
-if { (eval echo configure:5548: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5588: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bash_cv_tiocgwinsz_in_ioctl=yes
else
@@ -5565,12 +5605,12 @@ EOF
fi
echo $ac_n "checking for TIOCSTAT in sys/ioctl.h""... $ac_c" 1>&6
-echo "configure:5569: checking for TIOCSTAT in sys/ioctl.h" >&5
+echo "configure:5609: checking for TIOCSTAT in sys/ioctl.h" >&5
if eval "test \"`echo '$''{'bash_cv_tiocstat_in_ioctl'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5574 "configure"
+#line 5614 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/ioctl.h>
@@ -5578,7 +5618,7 @@ int main() {
int x = TIOCSTAT;
; return 0; }
EOF
-if { (eval echo configure:5582: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5622: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bash_cv_tiocstat_in_ioctl=yes
else
@@ -5599,12 +5639,12 @@ EOF
fi
echo $ac_n "checking for FIONREAD in sys/ioctl.h""... $ac_c" 1>&6
-echo "configure:5603: checking for FIONREAD in sys/ioctl.h" >&5
+echo "configure:5643: checking for FIONREAD in sys/ioctl.h" >&5
if eval "test \"`echo '$''{'bash_cv_fionread_in_ioctl'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5608 "configure"
+#line 5648 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/ioctl.h>
@@ -5612,7 +5652,7 @@ int main() {
int x = FIONREAD;
; return 0; }
EOF
-if { (eval echo configure:5616: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5656: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bash_cv_fionread_in_ioctl=yes
else
@@ -5634,19 +5674,19 @@ fi
echo $ac_n "checking for speed_t in sys/types.h""... $ac_c" 1>&6
-echo "configure:5638: checking for speed_t in sys/types.h" >&5
+echo "configure:5678: checking for speed_t in sys/types.h" >&5
if eval "test \"`echo '$''{'bash_cv_speed_t_in_sys_types'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5643 "configure"
+#line 5683 "configure"
#include "confdefs.h"
#include <sys/types.h>
int main() {
speed_t x;
; return 0; }
EOF
-if { (eval echo configure:5650: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5690: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bash_cv_speed_t_in_sys_types=yes
else
@@ -5667,21 +5707,23 @@ EOF
fi
echo $ac_n "checking whether programs are able to redeclare getpw functions""... $ac_c" 1>&6
-echo "configure:5671: checking whether programs are able to redeclare getpw functions" >&5
+echo "configure:5711: checking whether programs are able to redeclare getpw functions" >&5
if eval "test \"`echo '$''{'bash_cv_can_redecl_getpw'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5676 "configure"
+#line 5716 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <pwd.h>
extern struct passwd *getpwent();
+extern struct passwd *getpwuid();
+extern struct passwd *getpwnam();
int main() {
-struct passwd *z; z = getpwent();
+struct passwd *z; z = getpwent(); z = getpwuid(0); z = getpwnam("root");
; return 0; }
EOF
-if { (eval echo configure:5685: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5727: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bash_cv_can_redecl_getpw=yes
else
@@ -5704,12 +5746,12 @@ fi
case "$host_os" in
hpux*) echo $ac_n "checking whether $host_os needs _KERNEL for RLIMIT defines""... $ac_c" 1>&6
-echo "configure:5708: checking whether $host_os needs _KERNEL for RLIMIT defines" >&5
+echo "configure:5750: checking whether $host_os needs _KERNEL for RLIMIT defines" >&5
if eval "test \"`echo '$''{'bash_cv_kernel_rlimit'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5713 "configure"
+#line 5755 "configure"
#include "confdefs.h"
#include <sys/types.h>
@@ -5722,7 +5764,7 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:5726: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5768: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bash_cv_kernel_rlimit=no
else
@@ -5730,7 +5772,7 @@ else
cat conftest.$ac_ext >&5
rm -rf conftest*
cat > conftest.$ac_ext <<EOF
-#line 5734 "configure"
+#line 5776 "configure"
#include "confdefs.h"
#include <sys/types.h>
@@ -5745,7 +5787,7 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:5749: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5791: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bash_cv_kernel_rlimit=yes
else
@@ -5779,14 +5821,14 @@ if test "X$bash_cv_termcap_lib" = "X"; then
_bash_needmsg=yes
else
echo $ac_n "checking which library has the termcap functions""... $ac_c" 1>&6
-echo "configure:5783: checking which library has the termcap functions" >&5
+echo "configure:5825: checking which library has the termcap functions" >&5
_bash_needmsg=
fi
if eval "test \"`echo '$''{'bash_cv_termcap_lib'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
echo $ac_n "checking for tgetent in -ltermcap""... $ac_c" 1>&6
-echo "configure:5790: checking for tgetent in -ltermcap" >&5
+echo "configure:5832: checking for tgetent in -ltermcap" >&5
ac_lib_var=`echo termcap'_'tgetent | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -5794,7 +5836,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ltermcap $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 5798 "configure"
+#line 5840 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -5805,7 +5847,7 @@ int main() {
tgetent()
; return 0; }
EOF
-if { (eval echo configure:5809: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5851: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -5824,7 +5866,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for tgetent in -lcurses""... $ac_c" 1>&6
-echo "configure:5828: checking for tgetent in -lcurses" >&5
+echo "configure:5870: checking for tgetent in -lcurses" >&5
ac_lib_var=`echo curses'_'tgetent | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -5832,7 +5874,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lcurses $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 5836 "configure"
+#line 5878 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -5843,7 +5885,7 @@ int main() {
tgetent()
; return 0; }
EOF
-if { (eval echo configure:5847: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5889: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -5862,7 +5904,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for tgetent in -lncurses""... $ac_c" 1>&6
-echo "configure:5866: checking for tgetent in -lncurses" >&5
+echo "configure:5908: checking for tgetent in -lncurses" >&5
ac_lib_var=`echo ncurses'_'tgetent | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -5870,7 +5912,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lncurses $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 5874 "configure"
+#line 5916 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -5881,7 +5923,7 @@ int main() {
tgetent()
; return 0; }
EOF
-if { (eval echo configure:5885: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5927: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -5910,7 +5952,7 @@ fi
if test "X$_bash_needmsg" = "Xyes"; then
echo $ac_n "checking which library has the termcap functions""... $ac_c" 1>&6
-echo "configure:5914: checking which library has the termcap functions" >&5
+echo "configure:5956: checking which library has the termcap functions" >&5
fi
echo "$ac_t""using $bash_cv_termcap_lib" 1>&6
if test $bash_cv_termcap_lib = gnutermcap; then
@@ -5933,7 +5975,7 @@ fi
echo $ac_n "checking whether /dev/fd is available""... $ac_c" 1>&6
-echo "configure:5937: checking whether /dev/fd is available" >&5
+echo "configure:5979: checking whether /dev/fd is available" >&5
if eval "test \"`echo '$''{'bash_cv_dev_fd'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -5969,7 +6011,7 @@ EOF
fi
echo $ac_n "checking for default mail directory""... $ac_c" 1>&6
-echo "configure:5973: checking for default mail directory" >&5
+echo "configure:6015: checking for default mail directory" >&5
if eval "test \"`echo '$''{'bash_cv_mail_dir'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -5977,10 +6019,10 @@ else
bash_cv_mail_dir=/var/mail
elif test -d /usr/mail; then
bash_cv_mail_dir=/usr/mail
- elif test -d /usr/spool/mail; then
- bash_cv_mail_dir=/usr/spool/mail
elif test -d /var/spool/mail; then
bash_cv_mail_dir=/var/spool/mail
+ elif test -d /usr/spool/mail; then
+ bash_cv_mail_dir=/usr/spool/mail
else
bash_cv_mail_dir=unknown
fi
@@ -6037,7 +6079,7 @@ LOCAL_DEFS=-DSHELL
case "$host_os" in
-sysv4.2) cat >> confdefs.h <<\EOF
+sysv4.2*) cat >> confdefs.h <<\EOF
#define SVR4_2 1
EOF
diff --git a/configure.in b/configure.in
index 32ddb2f1..e64dc4c0 100644
--- a/configure.in
+++ b/configure.in
@@ -6,7 +6,7 @@ dnl
dnl Process this file with autoconf to produce a configure script.
dnl checks for version info
-AC_REVISION([for Bash 2.01, version 1.26, from autoconf version] AC_ACVERSION)dnl
+AC_REVISION([for Bash 2.01, version 1.28, from autoconf version] AC_ACVERSION)dnl
AC_INIT(shell.h)
AC_CONFIG_HEADER(config.h)
@@ -38,7 +38,7 @@ alpha-*) opt_gnu_malloc=no ;; # alpha running osf/1 or linux
*-osf1*) opt_gnu_malloc=no ;; # other osf/1 machines
sparc-svr4*) opt_gnu_malloc=no ;; # sparc SVR4, SVR4.2
sparc-netbsd*) opt_gnu_malloc=no ;; # needs 8-byte alignment
-*-sgi-irix6*) opt_gnu_malloc=no ;; # needs 8-byte alignment
+sgi-irix6*) opt_gnu_malloc=no ;; # needs 8-byte alignment
sparc-linux*) opt_gnu_malloc=no ;; # sparc running linux; requires ELF
*-freebsd*) opt_gnu_malloc=no ;; # they claim it's better
*-aix*) opt_gnu_malloc=no ;; # AIX machines
@@ -46,7 +46,7 @@ sparc-linux*) opt_gnu_malloc=no ;; # sparc running linux; requires ELF
*-dgux*) opt_gnu_malloc=no ;; # DG/UX machines
*-qnx*) opt_gnu_malloc=no ;; # QNX 4.2
*-machten4) opt_gnu_malloc=no ;; # MachTen 4.x
-*-bsdi2.1) opt_gnu_malloc=no ; : ${CC:=shlicc2} ;; # for loadable builtins
+*-bsdi2.1|*-bsdi3.0) opt_gnu_malloc=no ; : ${CC:=shlicc2} ;; # for loadable builtins
esac
dnl arguments to configure
@@ -456,7 +456,7 @@ dnl
dnl this should really go away someday
case "$host_os" in
-sysv4.2) AC_DEFINE(SVR4_2)
+sysv4.2*) AC_DEFINE(SVR4_2)
AC_DEFINE(SVR4) ;;
sysv4*) AC_DEFINE(SVR4) ;;
hpux*) LOCAL_CFLAGS=-DHPUX ;;
diff --git a/doc/Makefile.in b/doc/Makefile.in
index 3f4ee98a..98f76b03 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -142,7 +142,8 @@ maintainer-clean: clean
installdirs:
-test -d $(man1dir) || $(SHELL) ${MKDIRS} $(man1dir)
- -test -d $(man3dir) || $(SHELL) ${MKDIRS} $(man3dir)
+# uncomment the next line to create the directory for the readline man page
+# -test -d $(man3dir) || $(SHELL) ${MKDIRS} $(man3dir)
-test -d $(infodir) || $(SHELL) ${MKDIRS} $(infodir)
install: info installdirs
diff --git a/doc/bashref.info b/doc/bashref.info
index 974c2ce6..4707a20a 100644
--- a/doc/bashref.info
+++ b/doc/bashref.info
@@ -1,5 +1,10 @@
-This is Info file bashref.info, produced by Makeinfo-1.64 from the
-input file ./bashref.texi.
+This is Info file bashref.info, produced by Makeinfo version 1.67 from
+the input file /usr/homes/chet/src/bash/bash-2.01.1/doc/bashref.texi.
+
+INFO-DIR-SECTION Utilities
+START-INFO-DIR-ENTRY
+* Bash: (bash). GNU Bourne-Again SHell
+END-INFO-DIR-ENTRY
This text is a brief description of the features that are present in
the Bash shell.
@@ -2412,7 +2417,7 @@ the `alias' and `unalias' builtin commands.
has an alias. If so, that word is replaced by the text of the alias.
The alias name and the replacement text may contain any valid shell
input, including shell metacharacters, with the exception that the
-alias name may not contain =. The first word of the replacement text
+alias name may not contain <=>. The first word of the replacement text
is tested for aliases, but a word that is identical to an alias being
expanded is not expanded a second time. This means that one may alias
`ls' to `"ls -F"', for instance, and Bash does not try to recursively
@@ -4464,7 +4469,7 @@ history list.
`!'
Start a history substitution, except when followed by a space, tab,
- the end of the line, = or (.
+ the end of the line, <=> or <(>.
`!N'
Refer to command line N.
@@ -4610,21 +4615,22 @@ Introduction to Line Editing
The following paragraphs describe the notation used to represent
keystrokes.
- The text C-k is read as `Control-K' and describes the character
-produced when the k key is pressed while the Control key is depressed.
+ The text <C-k> is read as `Control-K' and describes the character
+produced when the <k> key is pressed while the Control key is depressed.
- The text M-k is read as `Meta-K' and describes the character
-produced when the meta key (if you have one) is depressed, and the k
+ The text <M-k> is read as `Meta-K' and describes the character
+produced when the meta key (if you have one) is depressed, and the <k>
key is pressed. If you do not have a meta key, the identical keystroke
-can be generated by typing ESC first, and then typing k. Either
-process is known as "metafying" the k key.
+can be generated by typing <ESC> first, and then typing <k>. Either
+process is known as "metafying" the <k> key.
- The text M-C-k is read as `Meta-Control-k' and describes the
-character produced by "metafying" C-k.
+ The text <M-C-k> is read as `Meta-Control-k' and describes the
+character produced by "metafying" <C-k>.
- In addition, several keys have their own names. Specifically, DEL,
-ESC, LFD, SPC, RET, and TAB all stand for themselves when seen in this
-text, or in an init file (*note Readline Init File::.).
+ In addition, several keys have their own names. Specifically,
+<DEL>, <ESC>, <LFD>, <SPC>, <RET>, and <TAB> all stand for themselves
+when seen in this text, or in an init file (*note Readline Init
+File::.).

File: bashref.info, Node: Readline Interaction, Next: Readline Init File, Prev: Introduction and Notation, Up: Command Line Editing
@@ -4639,9 +4645,9 @@ as you type it in, allowing you to just fix your typo, and not forcing
you to retype the majority of the line. Using these editing commands,
you move the cursor to the place that needs correction, and delete or
insert the text of the corrections. Then, when you are satisfied with
-the line, you simply press RETURN. You do not have to be at the end of
-the line to press RETURN; the entire line is accepted regardless of the
-location of the cursor within the line.
+the line, you simply press <RETURN>. You do not have to be at the end
+of the line to press <RETURN>; the entire line is accepted regardless
+of the location of the cursor within the line.
* Menu:
@@ -4664,9 +4670,9 @@ erase character to back up and delete the mistyped character.
Sometimes you may miss typing a character that you wanted to type,
and not notice your error until you have typed several other
-characters. In that case, you can type C-b to move the cursor to the
+characters. In that case, you can type <C-b> to move the cursor to the
left, and then correct your mistake. Afterwards, you can move the
-cursor to the right with C-f.
+cursor to the right with <C-f>.
When you add text in the middle of a line, you will notice that
characters to the right of the cursor are `pushed over' to make room
@@ -4676,22 +4682,22 @@ back' to fill in the blank space created by the removal of the text. A
list of the basic bare essentials for editing the text of an input line
follows.
-C-b
+<C-b>
Move back one character.
-C-f
+<C-f>
Move forward one character.
-DEL
+<DEL>
Delete the character to the left of the cursor.
-C-d
+<C-d>
Delete the character underneath the cursor.
Printing characters
Insert the character into the line at the cursor.
-C-_
+<C-_>
Undo the last thing that you did. You can undo all the way back
to an empty line.
@@ -4703,28 +4709,28 @@ Readline Movement Commands
The above table describes the most basic possible keystrokes that
you need in order to do editing of the input line. For your
-convenience, many other commands have been added in addition to C-b,
-C-f, C-d, and DEL. Here are some commands for moving more rapidly
+convenience, many other commands have been added in addition to <C-b>,
+<C-f>, <C-d>, and <DEL>. Here are some commands for moving more rapidly
about the line.
-C-a
+<C-a>
Move to the start of the line.
-C-e
+<C-e>
Move to the end of the line.
-M-f
+<M-f>
Move forward a word.
-M-b
+<M-b>
Move backward a word.
-C-l
+<C-l>
Clear the screen, reprinting the current line at the top.
- Notice how C-f moves forward a character, while M-f moves forward a
-word. It is a loose convention that control keystrokes operate on
-characters while meta keystrokes operate on words.
+ Notice how <C-f> moves forward a character, while <M-f> moves
+forward a word. It is a loose convention that control keystrokes
+operate on characters while meta keystrokes operate on words.

File: bashref.info, Node: Readline Killing Commands, Next: Readline Arguments, Prev: Readline Movement Commands, Up: Readline Interaction
@@ -4746,32 +4752,32 @@ available to be yanked back later, when you are typing another line.
Here is the list of commands for killing text.
-C-k
+<C-k>
Kill the text from the current cursor position to the end of the
line.
-M-d
+<M-d>
Kill from the cursor to the end of the current word, or if between
words, to the end of the next word.
-M-DEL
+<M-DEL>
Kill from the cursor the start of the previous word, or if between
words, to the start of the previous word.
-C-w
+<C-w>
Kill from the cursor to the previous whitespace. This is
- different than M-DEL because the word boundaries differ.
+ different than <M-DEL> because the word boundaries differ.
And, here is how to "yank" the text back into the line. Yanking
means to copy the most-recently-killed text from the kill buffer.
-C-y
+<C-y>
Yank the most recently killed text back into the buffer at the
cursor.
-M-y
+<M-y>
Rotate the kill-ring, and yank the new top. You can only do this
- if the prior command is C-y or M-y.
+ if the prior command is <C-y> or <M-y>.

File: bashref.info, Node: Readline Arguments, Next: Searching, Prev: Readline Killing Commands, Up: Readline Interaction
@@ -4788,10 +4794,10 @@ start of the line, you might type `M-- C-k'.
The general way to pass numeric arguments to a command is to type
meta digits before the command. If the first `digit' you type is a
-minus sign (-), then the sign of the argument will be negative. Once
+minus sign (<->), then the sign of the argument will be negative. Once
you have typed one meta digit to get the argument started, you can type
the remainder of the digits, and then the command. For example, to give
-the C-d command an argument of 10, you could type `M-1 0 C-d'.
+the <C-d> command an argument of 10, you could type `M-1 0 C-d'.

File: bashref.info, Node: Searching, Prev: Readline Arguments, Up: Readline Interaction
@@ -4897,7 +4903,7 @@ Variable Settings
`convert-meta'
If set to `on', Readline will convert characters with the
eigth bit set to an ASCII key sequence by stripping the eigth
- bit and prepending an ESC character, converting them to a
+ bit and prepending an <ESC> character, converting them to a
meta-prefixed key sequence. The default value is `on'.
`disable-completion'
@@ -5011,23 +5017,23 @@ Key Bindings
The following escape sequences are available when specifying
key sequences:
- ``\C-''
+ `\C-'
control prefix
- ``\M-''
+ `\M-'
meta prefix
- ``\e''
+ `\e'
an escape character
- ``\\''
+ `\\'
backslash
- ``\"''
- "
+ `\"'
+ <">
- ``\'''
- '
+ `\''
+ <'>
When entering the text of a macro, single or double quotes
should be used to indicate a macro definition. Unquoted text
@@ -5331,7 +5337,7 @@ Commands For Changing Text
`quoted-insert (C-q, C-v)'
Add the next character that you type to the line verbatim. This is
- how to insert key sequences like C-q, for example.
+ how to insert key sequences like <C-q>, for example.
`tab-insert (M-TAB)'
Insert a tab character.
@@ -5432,7 +5438,7 @@ Specifying Numeric Arguments
`digit-argument (M-0, M-1, ... M--)'
Add this digit to the argument already accumulating, or start a new
- argument. M- starts a negative argument.
+ argument. <M-> starts a negative argument.
`universal-argument ()'
This is another way to specify an argument. If this command is
@@ -5672,7 +5678,7 @@ modes, use the `set -o emacs' and `set -o vi' commands (*note The Set
Builtin::.). The Readline default is `emacs' mode.
When you enter a line in `vi' mode, you are already placed in
-`insertion' mode, as if you had typed an `i'. Pressing ESC switches
+`insertion' mode, as if you had typed an `i'. Pressing <ESC> switches
you into `command' mode, where you can edit the text of the line with
the standard `vi' movement keys, move to previous history lines with
`k' and subsequent lines with `j', and so forth.
@@ -6082,60 +6088,60 @@ Index of Shell Builtin Commands
* Menu:
-* .: Bourne Shell Builtins.
-* :: Bourne Shell Builtins.
-* [: Bourne Shell Builtins.
-* alias: Alias Builtins.
-* bg: Job Control Builtins.
-* bind: Bash Builtins.
-* break: Bourne Shell Builtins.
-* builtin: Bash Builtins.
-* cd: Bourne Shell Builtins.
-* command: Bash Builtins.
-* continue: Bourne Shell Builtins.
-* declare: Bash Builtins.
-* dirs: C Shell Builtins.
-* disown: Job Control Builtins.
-* echo: Bash Builtins.
-* enable: Bash Builtins.
-* eval: Bourne Shell Builtins.
-* exec: Bourne Shell Builtins.
-* exit: Bourne Shell Builtins.
-* export: Bourne Shell Builtins.
-* fc: Korn Shell Builtins.
-* fg: Job Control Builtins.
-* getopts: Bourne Shell Builtins.
-* hash: Bourne Shell Builtins.
-* help: Bash Builtins.
-* history: C Shell Builtins.
-* jobs: Job Control Builtins.
-* kill: Job Control Builtins.
-* let <1>: Arithmetic Builtins.
-* let: Korn Shell Builtins.
-* local: Bash Builtins.
-* logout <1>: Bash Builtins.
-* logout: C Shell Builtins.
-* popd: C Shell Builtins.
-* pushd: C Shell Builtins.
-* pwd: Bourne Shell Builtins.
-* read: Bash Builtins.
-* readonly: Bourne Shell Builtins.
-* return: Bourne Shell Builtins.
-* set: The Set Builtin.
-* shift: Bourne Shell Builtins.
-* shopt: Bash Builtins.
-* source: C Shell Builtins.
-* suspend: Job Control Builtins.
-* test: Bourne Shell Builtins.
-* times: Bourne Shell Builtins.
-* trap: Bourne Shell Builtins.
-* type: Bash Builtins.
-* typeset: Korn Shell Builtins.
-* ulimit: Bash Builtins.
-* umask: Bourne Shell Builtins.
-* unalias: Alias Builtins.
-* unset: Bourne Shell Builtins.
-* wait: Job Control Builtins.
+* .: Bourne Shell Builtins.
+* :: Bourne Shell Builtins.
+* [: Bourne Shell Builtins.
+* alias: Alias Builtins.
+* bg: Job Control Builtins.
+* bind: Bash Builtins.
+* break: Bourne Shell Builtins.
+* builtin: Bash Builtins.
+* cd: Bourne Shell Builtins.
+* command: Bash Builtins.
+* continue: Bourne Shell Builtins.
+* declare: Bash Builtins.
+* dirs: C Shell Builtins.
+* disown: Job Control Builtins.
+* echo: Bash Builtins.
+* enable: Bash Builtins.
+* eval: Bourne Shell Builtins.
+* exec: Bourne Shell Builtins.
+* exit: Bourne Shell Builtins.
+* export: Bourne Shell Builtins.
+* fc: Korn Shell Builtins.
+* fg: Job Control Builtins.
+* getopts: Bourne Shell Builtins.
+* hash: Bourne Shell Builtins.
+* help: Bash Builtins.
+* history: C Shell Builtins.
+* jobs: Job Control Builtins.
+* kill: Job Control Builtins.
+* let <1>: Arithmetic Builtins.
+* let: Korn Shell Builtins.
+* local: Bash Builtins.
+* logout <1>: Bash Builtins.
+* logout: C Shell Builtins.
+* popd: C Shell Builtins.
+* pushd: C Shell Builtins.
+* pwd: Bourne Shell Builtins.
+* read: Bash Builtins.
+* readonly: Bourne Shell Builtins.
+* return: Bourne Shell Builtins.
+* set: The Set Builtin.
+* shift: Bourne Shell Builtins.
+* shopt: Bash Builtins.
+* source: C Shell Builtins.
+* suspend: Job Control Builtins.
+* test: Bourne Shell Builtins.
+* times: Bourne Shell Builtins.
+* trap: Bourne Shell Builtins.
+* type: Bash Builtins.
+* typeset: Korn Shell Builtins.
+* ulimit: Bash Builtins.
+* umask: Bourne Shell Builtins.
+* unalias: Alias Builtins.
+* unset: Bourne Shell Builtins.
+* wait: Job Control Builtins.

File: bashref.info, Node: Reserved Word Index, Next: Variable Index, Prev: Builtin Index, Up: Top
@@ -6145,25 +6151,25 @@ Shell Reserved Words
* Menu:
-* !: Pipelines.
-* {: Command Grouping.
-* }: Command Grouping.
-* case: Conditional Constructs.
-* do: Looping Constructs.
-* done: Looping Constructs.
-* elif: Conditional Constructs.
-* else: Conditional Constructs.
-* esac: Conditional Constructs.
-* fi: Conditional Constructs.
-* for: Looping Constructs.
-* function: Shell Functions.
-* if: Conditional Constructs.
-* in: Conditional Constructs.
-* select: Korn Shell Constructs.
-* then: Conditional Constructs.
-* time: Pipelines.
-* until: Looping Constructs.
-* while: Looping Constructs.
+* !: Pipelines.
+* case: Conditional Constructs.
+* do: Looping Constructs.
+* done: Looping Constructs.
+* elif: Conditional Constructs.
+* else: Conditional Constructs.
+* esac: Conditional Constructs.
+* fi: Conditional Constructs.
+* for: Looping Constructs.
+* function: Shell Functions.
+* if: Conditional Constructs.
+* in: Conditional Constructs.
+* select: Korn Shell Constructs.
+* then: Conditional Constructs.
+* time: Pipelines.
+* until: Looping Constructs.
+* while: Looping Constructs.
+* {: Command Grouping.
+* }: Command Grouping.

File: bashref.info, Node: Variable Index, Next: Function Index, Prev: Reserved Word Index, Up: Top
@@ -6173,89 +6179,89 @@ Parameter and Variable Index
* Menu:
-* !: Special Parameters.
-* #: Special Parameters.
-* $: Special Parameters.
-* *: Special Parameters.
-* -: Special Parameters.
-* 0: Special Parameters.
-* ?: Special Parameters.
-* @: Special Parameters.
-* _: Special Parameters.
-* auto_resume: Job Control Variables.
-* BASH: Bash Variables.
-* BASH_ENV: Bash Variables.
-* BASH_VERSINFO: Bash Variables.
-* BASH_VERSION: Bash Variables.
-* bell-style: Readline Init File Syntax.
-* CDPATH: Bourne Shell Variables.
-* comment-begin: Readline Init File Syntax.
-* completion-query-items: Readline Init File Syntax.
-* convert-meta: Readline Init File Syntax.
-* DIRSTACK: Bash Variables.
-* disable-completion: Readline Init File Syntax.
-* editing-mode: Readline Init File Syntax.
-* enable-keypad: Readline Init File Syntax.
-* EUID: Bash Variables.
-* expand-tilde: Readline Init File Syntax.
-* FCEDIT: Korn Shell Variables.
-* FIGNORE: Bash Variables.
-* GLOBIGNORE: Bash Variables.
-* GROUPS: Bash Variables.
-* histchars: Bash Variables.
-* HISTCMD: Bash Variables.
-* HISTCONTROL: Bash Variables.
-* HISTFILE: Bash Variables.
-* HISTFILESIZE: Bash Variables.
-* HISTIGNORE: Bash Variables.
-* HISTSIZE: Bash Variables.
-* HOME: Bourne Shell Variables.
-* horizontal-scroll-mode: Readline Init File Syntax.
-* HOSTFILE: Bash Variables.
-* HOSTNAME: Bash Variables.
-* HOSTTYPE: Bash Variables.
-* IFS: Bourne Shell Variables.
-* IGNOREEOF <1>: Bash Variables.
-* IGNOREEOF: C Shell Variables.
-* input-meta: Readline Init File Syntax.
-* INPUTRC: Bash Variables.
-* keymap: Readline Init File Syntax.
-* LANG: Bash Variables.
-* LC_ALL: Bash Variables.
-* LC_COLLATE: Bash Variables.
-* LC_MESSAGES: Bash Variables.
-* LINENO: Korn Shell Variables.
-* MACHTYPE: Bash Variables.
-* MAIL: Bourne Shell Variables.
-* MAILCHECK: Bash Variables.
-* MAILPATH: Bourne Shell Variables.
-* mark-modified-lines: Readline Init File Syntax.
-* meta-flag: Readline Init File Syntax.
-* OLDPWD: Korn Shell Variables.
-* OPTARG: Bourne Shell Variables.
-* OPTERR: Bash Variables.
-* OPTIND: Bourne Shell Variables.
-* OSTYPE: Bash Variables.
-* output-meta: Readline Init File Syntax.
-* PATH: Bourne Shell Variables.
-* PIPESTATUS: Bash Variables.
-* PPID: Bash Variables.
-* PROMPT_COMMAND: Bash Variables.
-* PS1: Bourne Shell Variables.
-* PS2: Bourne Shell Variables.
-* PS3: Korn Shell Variables.
-* PS4: Korn Shell Variables.
-* PWD: Korn Shell Variables.
-* RANDOM: Korn Shell Variables.
-* REPLY: Korn Shell Variables.
-* SECONDS: Korn Shell Variables.
-* SHELLOPTS: Bash Variables.
-* SHLVL: Bash Variables.
-* show-all-if-ambiguous: Readline Init File Syntax.
-* TIMEFORMAT: Bash Variables.
-* TMOUT: Korn Shell Variables.
-* UID: Bash Variables.
-* visible-stats: Readline Init File Syntax.
+* !: Special Parameters.
+* #: Special Parameters.
+* $: Special Parameters.
+* *: Special Parameters.
+* -: Special Parameters.
+* 0: Special Parameters.
+* ?: Special Parameters.
+* @: Special Parameters.
+* _: Special Parameters.
+* auto_resume: Job Control Variables.
+* BASH: Bash Variables.
+* BASH_ENV: Bash Variables.
+* BASH_VERSINFO: Bash Variables.
+* BASH_VERSION: Bash Variables.
+* bell-style: Readline Init File Syntax.
+* CDPATH: Bourne Shell Variables.
+* comment-begin: Readline Init File Syntax.
+* completion-query-items: Readline Init File Syntax.
+* convert-meta: Readline Init File Syntax.
+* DIRSTACK: Bash Variables.
+* disable-completion: Readline Init File Syntax.
+* editing-mode: Readline Init File Syntax.
+* enable-keypad: Readline Init File Syntax.
+* EUID: Bash Variables.
+* expand-tilde: Readline Init File Syntax.
+* FCEDIT: Korn Shell Variables.
+* FIGNORE: Bash Variables.
+* GLOBIGNORE: Bash Variables.
+* GROUPS: Bash Variables.
+* histchars: Bash Variables.
+* HISTCMD: Bash Variables.
+* HISTCONTROL: Bash Variables.
+* HISTFILE: Bash Variables.
+* HISTFILESIZE: Bash Variables.
+* HISTIGNORE: Bash Variables.
+* HISTSIZE: Bash Variables.
+* HOME: Bourne Shell Variables.
+* horizontal-scroll-mode: Readline Init File Syntax.
+* HOSTFILE: Bash Variables.
+* HOSTNAME: Bash Variables.
+* HOSTTYPE: Bash Variables.
+* IFS: Bourne Shell Variables.
+* IGNOREEOF <1>: Bash Variables.
+* IGNOREEOF: C Shell Variables.
+* input-meta: Readline Init File Syntax.
+* INPUTRC: Bash Variables.
+* keymap: Readline Init File Syntax.
+* LANG: Bash Variables.
+* LC_ALL: Bash Variables.
+* LC_COLLATE: Bash Variables.
+* LC_MESSAGES: Bash Variables.
+* LINENO: Korn Shell Variables.
+* MACHTYPE: Bash Variables.
+* MAIL: Bourne Shell Variables.
+* MAILCHECK: Bash Variables.
+* MAILPATH: Bourne Shell Variables.
+* mark-modified-lines: Readline Init File Syntax.
+* meta-flag: Readline Init File Syntax.
+* OLDPWD: Korn Shell Variables.
+* OPTARG: Bourne Shell Variables.
+* OPTERR: Bash Variables.
+* OPTIND: Bourne Shell Variables.
+* OSTYPE: Bash Variables.
+* output-meta: Readline Init File Syntax.
+* PATH: Bourne Shell Variables.
+* PIPESTATUS: Bash Variables.
+* PPID: Bash Variables.
+* PROMPT_COMMAND: Bash Variables.
+* PS1: Bourne Shell Variables.
+* PS2: Bourne Shell Variables.
+* PS3: Korn Shell Variables.
+* PS4: Korn Shell Variables.
+* PWD: Korn Shell Variables.
+* RANDOM: Korn Shell Variables.
+* REPLY: Korn Shell Variables.
+* SECONDS: Korn Shell Variables.
+* SHELLOPTS: Bash Variables.
+* SHLVL: Bash Variables.
+* show-all-if-ambiguous: Readline Init File Syntax.
+* TIMEFORMAT: Bash Variables.
+* TMOUT: Korn Shell Variables.
+* UID: Bash Variables.
+* visible-stats: Readline Init File Syntax.

File: bashref.info, Node: Function Index, Next: Concept Index, Prev: Variable Index, Up: Top
@@ -6265,74 +6271,74 @@ Function Index
* Menu:
-* abort (C-g): Miscellaneous Commands.
-* accept-line (Newline, Return): Commands For History.
-* backward-char (C-b): Commands For Moving.
-* backward-delete-char (Rubout): Commands For Text.
-* backward-kill-line (C-x Rubout): Commands For Killing.
-* backward-kill-word (M-DEL): Commands For Killing.
-* backward-word (M-b): Commands For Moving.
-* beginning-of-history (M-<): Commands For History.
-* beginning-of-line (C-a): Commands For Moving.
-* call-last-kbd-macro (C-x e): Keyboard Macros.
-* capitalize-word (M-c): Commands For Text.
-* character-search (C-]): Miscellaneous Commands.
-* character-search-backward (M-C-]): Miscellaneous Commands.
-* clear-screen (C-l): Commands For Moving.
-* complete (TAB): Commands For Completion.
-* copy-backward-word (): Commands For Killing.
-* copy-forward-word (): Commands For Killing.
-* copy-region-as-kill (): Commands For Killing.
-* delete-char (C-d): Commands For Text.
-* delete-horizontal-space (): Commands For Killing.
-* digit-argument (M-0, M-1, ... M-): Numeric Arguments.
+* abort (C-g): Miscellaneous Commands.
+* accept-line (Newline, Return): Commands For History.
+* backward-char (C-b): Commands For Moving.
+* backward-delete-char (Rubout): Commands For Text.
+* backward-kill-line (C-x Rubout): Commands For Killing.
+* backward-kill-word (M-DEL): Commands For Killing.
+* backward-word (M-b): Commands For Moving.
+* beginning-of-history (M-<): Commands For History.
+* beginning-of-line (C-a): Commands For Moving.
+* call-last-kbd-macro (C-x e): Keyboard Macros.
+* capitalize-word (M-c): Commands For Text.
+* character-search (C-]): Miscellaneous Commands.
+* character-search-backward (M-C-]): Miscellaneous Commands.
+* clear-screen (C-l): Commands For Moving.
+* complete (TAB): Commands For Completion.
+* copy-backward-word (): Commands For Killing.
+* copy-forward-word (): Commands For Killing.
+* copy-region-as-kill (): Commands For Killing.
+* delete-char (C-d): Commands For Text.
+* delete-horizontal-space (): Commands For Killing.
+* digit-argument (M-0, M-1, ... M--): Numeric Arguments.
* do-uppercase-version (M-a, M-b, M-X, ...): Miscellaneous Commands.
-* downcase-word (M-l): Commands For Text.
-* dump-functions (): Miscellaneous Commands.
-* dump-macros (): Miscellaneous Commands.
-* dump-variables (): Miscellaneous Commands.
-* end-kbd-macro (C-x )): Keyboard Macros.
-* end-of-history (M->): Commands For History.
-* end-of-line (C-e): Commands For Moving.
-* exchange-point-and-mark (C-x C-x): Miscellaneous Commands.
-* forward-char (C-f): Commands For Moving.
-* forward-search-history (C-s): Commands For History.
-* forward-word (M-f): Commands For Moving.
-* history-search-backward (): Commands For History.
-* history-search-forward (): Commands For History.
-* insert-comment (M-#): Miscellaneous Commands.
-* insert-completions (M-*): Commands For Completion.
-* kill-line (C-k): Commands For Killing.
-* kill-region (): Commands For Killing.
-* kill-whole-line (): Commands For Killing.
-* kill-word (M-d): Commands For Killing.
-* next-history (C-n): Commands For History.
+* downcase-word (M-l): Commands For Text.
+* dump-functions (): Miscellaneous Commands.
+* dump-macros (): Miscellaneous Commands.
+* dump-variables (): Miscellaneous Commands.
+* end-kbd-macro (C-x )): Keyboard Macros.
+* end-of-history (M->): Commands For History.
+* end-of-line (C-e): Commands For Moving.
+* exchange-point-and-mark (C-x C-x): Miscellaneous Commands.
+* forward-char (C-f): Commands For Moving.
+* forward-search-history (C-s): Commands For History.
+* forward-word (M-f): Commands For Moving.
+* history-search-backward (): Commands For History.
+* history-search-forward (): Commands For History.
+* insert-comment (M-#): Miscellaneous Commands.
+* insert-completions (M-*): Commands For Completion.
+* kill-line (C-k): Commands For Killing.
+* kill-region (): Commands For Killing.
+* kill-whole-line (): Commands For Killing.
+* kill-word (M-d): Commands For Killing.
+* next-history (C-n): Commands For History.
* non-incremental-forward-search-history (M-n): Commands For History.
* non-incremental-reverse-search-history (M-p): Commands For History.
-* possible-completions (M-?): Commands For Completion.
-* prefix-meta (ESC): Miscellaneous Commands.
-* previous-history (C-p): Commands For History.
-* quoted-insert (C-q, C-v): Commands For Text.
-* re-read-init-file (C-x C-r): Miscellaneous Commands.
-* redraw-current-line (): Commands For Moving.
-* reverse-search-history (C-r): Commands For History.
-* revert-line (M-r): Miscellaneous Commands.
-* self-insert (a, b, A, 1, !, ...): Commands For Text.
-* set-mark (C-@): Miscellaneous Commands.
-* start-kbd-macro (C-x (): Keyboard Macros.
-* tab-insert (M-TAB): Commands For Text.
-* tilde-expand (M-~): Miscellaneous Commands.
-* transpose-chars (C-t): Commands For Text.
-* transpose-words (M-t): Commands For Text.
-* undo (C-_, C-x C-u): Miscellaneous Commands.
-* universal-argument (): Numeric Arguments.
-* unix-line-discard (C-u): Commands For Killing.
-* unix-word-rubout (C-w): Commands For Killing.
-* upcase-word (M-u): Commands For Text.
-* yank (C-y): Commands For Killing.
-* yank-last-arg (M-., M-_): Commands For History.
-* yank-nth-arg (M-C-y): Commands For History.
-* yank-pop (M-y): Commands For Killing.
+* possible-completions (M-?): Commands For Completion.
+* prefix-meta (ESC): Miscellaneous Commands.
+* previous-history (C-p): Commands For History.
+* quoted-insert (C-q, C-v): Commands For Text.
+* re-read-init-file (C-x C-r): Miscellaneous Commands.
+* redraw-current-line (): Commands For Moving.
+* reverse-search-history (C-r): Commands For History.
+* revert-line (M-r): Miscellaneous Commands.
+* self-insert (a, b, A, 1, !, ...): Commands For Text.
+* set-mark (C-@): Miscellaneous Commands.
+* start-kbd-macro (C-x (): Keyboard Macros.
+* tab-insert (M-TAB): Commands For Text.
+* tilde-expand (M-~): Miscellaneous Commands.
+* transpose-chars (C-t): Commands For Text.
+* transpose-words (M-t): Commands For Text.
+* undo (C-_, C-x C-u): Miscellaneous Commands.
+* universal-argument (): Numeric Arguments.
+* unix-line-discard (C-u): Commands For Killing.
+* unix-word-rubout (C-w): Commands For Killing.
+* upcase-word (M-u): Commands For Text.
+* yank (C-y): Commands For Killing.
+* yank-last-arg (M-., M-_): Commands For History.
+* yank-nth-arg (M-C-y): Commands For History.
+* yank-pop (M-y): Commands For Killing.

File: bashref.info, Node: Concept Index, Prev: Function Index, Up: Top
@@ -6342,226 +6348,226 @@ Concept Index
* Menu:
-* alias expansion: Aliases.
-* arithmetic evaluation: Arithmetic Evaluation.
-* arithmetic expansion: Arithmetic Expansion.
-* arithmetic, shell: Shell Arithmetic.
-* arrays: Arrays.
-* background: Job Control Basics.
-* Bash configuration: Basic Installation.
-* Bash installation: Basic Installation.
-* Bourne shell: Basic Shell Features.
-* brace expansion: Brace Expansion.
-* builtin: Definitions.
-* command editing: Readline Bare Essentials.
-* command execution: Command Search and Execution.
-* command history: Bash History Facilities.
-* command search: Command Search and Execution.
-* command substitution: Command Substitution.
-* command timing: Pipelines.
-* commands, conditional: Conditional Constructs.
-* commands, grouping: Command Grouping.
-* commands, lists: Lists.
-* commands, looping: Looping Constructs.
-* commands, pipelines: Pipelines.
-* commands, simple: Simple Commands.
-* comments, shell: Comments.
-* configuration: Basic Installation.
-* control operator: Definitions.
-* editing command lines: Readline Bare Essentials.
-* environment: Environment.
-* evaluation, arithmetic: Arithmetic Evaluation.
-* event designators: Event Designators.
-* exit status <1>: Definitions.
-* exit status: Exit Status.
-* expansion: Shell Expansions.
-* expansion, arithmetic: Arithmetic Expansion.
-* expansion, brace: Brace Expansion.
-* expansion, filename: Filename Expansion.
-* expansion, parameter: Shell Parameter Expansion.
-* expansion, pathname: Filename Expansion.
-* expansion, tilde: Tilde Expansion.
-* expressions, arithmetic: Arithmetic Evaluation.
-* expressions, conditional: Bash Conditional Expressions.
-* field: Definitions.
-* filename: Definitions.
-* filename expansion: Filename Expansion.
-* foreground: Job Control Basics.
-* functions, shell: Shell Functions.
-* history events: Event Designators.
-* history expansion: History Interaction.
-* history list: Bash History Facilities.
-* History, how to use: Job Control Variables.
-* identifier: Definitions.
-* initialization file, readline: Readline Init File.
-* installation: Basic Installation.
-* interaction, readline: Readline Interaction.
-* interactive shell <1>: Is This Shell Interactive?.
-* interactive shell: Invoking Bash.
-* job: Definitions.
-* job control <1>: Definitions.
-* job control: Job Control Basics.
-* kill ring: Readline Killing Commands.
-* killing text: Readline Killing Commands.
-* localization: Locale Translation.
-* metacharacter: Definitions.
-* name: Definitions.
-* notation, readline: Readline Bare Essentials.
-* operator, shell: Definitions.
-* parameter expansion: Shell Parameter Expansion.
-* parameters: Shell Parameters.
-* parameters, positional: Positional Parameters.
-* parameters, special: Special Parameters.
-* pathname expansion: Filename Expansion.
-* pipeline: Pipelines.
-* POSIX: Definitions.
-* POSIX Mode: Bash POSIX Mode.
-* process group: Definitions.
-* process group ID: Definitions.
-* process substitution: Process Substitution.
-* prompting: Printing a Prompt.
-* quoting: Quoting.
-* quoting, ANSI: ANSI-C Quoting.
-* Readline, how to use: Modifiers.
-* redirection: Redirections.
-* reserved word: Definitions.
-* restricted shell: The Restricted Shell.
-* return status: Definitions.
-* shell function: Shell Functions.
-* shell script: Shell Scripts.
-* shell variable: Shell Parameters.
-* signal: Definitions.
-* signal handling: Signals.
-* special builtin: Definitions.
-* startup files: Bash Startup Files.
-* suspending jobs: Job Control Basics.
-* tilde expansion: Tilde Expansion.
-* token: Definitions.
-* variable, shell: Shell Parameters.
-* word: Definitions.
-* word splitting: Word Splitting.
-* yanking text: Readline Killing Commands.
+* alias expansion: Aliases.
+* arithmetic evaluation: Arithmetic Evaluation.
+* arithmetic expansion: Arithmetic Expansion.
+* arithmetic, shell: Shell Arithmetic.
+* arrays: Arrays.
+* background: Job Control Basics.
+* Bash configuration: Basic Installation.
+* Bash installation: Basic Installation.
+* Bourne shell: Basic Shell Features.
+* brace expansion: Brace Expansion.
+* builtin: Definitions.
+* command editing: Readline Bare Essentials.
+* command execution: Command Search and Execution.
+* command history: Bash History Facilities.
+* command search: Command Search and Execution.
+* command substitution: Command Substitution.
+* command timing: Pipelines.
+* commands, conditional: Conditional Constructs.
+* commands, grouping: Command Grouping.
+* commands, lists: Lists.
+* commands, looping: Looping Constructs.
+* commands, pipelines: Pipelines.
+* commands, simple: Simple Commands.
+* comments, shell: Comments.
+* configuration: Basic Installation.
+* control operator: Definitions.
+* editing command lines: Readline Bare Essentials.
+* environment: Environment.
+* evaluation, arithmetic: Arithmetic Evaluation.
+* event designators: Event Designators.
+* exit status <1>: Definitions.
+* exit status: Exit Status.
+* expansion: Shell Expansions.
+* expansion, arithmetic: Arithmetic Expansion.
+* expansion, brace: Brace Expansion.
+* expansion, filename: Filename Expansion.
+* expansion, parameter: Shell Parameter Expansion.
+* expansion, pathname: Filename Expansion.
+* expansion, tilde: Tilde Expansion.
+* expressions, arithmetic: Arithmetic Evaluation.
+* expressions, conditional: Bash Conditional Expressions.
+* field: Definitions.
+* filename: Definitions.
+* filename expansion: Filename Expansion.
+* foreground: Job Control Basics.
+* functions, shell: Shell Functions.
+* history events: Event Designators.
+* history expansion: History Interaction.
+* history list: Bash History Facilities.
+* History, how to use: Job Control Variables.
+* identifier: Definitions.
+* initialization file, readline: Readline Init File.
+* installation: Basic Installation.
+* interaction, readline: Readline Interaction.
+* interactive shell <1>: Is This Shell Interactive?.
+* interactive shell: Invoking Bash.
+* job: Definitions.
+* job control <1>: Definitions.
+* job control: Job Control Basics.
+* kill ring: Readline Killing Commands.
+* killing text: Readline Killing Commands.
+* localization: Locale Translation.
+* metacharacter: Definitions.
+* name: Definitions.
+* notation, readline: Readline Bare Essentials.
+* operator, shell: Definitions.
+* parameter expansion: Shell Parameter Expansion.
+* parameters: Shell Parameters.
+* parameters, positional: Positional Parameters.
+* parameters, special: Special Parameters.
+* pathname expansion: Filename Expansion.
+* pipeline: Pipelines.
+* POSIX: Definitions.
+* POSIX Mode: Bash POSIX Mode.
+* process group: Definitions.
+* process group ID: Definitions.
+* process substitution: Process Substitution.
+* prompting: Printing a Prompt.
+* quoting: Quoting.
+* quoting, ANSI: ANSI-C Quoting.
+* Readline, how to use: Modifiers.
+* redirection: Redirections.
+* reserved word: Definitions.
+* restricted shell: The Restricted Shell.
+* return status: Definitions.
+* shell function: Shell Functions.
+* shell script: Shell Scripts.
+* shell variable: Shell Parameters.
+* signal: Definitions.
+* signal handling: Signals.
+* special builtin: Definitions.
+* startup files: Bash Startup Files.
+* suspending jobs: Job Control Basics.
+* tilde expansion: Tilde Expansion.
+* token: Definitions.
+* variable, shell: Shell Parameters.
+* word: Definitions.
+* word splitting: Word Splitting.
+* yanking text: Readline Killing Commands.

Tag Table:
-Node: Top1005
-Node: Introduction3109
-Node: What is Bash?3334
-Node: What is a shell?4418
-Node: Definitions6299
-Node: Basic Shell Features8960
-Node: Shell Syntax10481
-Node: Shell Operation10771
-Node: Quoting12005
-Node: Escape Character13040
-Node: Single Quotes13471
-Node: Double Quotes13800
-Node: ANSI-C Quoting14496
-Node: Locale Translation15228
-Node: Comments15649
-Node: Simple Commands16173
-Node: Pipelines16762
-Node: Lists17833
-Node: Looping Constructs19108
-Node: Conditional Constructs20285
-Node: Command Grouping22352
-Node: Shell Functions23738
-Node: Shell Parameters25511
-Node: Positional Parameters26834
-Node: Special Parameters27528
-Node: Shell Expansions30094
-Node: Shell Parameter Expansion32098
-Node: Command Substitution38106
-Node: Process Substitution39106
-Node: Word Splitting40012
-Node: Filename Expansion41464
-Node: Quote Removal43830
-Node: Redirections44116
-Node: Executing Commands49857
-Node: Command Search and Execution50312
-Node: Environment52046
-Node: Exit Status53682
-Node: Signals54699
-Node: Shell Scripts55910
-Node: Bourne Shell Features57779
-Node: Bourne Shell Builtins58449
-Node: Bourne Shell Variables66803
-Node: Other Bourne Shell Features68340
-Node: Major Differences From The Bourne Shell69097
-Node: Csh Features79457
-Node: Brace Expansion80375
-Node: Tilde Expansion81930
-Node: C Shell Builtins82562
-Node: C Shell Variables87118
-Node: Korn Shell Features87526
-Node: Korn Shell Constructs88254
-Node: Korn Shell Builtins89969
-Node: Korn Shell Variables92127
-Node: Aliases93686
-Node: Alias Builtins96150
-Node: Bash Features96766
-Node: Invoking Bash97757
-Node: Bash Startup Files101622
-Node: Is This Shell Interactive?105197
-Node: Bash Builtins106180
-Node: The Set Builtin122035
-Node: Bash Conditional Expressions127410
-Node: Bash Variables132061
-Node: Shell Arithmetic142095
-Node: Arithmetic Evaluation142563
-Node: Arithmetic Expansion144593
-Node: Arithmetic Builtins145397
-Node: Arrays145868
-Node: Printing a Prompt148895
-Node: The Restricted Shell150493
-Node: Bash POSIX Mode151723
-Node: Job Control155407
-Node: Job Control Basics155872
-Node: Job Control Builtins160015
-Node: Job Control Variables162938
-Node: Using History Interactively164085
-Node: Bash History Facilities164674
-Node: History Interaction167072
-Node: Event Designators169634
-Node: Word Designators170557
-Node: Modifiers171806
-Node: Command Line Editing173123
-Node: Introduction and Notation173783
-Node: Readline Interaction174791
-Node: Readline Bare Essentials175979
-Node: Readline Movement Commands177508
-Node: Readline Killing Commands178398
-Node: Readline Arguments180100
-Node: Searching181073
-Node: Readline Init File182709
-Node: Readline Init File Syntax183765
-Node: Conditional Init Constructs191554
-Node: Sample Init File193835
-Node: Bindable Readline Commands196868
-Node: Commands For Moving197618
-Node: Commands For History198465
-Node: Commands For Text201138
-Node: Commands For Killing202880
-Node: Numeric Arguments204906
-Node: Commands For Completion206030
-Node: Keyboard Macros208992
-Node: Miscellaneous Commands209550
-Node: Readline vi Mode213766
-Node: Installing Bash214642
-Node: Basic Installation215711
-Node: Compilers and Options218636
-Node: Compiling For Multiple Architectures219370
-Node: Installation Names221027
-Node: Specifying the System Type221749
-Node: Sharing Defaults222460
-Node: Operation Controls223125
-Node: Optional Features224030
-Node: Reporting Bugs228913
-Node: Builtin Index229993
-Node: Reserved Word Index233406
-Node: Variable Index234714
-Node: Function Index239899
-Node: Concept Index244257
+Node: Top1179
+Node: Introduction3283
+Node: What is Bash?3508
+Node: What is a shell?4592
+Node: Definitions6473
+Node: Basic Shell Features9134
+Node: Shell Syntax10655
+Node: Shell Operation10945
+Node: Quoting12179
+Node: Escape Character13214
+Node: Single Quotes13645
+Node: Double Quotes13974
+Node: ANSI-C Quoting14670
+Node: Locale Translation15402
+Node: Comments15823
+Node: Simple Commands16347
+Node: Pipelines16936
+Node: Lists18007
+Node: Looping Constructs19282
+Node: Conditional Constructs20459
+Node: Command Grouping22526
+Node: Shell Functions23912
+Node: Shell Parameters25685
+Node: Positional Parameters27008
+Node: Special Parameters27702
+Node: Shell Expansions30268
+Node: Shell Parameter Expansion32272
+Node: Command Substitution38280
+Node: Process Substitution39280
+Node: Word Splitting40186
+Node: Filename Expansion41638
+Node: Quote Removal44004
+Node: Redirections44290
+Node: Executing Commands50031
+Node: Command Search and Execution50486
+Node: Environment52220
+Node: Exit Status53856
+Node: Signals54873
+Node: Shell Scripts56084
+Node: Bourne Shell Features57953
+Node: Bourne Shell Builtins58623
+Node: Bourne Shell Variables66977
+Node: Other Bourne Shell Features68514
+Node: Major Differences From The Bourne Shell69271
+Node: Csh Features79631
+Node: Brace Expansion80549
+Node: Tilde Expansion82104
+Node: C Shell Builtins82736
+Node: C Shell Variables87292
+Node: Korn Shell Features87700
+Node: Korn Shell Constructs88428
+Node: Korn Shell Builtins90143
+Node: Korn Shell Variables92301
+Node: Aliases93860
+Node: Alias Builtins96326
+Node: Bash Features96942
+Node: Invoking Bash97933
+Node: Bash Startup Files101798
+Node: Is This Shell Interactive?105373
+Node: Bash Builtins106356
+Node: The Set Builtin122211
+Node: Bash Conditional Expressions127586
+Node: Bash Variables132237
+Node: Shell Arithmetic142271
+Node: Arithmetic Evaluation142739
+Node: Arithmetic Expansion144769
+Node: Arithmetic Builtins145573
+Node: Arrays146044
+Node: Printing a Prompt149071
+Node: The Restricted Shell150669
+Node: Bash POSIX Mode151899
+Node: Job Control155583
+Node: Job Control Basics156048
+Node: Job Control Builtins160191
+Node: Job Control Variables163114
+Node: Using History Interactively164261
+Node: Bash History Facilities164850
+Node: History Interaction167248
+Node: Event Designators169810
+Node: Word Designators170737
+Node: Modifiers171986
+Node: Command Line Editing173303
+Node: Introduction and Notation173963
+Node: Readline Interaction175001
+Node: Readline Bare Essentials176193
+Node: Readline Movement Commands177736
+Node: Readline Killing Commands178648
+Node: Readline Arguments180368
+Node: Searching181345
+Node: Readline Init File182981
+Node: Readline Init File Syntax184037
+Node: Conditional Init Constructs191820
+Node: Sample Init File194101
+Node: Bindable Readline Commands197134
+Node: Commands For Moving197884
+Node: Commands For History198731
+Node: Commands For Text201404
+Node: Commands For Killing203148
+Node: Numeric Arguments205174
+Node: Commands For Completion206300
+Node: Keyboard Macros209262
+Node: Miscellaneous Commands209820
+Node: Readline vi Mode214036
+Node: Installing Bash214914
+Node: Basic Installation215983
+Node: Compilers and Options218908
+Node: Compiling For Multiple Architectures219642
+Node: Installation Names221299
+Node: Specifying the System Type222021
+Node: Sharing Defaults222732
+Node: Operation Controls223397
+Node: Optional Features224302
+Node: Reporting Bugs229185
+Node: Builtin Index230265
+Node: Reserved Word Index233732
+Node: Variable Index235059
+Node: Function Index240327
+Node: Concept Index244750

End Tag Table
diff --git a/doc/bashref.texi b/doc/bashref.texi
index 6d1719ff..2d1717d1 100644
--- a/doc/bashref.texi
+++ b/doc/bashref.texi
@@ -22,6 +22,11 @@ last change: Mon May 19 12:55:22 EDT 1997
@defcodeindex rw
@set BashFeatures
+@dircategory Utilities
+@direntry
+* Bash: (bash). GNU Bourne-Again SHell
+@end direntry
+
@ifinfo
@format
This text is a brief description of the features that are present in
diff --git a/doc/texinfo.tex b/doc/texinfo.tex
index fb7cfe5a..e8375a31 100644
--- a/doc/texinfo.tex
+++ b/doc/texinfo.tex
@@ -1,6 +1,7 @@
%% TeX macros to handle texinfo files
-% Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 1994 Free Software Foundation, Inc.
+% Copyright (C) 1985, 86, 88, 90, 91, 92, 93,
+% 94, 95, 1996 Free Software Foundation, Inc.
%This texinfo.tex file is free software; you can redistribute it and/or
%modify it under the terms of the GNU General Public License as
@@ -14,8 +15,8 @@
%You should have received a copy of the GNU General Public License
%along with this texinfo.tex file; see the file COPYING. If not, write
-%to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139,
-%USA.
+%to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+%Boston, MA 02111-1307, USA.
%In other words, you are welcome to use, share and improve this program.
@@ -34,7 +35,7 @@
% This automatically updates the version number based on RCS.
\def\deftexinfoversion$#1: #2 ${\def\texinfoversion{#2}}
-\deftexinfoversion$Revision: 2.145 $
+\deftexinfoversion$Revision: 2.185 $
\message{Loading texinfo package [Version \texinfoversion]:}
% If in a .fmt file, print the version number
@@ -45,20 +46,20 @@
% Save some parts of plain tex whose names we will redefine.
-\let\ptextilde=\~
-\let\ptexlbrace=\{
-\let\ptexrbrace=\}
-\let\ptexdots=\dots
-\let\ptexdot=\.
-\let\ptexstar=\*
-\let\ptexend=\end
-\let\ptexbullet=\bullet
\let\ptexb=\b
+\let\ptexbullet=\bullet
\let\ptexc=\c
+\let\ptexcomma=\,
+\let\ptexdot=\.
+\let\ptexdots=\dots
+\let\ptexend=\end
+\let\ptexequiv = \equiv
\let\ptexi=\i
+\let\ptexlbrace=\{
+\let\ptexrbrace=\}
+\let\ptexstar=\*
\let\ptext=\t
-\let\ptexl=\l
-\let\ptexL=\L
+\let\ptextilde=\~
% Be sure we're in horizontal mode when doing a tie, since we make space
% equivalent to this in @example-like environments. Otherwise, a space
@@ -66,10 +67,14 @@
% since \penalty is valid in vertical mode, we'd end up putting the
% penalty on the vertical list instead of in the new paragraph.
{\catcode`@ = 11
- \gdef\tie{\leavevmode\penalty\@M\ }
+ % Avoid using \@M directly, because that causes trouble
+ % if the definition is written into an index file.
+ \global\let\tiepenalty = \@M
+ \gdef\tie{\leavevmode\penalty\tiepenalty\ }
}
\let\~ = \tie % And make it available as @~.
+
\message{Basics,}
\chardef\other=12
@@ -99,10 +104,9 @@
\hyphenation{eshell}
% Margin to add to right of even pages, to left of odd pages.
-\newdimen \bindingoffset \bindingoffset=0pt
-\newdimen \normaloffset \normaloffset=\hoffset
+\newdimen \bindingoffset
+\newdimen \normaloffset
\newdimen\pagewidth \newdimen\pageheight
-\pagewidth=\hsize \pageheight=\vsize
% Sometimes it is convenient to have everything in the transcript file
% and nothing on the terminal. We don't just call \tracingall here,
@@ -123,7 +127,7 @@
\newdimen\cornerlong \newdimen\cornerthick
\newdimen \topandbottommargin
\newdimen \outerhsize \newdimen \outervsize
-\cornerlong=1pc\cornerthick=.3pt % These set size of cropmarks
+\cornerlong=1pc\cornerthick=.3pt % These set size of cropmarks
\outerhsize=7in
%\outervsize=9.5in
% Alternative @smallbook page size is 9.25in
@@ -133,15 +137,24 @@
%---------------------End change-----------------------
% \onepageout takes a vbox as an argument. Note that \pagecontents
-% does insertions itself, but you have to call it yourself.
+% does insertions, but you have to call it yourself.
\chardef\PAGE=255 \output={\onepageout{\pagecontents\PAGE}}
-\def\onepageout#1{\hoffset=\normaloffset
-\ifodd\pageno \advance\hoffset by \bindingoffset
-\else \advance\hoffset by -\bindingoffset\fi
-{\escapechar=`\\\relax % makes sure backslash is used in output files.
-\shipout\vbox{{\let\hsize=\pagewidth \makeheadline} \pagebody{#1}%
-{\let\hsize=\pagewidth \makefootline}}}%
-\advancepageno \ifnum\outputpenalty>-20000 \else\dosupereject\fi}
+\def\onepageout#1{%
+ \hoffset=\normaloffset
+ \ifodd\pageno \advance\hoffset by \bindingoffset
+ \else \advance\hoffset by -\bindingoffset\fi
+ {%
+ \escapechar = `\\ % use backslash in output files.
+ \indexdummies
+ \shipout\vbox{%
+ {\let\hsize=\pagewidth \makeheadline}%
+ \pagebody{#1}%
+ {\let\hsize=\pagewidth \makefootline}%
+ }%
+ }%
+ \advancepageno
+ \ifnum\outputpenalty>-20000 \else\dosupereject\fi
+}
%%%% For @cropmarks command %%%%
@@ -153,8 +166,8 @@
%
\def\croppageout#1{\hoffset=0pt % make sure this doesn't mess things up
{\escapechar=`\\\relax % makes sure backslash is used in output files.
- \shipout
- \vbox to \outervsize{\hsize=\outerhsize
+ \shipout
+ \vbox to \outervsize{\hsize=\outerhsize
\vbox{\line{\ewtop\hfill\ewtop}}
\nointerlineskip
\line{\vbox{\moveleft\cornerthick\nstop}
@@ -162,19 +175,19 @@
\vbox{\moveright\cornerthick\nstop}}
\vskip \topandbottommargin
\centerline{\ifodd\pageno\hskip\bindingoffset\fi
- \vbox{
- {\let\hsize=\pagewidth \makeheadline}
- \pagebody{#1}
- {\let\hsize=\pagewidth \makefootline}}
- \ifodd\pageno\else\hskip\bindingoffset\fi}
- \vskip \topandbottommargin plus1fill minus1fill
+ \vbox{
+ {\let\hsize=\pagewidth \makeheadline}
+ \pagebody{#1}
+ {\let\hsize=\pagewidth \makefootline}}
+ \ifodd\pageno\else\hskip\bindingoffset\fi}
+ \vskip \topandbottommargin plus1fill minus1fill
\boxmaxdepth\cornerthick
\line{\vbox{\moveleft\cornerthick\nsbot}
\hfill
\vbox{\moveright\cornerthick\nsbot}}
\nointerlineskip
\vbox{\line{\ewbot\hfill\ewbot}}
- }}
+ }}
\advancepageno
\ifnum\outputpenalty>-20000 \else\dosupereject\fi}
%
@@ -362,11 +375,43 @@
%\def\'{{'}}
% Used to generate quoted braces.
-
\def\mylbrace {{\tt \char '173}}
\def\myrbrace {{\tt \char '175}}
\let\{=\mylbrace
\let\}=\myrbrace
+\begingroup
+ % Definitions to produce actual \{ & \} command in an index.
+ \catcode`\{ = 12 \catcode`\} = 12
+ \catcode`\[ = 1 \catcode`\] = 2
+ \catcode`\@ = 0 \catcode`\\ = 12
+ @gdef@lbracecmd[\{]%
+ @gdef@rbracecmd[\}]%
+@endgroup
+
+% Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent
+% Others are defined by plain TeX: @` @' @" @^ @~ @= @v @H.
+\let\, = \c
+\let\dotaccent = \.
+\def\ringaccent#1{{\accent23 #1}}
+\let\tieaccent = \t
+\let\ubaraccent = \b
+\let\udotaccent = \d
+
+% Other special characters: @questiondown @exclamdown
+% Plain TeX defines: @AA @AE @O @OE @L (and lowercase versions) @ss.
+\def\questiondown{?`}
+\def\exclamdown{!`}
+
+% Dotless i and dotless j, used for accents.
+\def\imacro{i}
+\def\jmacro{j}
+\def\dotless#1{%
+ \def\temp{#1}%
+ \ifx\temp\imacro \ptexi
+ \else\ifx\temp\jmacro \j
+ \else \errmessage{@dotless can be used only with i or j}%
+ \fi\fi
+}
% @: forces normal size whitespace following.
\def\:{\spacefactor=1000 }
@@ -533,17 +578,34 @@ where each line of input produces a line of output.}
\def\nofillexdentyyy #1{{\advance \leftskip by -\exdentamount
\leftline{\hskip\leftskip{\rm#1}}}}
+% @inmargin{TEXT} puts TEXT in the margin next to the current paragraph.
+
+\def\inmargin#1{%
+\strut\vadjust{\nobreak\kern-\strutdepth
+ \vtop to \strutdepth{\baselineskip\strutdepth\vss
+ \llap{\rightskip=\inmarginspacing \vbox{\noindent #1}}\null}}}
+\newskip\inmarginspacing \inmarginspacing=1cm
+\def\strutdepth{\dp\strutbox}
+
%\hbox{{\rm#1}}\hfil\break}}
% @include file insert text of that file as input.
-
-\def\include{\parsearg\includezzz}
-%Use \input\thisfile to avoid blank after \input, which may be an active
-%char (in which case the blank would become the \input argument).
-%The grouping keeps the value of \thisfile correct even when @include
-%is nested.
-\def\includezzz #1{\begingroup
-\def\thisfile{#1}\input\thisfile
+% Allow normal characters that we make active in the argument (a file name).
+\def\include{\begingroup
+ \catcode`\\=12
+ \catcode`~=12
+ \catcode`^=12
+ \catcode`_=12
+ \catcode`|=12
+ \catcode`<=12
+ \catcode`>=12
+ \catcode`+=12
+ \parsearg\includezzz}
+% Restore active chars for included file.
+\def\includezzz#1{\endgroup\begingroup
+ % Read the included file in a group so nested @include's work.
+ \def\thisfile{#1}%
+ \input\thisfile
\endgroup}
\def\thisfile{}
@@ -558,7 +620,7 @@ where each line of input produces a line of output.}
% @sp n outputs n lines of vertical space
\def\sp{\parsearg\spxxx}
-\def\spxxx #1{\par \vskip #1\baselineskip}
+\def\spxxx #1{\vskip #1\baselineskip}
% @comment ...line which is ignored...
% @c is the same as @comment
@@ -571,6 +633,9 @@ where each line of input produces a line of output.}
\let\c=\comment
+% @paragraphindent is defined for the Info formatting commands only.
+\let\paragraphindent=\comment
+
% Prevent errors for section commands.
% Used in @ignore and in failing conditionals.
\def\ignoresections{%
@@ -605,6 +670,7 @@ where each line of input produces a line of output.}
% incorrectly.
%
\def\ignoremorecommands{%
+ \let\defcodeindex = \relax
\let\defcv = \relax
\let\deffn = \relax
\let\deffnx = \relax
@@ -628,6 +694,15 @@ where each line of input produces a line of output.}
\let\printindex = \relax
\let\pxref = \relax
\let\settitle = \relax
+ \let\setchapternewpage = \relax
+ \let\setchapterstyle = \relax
+ \let\everyheading = \relax
+ \let\evenheading = \relax
+ \let\oddheading = \relax
+ \let\everyfooting = \relax
+ \let\evenfooting = \relax
+ \let\oddfooting = \relax
+ \let\headings = \relax
\let\include = \relax
\let\lowersections = \relax
\let\down = \relax
@@ -636,7 +711,6 @@ where each line of input produces a line of output.}
\let\set = \relax
\let\clear = \relax
\let\item = \relax
- \let\message = \relax
}
% Ignore @ignore ... @end ignore.
@@ -651,6 +725,16 @@ where each line of input produces a line of output.}
\def\menu{\doignore{menu}}
\def\direntry{\doignore{direntry}}
+% Also ignore @macro ... @end macro. The user must run texi2dvi,
+% which runs makeinfo to do macro expansion. Ignore @unmacro, too.
+\def\macro{\doignore{macro}}
+\let\unmacro = \comment
+
+
+% @dircategory CATEGORY -- specify a category of the dir file
+% which this file should belong to. Ignore this in TeX.
+\let\dircategory = \comment
+
% Ignore text until a line `@end #1'.
%
\def\doignore#1{\begingroup
@@ -682,11 +766,12 @@ where each line of input produces a line of output.}
\immediate\write16{If you are running another version of TeX, relax.}
\immediate\write16{If you are running Unix TeX 3.0, kill this TeX process.}
\immediate\write16{ Then upgrade your TeX installation if you can.}
+ \immediate\write16{ (See ftp://ftp.gnu.ai.mit.edu/pub/gnu/TeX.README.)}
\immediate\write16{If you are stuck with version 3.0, run the}
\immediate\write16{ script ``tex3patch'' from the Texinfo distribution}
\immediate\write16{ to use a workaround.}
\immediate\write16{}
- \warnedobstrue
+ \global\warnedobstrue
\fi
}
@@ -762,15 +847,17 @@ where each line of input produces a line of output.}
% Since we want to separate VAR from REST-OF-LINE (which might be
% empty), we can't just use \parsearg; we have to insert a space of our
% own to delimit the rest of the line, and then take it out again if we
-% didn't need it.
+% didn't need it. Make sure the catcode of space is correct to avoid
+% losing inside @example, for instance.
%
-\def\set{\parsearg\setxxx}
+\def\set{\begingroup\catcode` =10 \parsearg\setxxx}
\def\setxxx#1{\setyyy#1 \endsetyyy}
\def\setyyy#1 #2\endsetyyy{%
\def\temp{#2}%
\ifx\temp\empty \global\expandafter\let\csname SET#1\endcsname = \empty
\else \setzzz{#1}#2\endsetzzz % Remove the trailing space \setxxx inserted.
\fi
+ \endgroup
}
% Can't use \xdef to pre-expand #2 and save some time, since \temp or
% \next or other control sequences that we've defined might get us into
@@ -785,9 +872,9 @@ where each line of input produces a line of output.}
% @value{foo} gets the text saved in variable foo.
%
\def\value#1{\expandafter
- \ifx\csname SET#1\endcsname\relax
- {\{No value for ``#1''\}}
- \else \csname SET#1\endcsname \fi}
+ \ifx\csname SET#1\endcsname\relax
+ {\{No value for ``#1''\}}
+ \else \csname SET#1\endcsname \fi}
% @ifset VAR ... @end ifset reads the `...' iff VAR has been defined
% with @set.
@@ -887,6 +974,7 @@ where each line of input produces a line of output.}
\expandafter\expandafter\expandafter\appendixsetref{\lastnode}\fi
\global\let\lastnode=\relax}
+% @refill is a no-op.
\let\refill=\relax
% @setfilename is done at the beginning of every texinfo file.
@@ -901,11 +989,24 @@ where each line of input produces a line of output.}
\comment % Ignore the actual filename.
}
+% @bye.
\outer\def\bye{\pagealignmacro\tracingstats=1\ptexend}
-\def\inforef #1{\inforefzzz #1,,,,**}
-\def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}},
- node \samp{\ignorespaces#1{}}}
+% \def\macro#1{\begingroup\ignoresections\catcode`\#=6\def\macrotemp{#1}\parsearg\macroxxx}
+% \def\macroxxx#1#2 \end macro{%
+% \expandafter\gdef\macrotemp#1{#2}%
+% \endgroup}
+
+%\def\linemacro#1{\begingroup\ignoresections\catcode`\#=6\def\macrotemp{#1}\parsearg\linemacroxxx}
+%\def\linemacroxxx#1#2 \end linemacro{%
+%\let\parsearg=\relax
+%\edef\macrotempx{\csname M\butfirst\expandafter\string\macrotemp\endcsname}%
+%\expandafter\xdef\macrotemp{\parsearg\macrotempx}%
+%\expandafter\gdef\macrotempx#1{#2}%
+%\endgroup}
+
+%\def\butfirst#1{}
+
\message{fonts,}
@@ -917,12 +1018,16 @@ where each line of input produces a line of output.}
\def\sf{\fam=\sffam \tensf}
\let\li = \sf % Sometimes we call it \li, not \sf.
+% We don't need math for this one.
+\def\ttsl{\tenttsl}
+
%% Try out Computer Modern fonts at \magstephalf
\let\mainmagstep=\magstephalf
% Set the font macro #1 to the font named #2, adding on the
% specified font prefix (normally `cm').
-\def\setfont#1#2{\font#1=\fontprefix#2}
+% #3 is the font's design size, #4 is a scale factor
+\def\setfont#1#2#3#4{\font#1=\fontprefix#2#3 scaled #4}
% Use cm as the default font prefix.
% To specify the font prefix, you must define \fontprefix
@@ -930,96 +1035,119 @@ where each line of input produces a line of output.}
\ifx\fontprefix\undefined
\def\fontprefix{cm}
\fi
+% Support font families that don't use the same naming scheme as CM.
+\def\rmshape{r}
+\def\rmbshape{bx} %where the normal face is bold
+\def\bfshape{b}
+\def\bxshape{bx}
+\def\ttshape{tt}
+\def\ttbshape{tt}
+\def\ttslshape{sltt}
+\def\itshape{ti}
+\def\itbshape{bxti}
+\def\slshape{sl}
+\def\slbshape{bxsl}
+\def\sfshape{ss}
+\def\sfbshape{ss}
+\def\scshape{csc}
+\def\scbshape{csc}
\ifx\bigger\relax
\let\mainmagstep=\magstep1
-\setfont\textrm{r12}
-\setfont\texttt{tt12}
+\setfont\textrm\rmshape{12}{1000}
+\setfont\texttt\ttshape{12}{1000}
\else
-\setfont\textrm{r10 scaled \mainmagstep}
-\setfont\texttt{tt10 scaled \mainmagstep}
+\setfont\textrm\rmshape{10}{\mainmagstep}
+\setfont\texttt\ttshape{10}{\mainmagstep}
\fi
% Instead of cmb10, you many want to use cmbx10.
% cmbx10 is a prettier font on its own, but cmb10
% looks better when embedded in a line with cmr10.
-\setfont\textbf{b10 scaled \mainmagstep}
-\setfont\textit{ti10 scaled \mainmagstep}
-\setfont\textsl{sl10 scaled \mainmagstep}
-\setfont\textsf{ss10 scaled \mainmagstep}
-\setfont\textsc{csc10 scaled \mainmagstep}
+\setfont\textbf\bfshape{10}{\mainmagstep}
+\setfont\textit\itshape{10}{\mainmagstep}
+\setfont\textsl\slshape{10}{\mainmagstep}
+\setfont\textsf\sfshape{10}{\mainmagstep}
+\setfont\textsc\scshape{10}{\mainmagstep}
+\setfont\textttsl\ttslshape{10}{\mainmagstep}
\font\texti=cmmi10 scaled \mainmagstep
\font\textsy=cmsy10 scaled \mainmagstep
% A few fonts for @defun, etc.
-\setfont\defbf{bx10 scaled \magstep1} %was 1314
-\setfont\deftt{tt10 scaled \magstep1}
+\setfont\defbf\bxshape{10}{\magstep1} %was 1314
+\setfont\deftt\ttshape{10}{\magstep1}
\def\df{\let\tentt=\deftt \let\tenbf = \defbf \bf}
-% Fonts for indices and small examples.
+% Fonts for indices and small examples (9pt).
% We actually use the slanted font rather than the italic,
% because texinfo normally uses the slanted fonts for that.
% Do not make many font distinctions in general in the index, since they
% aren't very useful.
-\setfont\ninett{tt9}
-\setfont\indrm{r9}
-\setfont\indit{sl9}
+\setfont\ninett\ttshape{9}{1000}
+\setfont\indrm\rmshape{9}{1000}
+\setfont\indit\slshape{9}{1000}
\let\indsl=\indit
\let\indtt=\ninett
+\let\indttsl=\ninett
\let\indsf=\indrm
\let\indbf=\indrm
-\setfont\indsc{csc10 at 9pt}
+\setfont\indsc\scshape{10}{900}
\font\indi=cmmi9
\font\indsy=cmsy9
-% Fonts for headings
-\setfont\chaprm{bx12 scaled \magstep2}
-\setfont\chapit{ti12 scaled \magstep2}
-\setfont\chapsl{sl12 scaled \magstep2}
-\setfont\chaptt{tt12 scaled \magstep2}
-\setfont\chapsf{ss12 scaled \magstep2}
+% Chapter (and unnumbered) fonts (17.28pt).
+\setfont\chaprm\rmbshape{12}{\magstep2}
+\setfont\chapit\itbshape{10}{\magstep3}
+\setfont\chapsl\slbshape{10}{\magstep3}
+\setfont\chaptt\ttbshape{12}{\magstep2}
+\setfont\chapttsl\ttslshape{10}{\magstep3}
+\setfont\chapsf\sfbshape{12}{\magstep2}
\let\chapbf=\chaprm
-\setfont\chapsc{csc10 scaled\magstep3}
+\setfont\chapsc\scbshape{10}{\magstep3}
\font\chapi=cmmi12 scaled \magstep2
\font\chapsy=cmsy10 scaled \magstep3
-\setfont\secrm{bx12 scaled \magstep1}
-\setfont\secit{ti12 scaled \magstep1}
-\setfont\secsl{sl12 scaled \magstep1}
-\setfont\sectt{tt12 scaled \magstep1}
-\setfont\secsf{ss12 scaled \magstep1}
-\setfont\secbf{bx12 scaled \magstep1}
-\setfont\secsc{csc10 scaled\magstep2}
+% Section fonts (14.4pt).
+\setfont\secrm\rmbshape{12}{\magstep1}
+\setfont\secit\itbshape{10}{\magstep2}
+\setfont\secsl\slbshape{10}{\magstep2}
+\setfont\sectt\ttbshape{12}{\magstep1}
+\setfont\secttsl\ttslshape{10}{\magstep2}
+\setfont\secsf\sfbshape{12}{\magstep1}
+\let\secbf\secrm
+\setfont\secsc\scbshape{10}{\magstep2}
\font\seci=cmmi12 scaled \magstep1
\font\secsy=cmsy10 scaled \magstep2
-% \setfont\ssecrm{bx10 scaled \magstep1} % This size an font looked bad.
-% \setfont\ssecit{cmti10 scaled \magstep1} % The letters were too crowded.
-% \setfont\ssecsl{sl10 scaled \magstep1}
-% \setfont\ssectt{tt10 scaled \magstep1}
-% \setfont\ssecsf{ss10 scaled \magstep1}
+% \setfont\ssecrm\bxshape{10}{\magstep1} % This size an font looked bad.
+% \setfont\ssecit\itshape{10}{\magstep1} % The letters were too crowded.
+% \setfont\ssecsl\slshape{10}{\magstep1}
+% \setfont\ssectt\ttshape{10}{\magstep1}
+% \setfont\ssecsf\sfshape{10}{\magstep1}
-%\setfont\ssecrm{b10 scaled 1315} % Note the use of cmb rather than cmbx.
-%\setfont\ssecit{ti10 scaled 1315} % Also, the size is a little larger than
-%\setfont\ssecsl{sl10 scaled 1315} % being scaled magstep1.
-%\setfont\ssectt{tt10 scaled 1315}
-%\setfont\ssecsf{ss10 scaled 1315}
+%\setfont\ssecrm\bfshape{10}{1315} % Note the use of cmb rather than cmbx.
+%\setfont\ssecit\itshape{10}{1315} % Also, the size is a little larger than
+%\setfont\ssecsl\slshape{10}{1315} % being scaled magstep1.
+%\setfont\ssectt\ttshape{10}{1315}
+%\setfont\ssecsf\sfshape{10}{1315}
%\let\ssecbf=\ssecrm
-\setfont\ssecrm{bx12 scaled \magstephalf}
-\setfont\ssecit{ti12 scaled \magstephalf}
-\setfont\ssecsl{sl12 scaled \magstephalf}
-\setfont\ssectt{tt12 scaled \magstephalf}
-\setfont\ssecsf{ss12 scaled \magstephalf}
-\setfont\ssecbf{bx12 scaled \magstephalf}
-\setfont\ssecsc{csc10 scaled \magstep1}
+% Subsection fonts (13.15pt).
+\setfont\ssecrm\rmbshape{12}{\magstephalf}
+\setfont\ssecit\itbshape{10}{1315}
+\setfont\ssecsl\slbshape{10}{1315}
+\setfont\ssectt\ttbshape{12}{\magstephalf}
+\setfont\ssecttsl\ttslshape{10}{\magstep1}
+\setfont\ssecsf\sfbshape{12}{\magstephalf}
+\let\ssecbf\ssecrm
+\setfont\ssecsc\scbshape{10}{\magstep1}
\font\sseci=cmmi12 scaled \magstephalf
\font\ssecsy=cmsy10 scaled \magstep1
% The smallcaps and symbol fonts should actually be scaled \magstep1.5,
% but that is not a standard magnification.
% Fonts for title page:
-\setfont\titlerm{bx12 scaled \magstep3}
+\setfont\titlerm\rmbshape{12}{\magstep3}
\let\authorrm = \secrm
% In order for the font changes to affect most math symbols and letters,
@@ -1038,34 +1166,35 @@ where each line of input produces a line of output.}
% The font-changing commands redefine the meanings of \tenSTYLE, instead
% of just \STYLE. We do this so that font changes will continue to work
% in math mode, where it is the current \fam that is relevant in most
-% cases, not the current. Plain TeX does, for example,
-% \def\bf{\fam=\bffam \tenbf} By redefining \tenbf, we obviate the need
-% to redefine \bf itself.
+% cases, not the current font. Plain TeX does \def\bf{\fam=\bffam
+% \tenbf}, for example. By redefining \tenbf, we obviate the need to
+% redefine \bf itself.
\def\textfonts{%
\let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl
\let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc
- \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy
+ \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy \let\tenttsl=\textttsl
\resetmathfonts}
\def\chapfonts{%
\let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl
\let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc
- \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy
- \resetmathfonts}
+ \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy \let\tenttsl=\chapttsl
+ \resetmathfonts \setleading{19pt}}
\def\secfonts{%
\let\tenrm=\secrm \let\tenit=\secit \let\tensl=\secsl
\let\tenbf=\secbf \let\tentt=\sectt \let\smallcaps=\secsc
- \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy
- \resetmathfonts}
+ \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy \let\tenttsl=\secttsl
+ \resetmathfonts \setleading{16pt}}
\def\subsecfonts{%
\let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl
\let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc
- \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy
- \resetmathfonts}
+ \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy \let\tenttsl=\ssecttsl
+ \resetmathfonts \setleading{15pt}}
+\let\subsubsecfonts = \subsecfonts % Maybe make sssec fonts scaled magstephalf?
\def\indexfonts{%
\let\tenrm=\indrm \let\tenit=\indit \let\tensl=\indsl
\let\tenbf=\indbf \let\tentt=\indtt \let\smallcaps=\indsc
- \let\tensf=\indsf \let\teni=\indi \let\tensy=\indsy
- \resetmathfonts}
+ \let\tensf=\indsf \let\teni=\indi \let\tensy=\indsy \let\tenttsl=\indttsl
+ \resetmathfonts \setleading{12pt}}
% Set up the default fonts, so we can use them for creating boxes.
%
@@ -1075,9 +1204,9 @@ where each line of input produces a line of output.}
\newcount\fontdepth \fontdepth=0
% Fonts for short table of contents.
-\setfont\shortcontrm{r12}
-\setfont\shortcontbf{bx12}
-\setfont\shortcontsl{sl12}
+\setfont\shortcontrm\rmshape{12}{1000}
+\setfont\shortcontbf\bxshape{12}{1000}
+\setfont\shortcontsl\slshape{12}{1000}
%% Add scribe-like font environments, plus @l for inline lisp (usually sans
%% serif) and @ii for TeX italic
@@ -1104,16 +1233,26 @@ where each line of input produces a line of output.}
\def\restorehyphenation{\hyphenchar\font = `- }
\def\t#1{%
- {\tt \nohyphenation \rawbackslash \frenchspacing #1}%
+ {\tt \rawbackslash \frenchspacing #1}%
\null
}
-\let\ttfont = \t
-%\def\samp #1{`{\tt \rawbackslash \frenchspacing #1}'\null}
+\let\ttfont=\t
\def\samp #1{`\tclose{#1}'\null}
-\def\key #1{{\tt \nohyphenation \uppercase{#1}}\null}
+\setfont\smallrm\rmshape{8}{1000}
+\font\smallsy=cmsy9
+\def\key#1{{\smallrm\textfont2=\smallsy \leavevmode\hbox{%
+ \raise0.4pt\hbox{$\langle$}\kern-.08em\vtop{%
+ \vbox{\hrule\kern-0.4pt
+ \hbox{\raise0.4pt\hbox{\vphantom{$\langle$}}#1}}%
+ \kern-0.4pt\hrule}%
+ \kern-.06em\raise0.4pt\hbox{$\rangle$}}}}
+% The old definition, with no lozenge:
+%\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null}
\def\ctrl #1{{\tt \rawbackslash \hat}#1}
\let\file=\samp
+\let\url=\samp % perhaps include a hypertex \special eventually
+\def\email#1{$\langle${\tt #1}$\rangle$}
% @code is a modification of @t,
% which makes spaces the same size as normal in the surrounding text.
@@ -1139,13 +1278,13 @@ where each line of input produces a line of output.}
}
% We *must* turn on hyphenation at `-' and `_' in \code.
-% Otherwise, it is too hard to avoid overful hboxes
+% Otherwise, it is too hard to avoid overfull hboxes
% in the Emacs manual, the Library manual, etc.
% Unfortunately, TeX uses one parameter (\hyphenchar) to control
% both hyphenation at - and hyphenation within words.
% We must therefore turn them both off (\tclose does that)
-% and arrange explicitly to hyphenate an a dash.
+% and arrange explicitly to hyphenate at a dash.
% -- rms.
{
\catcode`\-=\active
@@ -1157,6 +1296,7 @@ where each line of input produces a line of output.}
% ever called. -- mycroft
\global\def\indexbreaks{\catcode`\-=\active \let-\realdash \catcode`\_=\active \let_\realunder}
}
+
\def\realdash{-}
\def\realunder{_}
\def\codedash{-\discretionary{}{}{}}
@@ -1167,12 +1307,19 @@ where each line of input produces a line of output.}
% @kbd is like @code, except that if the argument is just one @key command,
% then @kbd has no effect.
-
+%
\def\xkey{\key}
\def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}%
\ifx\one\xkey\ifx\threex\three \key{#2}%
-\else\tclose{\look}\fi
-\else\tclose{\look}\fi}
+\else{\tclose{\ttsl\look}}\fi
+\else{\tclose{\ttsl\look}}\fi}
+
+% Check if we are currently using a typewriter font. Since all the
+% Computer Modern typewriter fonts have zero interword stretch (and
+% shrink), and it is reasonable to expect all typewriter fonts to have
+% this property, we can check that font parameter.
+%
+\def\ifmonospace{\ifdim\fontdimen3\font=0pt }
% Typeset a dimension, e.g., `in' or `pt'. The only reason for the
% argument is to make the input look right: @dmn{pt} instead of
@@ -1182,12 +1329,19 @@ where each line of input produces a line of output.}
\def\kbd#1{\def\look{#1}\expandafter\kbdfoo\look??\par}
-\def\l#1{{\li #1}\null} %
+% @l was never documented to mean ``switch to the Lisp font'',
+% and it is not used as such in any manual I can find. We need it for
+% Polish suppressed-l. --karl, 22sep96.
+%\def\l#1{{\li #1}\null}
-\def\r#1{{\rm #1}} % roman font
+\def\r#1{{\rm #1}} % roman font
% Use of \lowercase was suggested.
-\def\sc#1{{\smallcaps#1}} % smallcaps font
-\def\ii#1{{\it #1}} % italic font
+\def\sc#1{{\smallcaps#1}} % smallcaps font
+\def\ii#1{{\it #1}} % italic font
+
+% @pounds{} is a sterling sign.
+\def\pounds{{\it\$}}
+
\message{page headings,}
@@ -1202,7 +1356,7 @@ where each line of input produces a line of output.}
\def\shorttitlepage{\parsearg\shorttitlepagezzz}
\def\shorttitlepagezzz #1{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}%
- \endgroup\page\hbox{}\page}
+ \endgroup\page\hbox{}\page}
\def\titlepage{\begingroup \parindent=0pt \textfonts
\let\subtitlerm=\tenrm
@@ -1219,9 +1373,9 @@ where each line of input produces a line of output.}
% Now you can print the title using @title.
\def\title{\parsearg\titlezzz}%
\def\titlezzz##1{\leftline{\titlefont{##1}}
- % print a rule at the page bottom also.
- \finishedtitlepagefalse
- \vskip4pt \hrule height 4pt width \hsize \vskip4pt}%
+ % print a rule at the page bottom also.
+ \finishedtitlepagefalse
+ \vskip4pt \hrule height 4pt width \hsize \vskip4pt}%
% No rule at page bottom unless we print one at the top with @title.
\finishedtitlepagetrue
%
@@ -1239,7 +1393,7 @@ where each line of input produces a line of output.}
\let\oldpage = \page
\def\page{%
\iffinishedtitlepage\else
- \finishtitlepage
+ \finishtitlepage
\fi
\oldpage
\let\page = \oldpage
@@ -1327,14 +1481,15 @@ where each line of input produces a line of output.}
%
}% unbind the catcode of @.
-% @headings double turns headings on for double-sided printing.
-% @headings single turns headings on for single-sided printing.
-% @headings off turns them off.
-% @headings on same as @headings double, retained for compatibility.
-% @headings after turns on double-sided headings after this page.
-% @headings doubleafter turns on double-sided headings after this page.
+% @headings double turns headings on for double-sided printing.
+% @headings single turns headings on for single-sided printing.
+% @headings off turns them off.
+% @headings on same as @headings double, retained for compatibility.
+% @headings after turns on double-sided headings after this page.
+% @headings doubleafter turns on double-sided headings after this page.
% @headings singleafter turns on single-sided headings after this page.
-% By default, they are off.
+% By default, they are off at the start of a document,
+% and turned `on' after @end titlepage.
\def\headings #1 {\csname HEADINGS#1\endcsname}
@@ -1348,22 +1503,24 @@ where each line of input produces a line of output.}
% title on inside top of left hand pages, and page numbers on outside top
% edge of all pages.
\def\HEADINGSdouble{
-%\pagealignmacro
\global\pageno=1
\global\evenfootline={\hfil}
\global\oddfootline={\hfil}
\global\evenheadline={\line{\folio\hfil\thistitle}}
\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\let\contentsalignmacro = \chapoddpage
}
+\let\contentsalignmacro = \chappager
+
% For single-sided printing, chapter title goes across top left of page,
% page number on top right.
\def\HEADINGSsingle{
-%\pagealignmacro
\global\pageno=1
\global\evenfootline={\hfil}
\global\oddfootline={\hfil}
\global\evenheadline={\line{\thischapter\hfil\folio}}
\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\let\contentsalignmacro = \chappager
}
\def\HEADINGSon{\HEADINGSdouble}
@@ -1374,6 +1531,7 @@ where each line of input produces a line of output.}
\global\oddfootline={\hfil}
\global\evenheadline={\line{\folio\hfil\thistitle}}
\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\let\contentsalignmacro = \chapoddpage
}
\def\HEADINGSsingleafter{\let\HEADINGShook=\HEADINGSsinglex}
@@ -1382,6 +1540,7 @@ where each line of input produces a line of output.}
\global\oddfootline={\hfil}
\global\evenheadline={\line{\thischapter\hfil\folio}}
\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\let\contentsalignmacro = \chappager
}
% Subroutines used in generating headings
@@ -1405,6 +1564,7 @@ July\or August\or September\or October\or November\or December\fi
\def\settitle{\parsearg\settitlezzz}
\def\settitlezzz #1{\gdef\thistitle{#1}}
+
\message{tables,}
% @tabs -- simple alignment
@@ -1437,7 +1597,7 @@ July\or August\or September\or October\or November\or December\fi
\newif\ifitemxneedsnegativevskip
-\def\itemxpar{\par\ifitemxneedsnegativevskip\vskip-\parskip\nobreak\fi}
+\def\itemxpar{\par\ifitemxneedsnegativevskip\nobreak\vskip-\parskip\nobreak\fi}
\def\internalBitem{\smallbreak \parsearg\itemzzz}
\def\internalBitemx{\itemxpar \parsearg\itemzzz}
@@ -1544,7 +1704,7 @@ July\or August\or September\or October\or November\or December\fi
\def\tablez #1#2#3#4#5#6{%
\aboveenvbreak %
\begingroup %
-\def\Edescription{\Etable}% Neccessary kludge.
+\def\Edescription{\Etable}% Necessary kludge.
\let\itemindex=#1%
\ifnum 0#3>0 \advance \leftskip by #3\mil \fi %
\ifnum 0#4>0 \tableindent=#4\mil \fi %
@@ -1708,10 +1868,10 @@ July\or August\or September\or October\or November\or December\fi
\flushcr}
% @multitable macros
-% Amy Hendrickson, 8/18/94
+% Amy Hendrickson, 8/18/94, 3/6/96
%
-% @multitable ... @endmultitable will make as many columns as desired.
-% Contents of each column will wrap at width given in preamble. Width
+% @multitable ... @end multitable will make as many columns as desired.
+% Contents of each column will wrap at width given in preamble. Width
% can be specified either with sample text given in a template line,
% or in percent of \hsize, the current width of text on page.
@@ -1720,25 +1880,35 @@ July\or August\or September\or October\or November\or December\fi
% To make preamble:
%
% Either define widths of columns in terms of percent of \hsize:
-% @multitable @percentofhsize .2 .3 .5
+% @multitable @columnfractions .25 .3 .45
% @item ...
%
-% Numbers following @percentofhsize are the percent of the total
+% Numbers following @columnfractions are the percent of the total
% current hsize to be used for each column. You may use as many
% columns as desired.
+
% Or use a template:
% @multitable {Column 1 template} {Column 2 template} {Column 3 template}
% @item ...
% using the widest term desired in each column.
-
+%
+% For those who want to use more than one line's worth of words in
+% the preamble, break the line within one argument and it
+% will parse correctly, i.e.,
+%
+% @multitable {Column 1 template} {Column 2 template} {Column 3
+% template}
+% Not:
+% @multitable {Column 1 template} {Column 2 template}
+% {Column 3 template}
% Each new table line starts with @item, each subsequent new column
% starts with @tab. Empty columns may be produced by supplying @tab's
% with nothing between them for as many times as empty columns are needed,
% ie, @tab@tab@tab will produce two empty columns.
-% @item, @tab, @multicolumn or @endmulticolumn do not need to be on their
+% @item, @tab, @multitable or @end multitable do not need to be on their
% own lines, but it will not hurt if they are.
% Sample multitable:
@@ -1756,71 +1926,86 @@ July\or August\or September\or October\or November\or December\fi
%
% They will wrap at the width determined by the template.
% @item@tab@tab This will be in third column.
-% @endmultitable
+% @end multitable
% Default dimensions may be reset by user.
-% @intableparskip will set vertical space between paragraphs in table.
-% @intableparindent will set paragraph indent in table.
-% @spacebetweencols will set horizontal space to be left between columns.
-% @spacebetweenlines will set vertical space to be left between lines.
+% @multitableparskip is vertical space between paragraphs in table.
+% @multitableparindent is paragraph indent in table.
+% @multitablecolmargin is horizontal space to be left between columns.
+% @multitablelinespace is space to leave between table items, baseline
+% to baseline.
+% 0pt means it depends on current normal line spacing.
%%%%
% Dimensions
-\newdimen\intableparskip
-\newdimen\intableparindent
-\newdimen\spacebetweencols
-\newdimen\spacebetweenlines
-\intableparskip=0pt
-\intableparindent=6pt
-\spacebetweencols=12pt
-\spacebetweenlines=12pt
+\newskip\multitableparskip
+\newskip\multitableparindent
+\newdimen\multitablecolspace
+\newskip\multitablelinespace
+\multitableparskip=0pt
+\multitableparindent=6pt
+\multitablecolspace=12pt
+\multitablelinespace=0pt
%%%%
% Macros used to set up halign preamble:
\let\endsetuptable\relax
\def\xendsetuptable{\endsetuptable}
-\let\percentofhsize\relax
-\def\xpercentofhsize{\percentofhsize}
+\let\columnfractions\relax
+\def\xcolumnfractions{\columnfractions}
\newif\ifsetpercent
+%% 2/1/96, to allow fractions to be given with more than one digit.
+\def\pickupwholefraction#1 {\global\advance\colcount by1 %
+\expandafter\xdef\csname col\the\colcount\endcsname{.#1\hsize}%
+\setuptable}
+
\newcount\colcount
\def\setuptable#1{\def\firstarg{#1}%
\ifx\firstarg\xendsetuptable\let\go\relax%
\else
- \ifx\firstarg\xpercentofhsize\global\setpercenttrue%
+ \ifx\firstarg\xcolumnfractions\global\setpercenttrue%
\else
\ifsetpercent
- \if#1.\else%
- \global\advance\colcount by1 %
- \expandafter\xdef\csname col\the\colcount\endcsname{.#1\hsize}%
- \fi
+ \let\go\pickupwholefraction % In this case arg of setuptable
+ % is the decimal point before the
+ % number given in percent of hsize.
+ % We don't need this so we don't use it.
\else
\global\advance\colcount by1
- \setbox0=\hbox{#1}%
+ \setbox0=\hbox{#1 }% Add a normal word space as a separator;
+ % typically that is always in the input, anyway.
\expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}%
\fi%
\fi%
- \let\go\setuptable%
+\ifx\go\pickupwholefraction\else\let\go\setuptable\fi%
\fi\go}
+
%%%%
% multitable syntax
-\def\tab{&}
+\def\tab{&\hskip1sp\relax} % 2/2/96
+ % tiny skip here makes sure this column space is
+ % maintained, even if it is never used.
+
%%%%
-% @multitable ... @endmultitable definitions:
+% @multitable ... @end multitable definitions:
-\def\multitable#1\item{\bgroup
+\def\multitable{\parsearg\dotable}
+
+\def\dotable#1{\bgroup
\let\item\cr
\tolerance=9500
\hbadness=9500
-\parskip=\intableparskip
-\parindent=\intableparindent
+\setmultitablespacing
+\parskip=\multitableparskip
+\parindent=\multitableparindent
\overfullrule=0pt
\global\colcount=0\relax%
\def\Emultitable{\global\setpercentfalse\global\everycr{}\cr\egroup\egroup}%
% To parse everything between @multitable and @item :
-\def\one{#1}\expandafter\setuptable\one\endsetuptable
+\setuptable#1 \endsetuptable
% Need to reset this to 0 after \setuptable.
\global\colcount=0\relax%
%
@@ -1829,11 +2014,11 @@ July\or August\or September\or October\or November\or December\fi
% \vtop will set a single line and will also let text wrap and
% continue for many paragraphs if desired.
\halign\bgroup&\global\advance\colcount by 1\relax%
-\vtop{\hsize=\expandafter\csname col\the\colcount\endcsname
+\multistrut\vtop{\hsize=\expandafter\csname col\the\colcount\endcsname
% In order to keep entries from bumping into each other
- % we will add a \leftskip of \spacebetweencols to all columns after
+ % we will add a \leftskip of \multitablecolspace to all columns after
% the first one.
- % If a template has been used, we will add \spacebetweencols
+ % If a template has been used, we will add \multitablecolspace
% to the width of each template entry.
% If user has set preamble in terms of percent of \hsize
% we will use that dimension as the width of the column, and
@@ -1845,20 +2030,46 @@ July\or August\or September\or October\or November\or December\fi
\ifsetpercent
\else
% If user has <not> set preamble in terms of percent of \hsize
- % we will advance \hsize by \spacebetweencols
- \advance\hsize by \spacebetweencols
+ % we will advance \hsize by \multitablecolspace
+ \advance\hsize by \multitablecolspace
\fi
- % In either case we will make \leftskip=\spacebetweencols:
-\leftskip=\spacebetweencols
+ % In either case we will make \leftskip=\multitablecolspace:
+\leftskip=\multitablecolspace
\fi
-\noindent##}\cr%
+\noindent##\multistrut}\cr%
% \everycr will reset column counter, \colcount, at the end of
% each line. Every column entry will cause \colcount to advance by one.
% The table preamble
% looks at the current \colcount to find the correct column width.
-\global\everycr{\noalign{\nointerlineskip\vskip\spacebetweenlines
+\global\everycr{\noalign{%
\filbreak%% keeps underfull box messages off when table breaks over pages.
-\global\colcount=0\relax}}}
+\global\colcount=0\relax}}
+}
+
+\def\setmultitablespacing{% test to see if user has set \multitablelinespace.
+% If so, do nothing. If not, give it an appropriate dimension based on
+% current baselineskip.
+\ifdim\multitablelinespace=0pt
+%% strut to put in table in case some entry doesn't have descenders,
+%% to keep lines equally spaced
+\let\multistrut = \strut
+%% Test to see if parskip is larger than space between lines of
+%% table. If not, do nothing.
+%% If so, set to same dimension as multitablelinespace.
+\else
+\gdef\multistrut{\vrule height\multitablelinespace depth\dp0
+width0pt\relax} \fi
+\ifdim\multitableparskip>\multitablelinespace
+\global\multitableparskip=\multitablelinespace
+\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
+ %% than skip between lines in the table.
+\fi%
+\ifdim\multitableparskip=0pt
+\global\multitableparskip=\multitablelinespace
+\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
+ %% than skip between lines in the table.
+\fi}
+
\message{indexing,}
% Index generation facilities
@@ -1872,14 +2083,14 @@ July\or August\or September\or October\or November\or December\fi
% It automatically defines \fooindex such that
% \fooindex ...rest of line... puts an entry in the index foo.
% It also defines \fooindfile to be the number of the output channel for
-% the file that accumulates this index. The file's extension is foo.
+% the file that accumulates this index. The file's extension is foo.
% The name of an index should be no more than 2 characters long
% for the sake of vms.
\def\newindex #1{
\expandafter\newwrite \csname#1indfile\endcsname% Define number for output file
-\openout \csname#1indfile\endcsname \jobname.#1 % Open the file
-\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex
+\openout \csname#1indfile\endcsname \jobname.#1 % Open the file
+\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex
\noexpand\doindex {#1}}
}
@@ -1891,8 +2102,8 @@ July\or August\or September\or October\or November\or December\fi
\def\newcodeindex #1{
\expandafter\newwrite \csname#1indfile\endcsname% Define number for output file
-\openout \csname#1indfile\endcsname \jobname.#1 % Open the file
-\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex
+\openout \csname#1indfile\endcsname \jobname.#1 % Open the file
+\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex
\noexpand\docodeindex {#1}}
}
@@ -1903,7 +2114,7 @@ July\or August\or September\or October\or November\or December\fi
\def\synindex #1 #2 {%
\expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname
\expandafter\let\csname#1indfile\endcsname=\synindexfoo
-\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex
+\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex
\noexpand\doindex {#2}}%
}
@@ -1912,7 +2123,7 @@ July\or August\or September\or October\or November\or December\fi
\def\syncodeindex #1 #2 {%
\expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname
\expandafter\let\csname#1indfile\endcsname=\synindexfoo
-\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex
+\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex
\noexpand\docodeindex {#2}}%
}
@@ -1960,24 +2171,31 @@ July\or August\or September\or October\or November\or December\fi
\def\L{\realbackslash L}%
\def\ss{\realbackslash ss}%
% Take care of texinfo commands likely to appear in an index entry.
+% (Must be a way to avoid doing expansion at all, and thus not have to
+% laboriously list every single command here.)
+\def\@{@}% will be @@ when we switch to @ as escape char.
+%\let\{ = \lbracecmd
+%\let\} = \rbracecmd
\def\_{{\realbackslash _}}%
\def\w{\realbackslash w }%
\def\bf{\realbackslash bf }%
-\def\rm{\realbackslash rm }%
+%\def\rm{\realbackslash rm }%
\def\sl{\realbackslash sl }%
\def\sf{\realbackslash sf}%
\def\tt{\realbackslash tt}%
\def\gtr{\realbackslash gtr}%
\def\less{\realbackslash less}%
\def\hat{\realbackslash hat}%
-\def\char{\realbackslash char}%
+%\def\char{\realbackslash char}%
\def\TeX{\realbackslash TeX}%
\def\dots{\realbackslash dots }%
\def\copyright{\realbackslash copyright }%
\def\tclose##1{\realbackslash tclose {##1}}%
\def\code##1{\realbackslash code {##1}}%
+\def\dotless##1{\realbackslash dotless {##1}}%
\def\samp##1{\realbackslash samp {##1}}%
-\def\t##1{\realbackslash r {##1}}%
+\def\,##1{\realbackslash ,{##1}}%
+\def\t##1{\realbackslash t {##1}}%
\def\r##1{\realbackslash r {##1}}%
\def\i##1{\realbackslash i {##1}}%
\def\b##1{\realbackslash b {##1}}%
@@ -1988,8 +2206,15 @@ July\or August\or September\or October\or November\or December\fi
\def\kbd##1{\realbackslash kbd {##1}}%
\def\dfn##1{\realbackslash dfn {##1}}%
\def\emph##1{\realbackslash emph {##1}}%
+\unsepspaces
}
+% If an index command is used in an @example environment, any spaces
+% therein should become regular spaces in the raw index file, not the
+% expansion of \tie (\\leavevmode \penalty \@M \ ).
+{\obeyspaces
+ \gdef\unsepspaces{\obeyspaces\let =\space}}
+
% \indexnofonts no-ops all font-change commands.
% This is used when outputting the strings to sort the index by.
\def\indexdummyfont#1{#1}
@@ -1998,6 +2223,7 @@ July\or August\or September\or October\or November\or December\fi
\def\indexnofonts{%
% Just ignore accents.
+\let\,=\indexdummyfont
\let\"=\indexdummyfont
\let\`=\indexdummyfont
\let\'=\indexdummyfont
@@ -2010,6 +2236,7 @@ July\or August\or September\or October\or November\or December\fi
\let\u=\indexdummyfont
\let\v=\indexdummyfont
\let\H=\indexdummyfont
+\let\dotless=\indexdummyfont
% Take care of the plain tex special European modified letters.
\def\oe{oe}%
\def\ae{ae}%
@@ -2043,6 +2270,7 @@ July\or August\or September\or October\or November\or December\fi
\let\var=\indexdummyfont
\let\TeX=\indexdummytex
\let\dots=\indexdummydots
+\def\@{@}%
}
% To define \realbackslash, we must make \ not be an escape.
@@ -2058,29 +2286,37 @@ July\or August\or September\or October\or November\or December\fi
% workhorse for all \fooindexes
% #1 is name of index, #2 is stuff to put there
\def\doind #1#2{%
-% Put the index entry in the margin if desired.
-\ifx\SETmarginindex\relax\else%
-\insert\margin{\hbox{\vrule height8pt depth3pt width0pt #2}}%
-\fi%
-{\count10=\lastpenalty %
-{\indexdummies % Must do this here, since \bf, etc expand at this stage
-\escapechar=`\\%
-{\let\folio=0% Expand all macros now EXCEPT \folio
-\def\rawbackslashxx{\indexbackslash}% \indexbackslash isn't defined now
-% so it will be output as is; and it will print as backslash in the indx.
-%
-% Now process the index-string once, with all font commands turned off,
-% to get the string to sort the index by.
-{\indexnofonts
-\xdef\temp1{#2}%
-}%
-% Now produce the complete index entry. We process the index-string again,
-% this time with font commands expanded, to get what to print in the index.
-\edef\temp{%
-\write \csname#1indfile\endcsname{%
-\realbackslash entry {\temp1}{\folio}{#2}}}%
-\temp }%
-}\penalty\count10}}
+ % Put the index entry in the margin if desired.
+ \ifx\SETmarginindex\relax\else
+ \insert\margin{\hbox{\vrule height8pt depth3pt width0pt #2}}%
+ \fi
+ {%
+ \count255=\lastpenalty
+ {%
+ \indexdummies % Must do this here, since \bf, etc expand at this stage
+ \escapechar=`\\
+ {%
+ \let\folio=0 % We will expand all macros now EXCEPT \folio.
+ \def\rawbackslashxx{\indexbackslash}% \indexbackslash isn't defined now
+ % so it will be output as is; and it will print as backslash.
+ %
+ % First process the index-string with all font commands turned off
+ % to get the string to sort by.
+ {\indexnofonts \xdef\indexsorttmp{#2}}%
+ %
+ % Now produce the complete index entry, with both the sort key and the
+ % original text, including any font commands.
+ \toks0 = {#2}%
+ \edef\temp{%
+ \write\csname#1indfile\endcsname{%
+ \realbackslash entry{\indexsorttmp}{\folio}{\the\toks0}}%
+ }%
+ \temp
+ }%
+ }%
+ \penalty\count255
+ }%
+}
\def\dosubind #1#2#3{%
{\count10=\lastpenalty %
@@ -2141,26 +2377,19 @@ July\or August\or September\or October\or November\or December\fi
\def\printindex{\parsearg\doprintindex}
-\def\doprintindex#1{%
- \tex
- \dobreak \chapheadingskip {10000}
- \catcode`\%=\other\catcode`\&=\other\catcode`\#=\other
- \catcode`\$=\other
- \catcode`\~=\other
- \indexbreaks
+\def\doprintindex#1{\begingroup
+ \dobreak \chapheadingskip{10000}%
%
- % The following don't help, since the chars were translated
- % when the raw index was written, and their fonts were discarded
- % due to \indexnofonts.
- %\catcode`\"=\active
- %\catcode`\^=\active
- %\catcode`\_=\active
- %\catcode`\|=\active
- %\catcode`\<=\active
- %\catcode`\>=\active
- % %
- \def\indexbackslash{\rawbackslashxx}
- \indexfonts\rm \tolerance=9500 \advance\baselineskip -1pt
+ \indexfonts \rm
+ \tolerance = 9500
+ \indexbreaks
+ \def\indexbackslash{\rawbackslashxx}%
+ % Index files are almost Texinfo source, but we use \ as the escape
+ % character. It would be better to use @, but that's too big a change
+ % to make right now.
+ \catcode`\\ = 0
+ \catcode`\@ = 11
+ \escapechar = `\\
\begindoublecolumns
%
% See if the index file exists and is nonempty.
@@ -2171,7 +2400,7 @@ July\or August\or September\or October\or November\or December\fi
% index. The easiest way to prevent this problem is to make sure
% there is some text.
(Index is nonexistent)
- \else
+ \else
%
% If the index file exists but is empty, then \openin leaves \ifeof
% false. We have to make TeX try to read something from the file, so
@@ -2185,8 +2414,7 @@ July\or August\or September\or October\or November\or December\fi
\fi
\closein 1
\enddoublecolumns
- \Etex
-}
+\endgroup}
% These macros are used by the sorted index file itself.
% Change them to control the appearance of the index.
@@ -2240,7 +2468,7 @@ July\or August\or September\or October\or November\or December\fi
%
% Insert the text of the index entry. TeX will do line-breaking on it.
#1%
- % The following is kluged to not output a line of dots in the index if
+ % The following is kludged to not output a line of dots in the index if
% there are no page numbers. The next person who breaks this will be
% cursed by a Unix daemon.
\def\tempa{{\rm }}%
@@ -2277,15 +2505,15 @@ July\or August\or September\or October\or November\or December\fi
\noindent\hskip\secondaryindent\hbox{#1}\indexdotfill #2\par
}}
-%% Define two-column mode, which is used in indexes.
-%% Adapted from the TeXbook, page 416.
-\catcode `\@=11
+% Define two-column mode, which we use to typeset indexes.
+% Adapted from the TeXbook, page 416, which is to say,
+% the manmac.tex format used to print the TeXbook itself.
+\catcode`\@=11
\newbox\partialpage
-
\newdimen\doublecolumnhsize
-\def\begindoublecolumns{\begingroup
+\def\begindoublecolumns{\begingroup % ended by \enddoublecolumns
% Grab any single-column material above us.
\output = {\global\setbox\partialpage
=\vbox{\unvbox255\kern -\topskip \kern \baselineskip}}%
@@ -2318,51 +2546,51 @@ July\or August\or September\or October\or November\or December\fi
% Double the \vsize as well. (We don't need a separate register here,
% since nobody clobbers \vsize.)
\vsize = 2\vsize
- \doublecolumnpagegoal
}
-
-\def\enddoublecolumns{\eject \endgroup \pagegoal=\vsize \unvbox\partialpage}
-
-\def\doublecolumnsplit{\splittopskip=\topskip \splitmaxdepth=\maxdepth
- \global\dimen@=\pageheight \global\advance\dimen@ by-\ht\partialpage
- \global\setbox1=\vsplit255 to\dimen@ \global\setbox0=\vbox{\unvbox1}
- \global\setbox3=\vsplit255 to\dimen@ \global\setbox2=\vbox{\unvbox3}
- \ifdim\ht0>\dimen@ \setbox255=\vbox{\unvbox0\unvbox2} \global\setbox255=\copy5 \fi
- \ifdim\ht2>\dimen@ \setbox255=\vbox{\unvbox0\unvbox2} \global\setbox255=\copy5 \fi
+\def\doublecolumnout{%
+ \splittopskip=\topskip \splitmaxdepth=\maxdepth
+ % Get the available space for the double columns -- the normal
+ % (undoubled) page height minus any material left over from the
+ % previous page.
+ \dimen@=\pageheight \advance\dimen@ by-\ht\partialpage
+ % box0 will be the left-hand column, box1 the right.
+ \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@
+ \onepageout\pagesofar
+ \unvbox255 \penalty\outputpenalty
}
-\def\doublecolumnpagegoal{%
- \dimen@=\vsize \advance\dimen@ by-2\ht\partialpage \global\pagegoal=\dimen@
+\def\pagesofar{%
+ % The contents of the output page -- any previous material,
+ % followed by the two boxes we just split.
+ \unvbox\partialpage
+ \hsize = \doublecolumnhsize
+ \wd0=\hsize \wd2=\hsize \hbox to\pagewidth{\box0\hfil\box2}%
}
-\def\pagesofar{\unvbox\partialpage %
- \hsize=\doublecolumnhsize % have to restore this since output routine
- \wd0=\hsize \wd2=\hsize \hbox to\pagewidth{\box0\hfil\box2}}
-\def\doublecolumnout{%
- \setbox5=\copy255
- {\vbadness=10000 \doublecolumnsplit}
- \ifvbox255
- \setbox0=\vtop to\dimen@{\unvbox0}
- \setbox2=\vtop to\dimen@{\unvbox2}
- \onepageout\pagesofar \unvbox255 \penalty\outputpenalty
- \else
- \setbox0=\vbox{\unvbox5}
- \ifvbox0
- \dimen@=\ht0 \advance\dimen@ by\topskip \advance\dimen@ by-\baselineskip
- \divide\dimen@ by2 \splittopskip=\topskip \splitmaxdepth=\maxdepth
- {\vbadness=10000
- \loop \global\setbox5=\copy0
- \setbox1=\vsplit5 to\dimen@
- \setbox3=\vsplit5 to\dimen@
- \ifvbox5 \global\advance\dimen@ by1pt \repeat
- \setbox0=\vbox to\dimen@{\unvbox1}
- \setbox2=\vbox to\dimen@{\unvbox3}
- \global\setbox\partialpage=\vbox{\pagesofar}
- \doublecolumnpagegoal
- }
- \fi
- \fi
+\def\enddoublecolumns{%
+ \output={\balancecolumns}\eject % split what we have
+ \endgroup
+ % Back to normal single-column typesetting, but take account of the
+ % fact that we just accumulated some stuff on the output page.
+ \pagegoal=\vsize
+}
+\def\balancecolumns{%
+ % Called on the last page of the double column material.
+ \setbox0=\vbox{\unvbox255}%
+ \dimen@ = \ht0
+ \advance\dimen@ by \topskip
+ \advance\dimen@ by-\baselineskip
+ \divide\dimen@ by 2
+ \splittopskip = \topskip
+ % Loop until we get a decent breakpoint.
+ {\vbadness=10000 \loop \global\setbox3=\copy0
+ \global\setbox1=\vsplit3 to\dimen@
+ \ifdim\ht3>\dimen@ \global\advance\dimen@ by1pt \repeat}%
+ \setbox0=\vbox to\dimen@{\unvbox1}%
+ \setbox2=\vbox to\dimen@{\unvbox3}%
+ \pagesofar
}
-
\catcode `\@=\other
+
+
\message{sectioning,}
% Define chapters, sections, etc.
@@ -2534,6 +2762,10 @@ July\or August\or September\or October\or November\or December\fi
\global\let\subsubsection = \appendixsubsubsec
}}
+% @centerchap is like @unnumbered, but the heading is centered.
+\outer\def\centerchap{\parsearg\centerchapyyy}
+\def\centerchapyyy #1{{\let\unnumbchapmacro=\centerchapmacro \unnumberedyyy{#1}}}
+
\outer\def\top{\parsearg\unnumberedyyy}
\outer\def\unnumbered{\parsearg\unnumberedyyy}
\def\unnumberedyyy #1{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz
@@ -2578,7 +2810,7 @@ July\or August\or September\or October\or November\or December\fi
\penalty 10000 %
}}
-\outer\def\appenixsection{\parsearg\appendixsecyyy}
+\outer\def\appendixsection{\parsearg\appendixsecyyy}
\outer\def\appendixsec{\parsearg\appendixsecyyy}
\def\appendixsecyyy #1{\apphead1{#1}} % normally calls appendixsectionzzz
\def\appendixsectionzzz #1{\seccheck{appendixsection}%
@@ -2636,7 +2868,7 @@ July\or August\or September\or October\or November\or December\fi
\outer\def\unnumberedsubsec{\parsearg\unnumberedsubsecyyy}
\def\unnumberedsubsecyyy #1{\unnmhead2{#1}} %normally calls unnumberedsubseczzz
\def\unnumberedsubseczzz #1{\seccheck{unnumberedsubsec}%
-\plainsecheading {#1}\gdef\thissection{#1}%
+\plainsubsecheading {#1}\gdef\thissection{#1}%
{\chapternofonts%
\edef\temp{{\realbackslash unnumbsubsecentry{#1}{\noexpand\folio}}}%
\escapechar=`\\%
@@ -2681,7 +2913,7 @@ July\or August\or September\or October\or November\or December\fi
\outer\def\unnumberedsubsubsec{\parsearg\unnumberedsubsubsecyyy}
\def\unnumberedsubsubsecyyy #1{\unnmhead3{#1}} %normally unnumberedsubsubseczzz
\def\unnumberedsubsubseczzz #1{\seccheck{unnumberedsubsubsec}%
-\plainsecheading {#1}\gdef\thissection{#1}%
+\plainsubsubsecheading {#1}\gdef\thissection{#1}%
{\chapternofonts%
\edef\temp{{\realbackslash unnumbsubsubsecentry{#1}{\noexpand\folio}}}%
\escapechar=`\\%
@@ -2719,10 +2951,10 @@ July\or August\or September\or October\or November\or December\fi
% NOTE on use of \vbox for chapter headings, section headings, and
% such:
-% 1) We use \vbox rather than the earlier \line to permit
-% overlong headings to fold.
-% 2) \hyphenpenalty is set to 10000 because hyphenation in a
-% heading is obnoxious; this forbids it.
+% 1) We use \vbox rather than the earlier \line to permit
+% overlong headings to fold.
+% 2) \hyphenpenalty is set to 10000 because hyphenation in a
+% heading is obnoxious; this forbids it.
% 3) Likewise, headings look best if no \parindent is used, and
% if justification is not attempted. Hence \raggedright.
@@ -2740,11 +2972,10 @@ July\or August\or September\or October\or November\or December\fi
\parindent=0pt\raggedright
\rm #1\hfill}}\bigskip \par\penalty 200}
-\def\heading{\parsearg\secheadingi}
-
-\def\subheading{\parsearg\subsecheadingi}
-
-\def\subsubheading{\parsearg\subsubsecheadingi}
+% @heading, @subheading, @subsubheading.
+\def\heading{\parsearg\plainsecheading}
+\def\subheading{\parsearg\plainsubsecheading}
+\def\subsubheading{\parsearg\plainsubsubsecheading}
% These macros generate a chapter, section, etc. heading only
% (including whitespace, linebreaking, etc. around it),
@@ -2758,7 +2989,7 @@ July\or August\or September\or October\or November\or December\fi
%%% Define plain chapter starts, and page on/off switching for it
% Parameter controlling skip before chapter headings (if needed)
-\newskip \chapheadingskip \chapheadingskip = 30pt plus 8pt minus 4pt
+\newskip\chapheadingskip
\def\chapbreak{\dobreak \chapheadingskip {-4000}}
\def\chappager{\par\vfill\supereject}
@@ -2767,15 +2998,18 @@ July\or August\or September\or October\or November\or December\fi
\def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname}
\def\CHAPPAGoff{
+\global\let\contentsalignmacro = \chappager
\global\let\pchapsepmacro=\chapbreak
\global\let\pagealignmacro=\chappager}
\def\CHAPPAGon{
+\global\let\contentsalignmacro = \chappager
\global\let\pchapsepmacro=\chappager
\global\let\pagealignmacro=\chappager
\global\def\HEADINGSon{\HEADINGSsingle}}
\def\CHAPPAGodd{
+\global\let\contentsalignmacro = \chapoddpage
\global\let\pchapsepmacro=\chapoddpage
\global\let\pagealignmacro=\chapoddpage
\global\def\HEADINGSon{\HEADINGSdouble}}
@@ -2784,25 +3018,39 @@ July\or August\or September\or October\or November\or December\fi
\def\CHAPFplain{
\global\let\chapmacro=\chfplain
-\global\let\unnumbchapmacro=\unnchfplain}
+\global\let\unnumbchapmacro=\unnchfplain
+\global\let\centerchapmacro=\centerchfplain}
-\def\chfplain #1#2{%
+% Plain chapter opening.
+% #1 is the text, #2 the chapter number or empty if unnumbered.
+\def\chfplain#1#2{%
\pchapsepmacro
{%
- \chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt\raggedright
- \rm #2\enspace #1}%
+ \chapfonts \rm
+ \def\chapnum{#2}%
+ \setbox0 = \hbox{#2\ifx\chapnum\empty\else\enspace\fi}%
+ \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
+ \hangindent = \wd0 \centerparametersmaybe
+ \unhbox0 #1\par}%
}%
- \bigskip
- \penalty5000
+ \nobreak\bigskip % no page break after a chapter title
+ \nobreak
}
-\def\unnchfplain #1{%
-\pchapsepmacro %
-{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt\raggedright
- \rm #1\hfill}}\bigskip \par\penalty 10000 %
-}
+% Plain opening for unnumbered.
+\def\unnchfplain#1{\chfplain{#1}{}}
+
+% @centerchap -- centered and unnumbered.
+\let\centerparametersmaybe = \relax
+\def\centerchfplain#1{{%
+ \def\centerparametersmaybe{%
+ \advance\rightskip by 3\rightskip
+ \leftskip = \rightskip
+ \parfillskip = 0pt
+ }%
+ \chfplain{#1}{}%
+}}
+
\CHAPFplain % The default
\def\unnchfopen #1{%
@@ -2816,73 +3064,81 @@ July\or August\or September\or October\or November\or December\fi
\par\penalty 5000 %
}
+\def\centerchfopen #1{%
+\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
+ \parindent=0pt
+ \hfill {\rm #1}\hfill}}\bigskip \par\penalty 10000 %
+}
+
\def\CHAPFopen{
\global\let\chapmacro=\chfopen
-\global\let\unnumbchapmacro=\unnchfopen}
+\global\let\unnumbchapmacro=\unnchfopen
+\global\let\centerchapmacro=\centerchfopen}
-% Parameter controlling skip before section headings.
-\newskip \subsecheadingskip \subsecheadingskip = 17pt plus 8pt minus 4pt
+% Section titles.
+\newskip\secheadingskip
+\def\secheadingbreak{\dobreak \secheadingskip {-1000}}
+\def\secheading#1#2#3{\sectionheading{sec}{#2.#3}{#1}}
+\def\plainsecheading#1{\sectionheading{sec}{}{#1}}
+
+% Subsection titles.
+\newskip \subsecheadingskip
\def\subsecheadingbreak{\dobreak \subsecheadingskip {-500}}
+\def\subsecheading#1#2#3#4{\sectionheading{subsec}{#2.#3.#4}{#1}}
+\def\plainsubsecheading#1{\sectionheading{subsec}{}{#1}}
-\newskip \secheadingskip \secheadingskip = 21pt plus 8pt minus 4pt
-\def\secheadingbreak{\dobreak \secheadingskip {-1000}}
+% Subsubsection titles.
+\let\subsubsecheadingskip = \subsecheadingskip
+\let\subsubsecheadingbreak = \subsecheadingbreak
+\def\subsubsecheading#1#2#3#4#5{\sectionheading{subsubsec}{#2.#3.#4.#5}{#1}}
+\def\plainsubsubsecheading#1{\sectionheading{subsubsec}{}{#1}}
-% @paragraphindent is defined for the Info formatting commands only.
-\let\paragraphindent=\comment
-% Section fonts are the base font at magstep2, which produces
-% a size a bit more than 14 points in the default situation.
-
-\def\secheading #1#2#3{\secheadingi {#2.#3\enspace #1}}
-\def\plainsecheading #1{\secheadingi {#1}}
-\def\secheadingi #1{{\advance \secheadingskip by \parskip %
-\secheadingbreak}%
-{\secfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt\raggedright
- \rm #1\hfill}}%
-\ifdim \parskip<10pt \kern 10pt\kern -\parskip\fi \penalty 10000 }
-
-
-% Subsection fonts are the base font at magstep1,
-% which produces a size of 12 points.
-
-\def\subsecheading #1#2#3#4{\subsecheadingi {#2.#3.#4\enspace #1}}
-\def\subsecheadingi #1{{\advance \subsecheadingskip by \parskip %
-\subsecheadingbreak}%
-{\subsecfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt\raggedright
- \rm #1\hfill}}%
-\ifdim \parskip<10pt \kern 10pt\kern -\parskip\fi \penalty 10000 }
-
-\def\subsubsecfonts{\subsecfonts} % Maybe this should change:
- % Perhaps make sssec fonts scaled
- % magstep half
-\def\subsubsecheading #1#2#3#4#5{\subsubsecheadingi {#2.#3.#4.#5\enspace #1}}
-\def\subsubsecheadingi #1{{\advance \subsecheadingskip by \parskip %
-\subsecheadingbreak}%
-{\subsubsecfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt\raggedright
- \rm #1\hfill}}%
-\ifdim \parskip<10pt \kern 10pt\kern -\parskip\fi \penalty 10000}
+% Print any size section title.
+%
+% #1 is the section type (sec/subsec/subsubsec), #2 is the section
+% number (maybe empty), #3 the text.
+\def\sectionheading#1#2#3{%
+ {%
+ \expandafter\advance\csname #1headingskip\endcsname by \parskip
+ \csname #1headingbreak\endcsname
+ }%
+ {%
+ % Switch to the right set of fonts.
+ \csname #1fonts\endcsname \rm
+ %
+ % Only insert the separating space if we have a section number.
+ \def\secnum{#2}%
+ \setbox0 = \hbox{#2\ifx\secnum\empty\else\enspace\fi}%
+ %
+ \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
+ \hangindent = \wd0 % zero if no section number
+ \unhbox0 #3}%
+ }%
+ \ifdim\parskip<10pt \nobreak\kern10pt\nobreak\kern-\parskip\fi \nobreak
+}
\message{toc printing,}
-
% Finish up the main text and prepare to read what we've written
% to \contentsfile.
\newskip\contentsrightmargin \contentsrightmargin=1in
\def\startcontents#1{%
- \pagealignmacro
+ % If @setchapternewpage on, and @headings double, the contents should
+ % start on an odd page, unlike chapters. Thus, we maintain
+ % \contentsalignmacro in parallel with \pagealignmacro.
+ % From: Torbjorn Granlund <tege@matematik.su.se>
+ \contentsalignmacro
\immediate\closeout \contentsfile
\ifnum \pageno>0
- \pageno = -1 % Request roman numbered pages.
+ \pageno = -1 % Request roman numbered pages.
\fi
% Don't need to put `Contents' or `Short Contents' in the headline.
% It is abundantly clear what they are.
\unnumbchapmacro{#1}\def\thischapter{}%
- \begingroup % Set up to handle contents files properly.
+ \begingroup % Set up to handle contents files properly.
\catcode`\\=0 \catcode`\{=1 \catcode`\}=2 \catcode`\@=11
\catcode`\^=7 % to see ^^e4 as \"a etc. juha@piuha.ydi.vtt.fi
\raggedbottom % Worry more about breakpoints than the bottom.
@@ -2908,6 +3164,7 @@ July\or August\or September\or October\or November\or December\fi
\secfonts
\let\rm=\shortcontrm \let\bf=\shortcontbf \let\sl=\shortcontsl
\rm
+ \hyphenpenalty = 10000
\advance\baselineskip by 1pt % Open it up a little.
\def\secentry ##1##2##3##4{}
\def\unnumbsecentry ##1##2{}
@@ -2951,7 +3208,7 @@ July\or August\or September\or October\or November\or December\fi
% This space should be plenty, since a single number is .5em, and the
% widest letter (M) is 1em, at least in the Computer Modern fonts.
% (This space doesn't include the extra space that gets added after
- % the label; that gets put in in \shortchapentry above.)
+ % the label; that gets put in by \shortchapentry above.)
\advance\dimen0 by 1.1em
\hbox to \dimen0{#1\hfil}%
}
@@ -2972,22 +3229,21 @@ July\or August\or September\or October\or November\or December\fi
\dosubsubsecentry{#2.#3.#4.#5\labelspace#1}{#6}}
\def\unnumbsubsubsecentry#1#2{\dosubsubsecentry{#1}{#2}}
-
% This parameter controls the indentation of the various levels.
\newdimen\tocindent \tocindent = 3pc
% Now for the actual typesetting. In all these, #1 is the text and #2 is the
% page number.
%
-% If the toc has to be broken over pages, we would want to be at chapters
+% If the toc has to be broken over pages, we want it to be at chapters
% if at all possible; hence the \penalty.
\def\dochapentry#1#2{%
- \penalty-300 \vskip\baselineskip
+ \penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip
\begingroup
\chapentryfonts
\tocentry{#1}{\dopageno{#2}}%
\endgroup
- \nobreak\vskip .25\baselineskip
+ \nobreak\vskip .25\baselineskip plus.1\baselineskip
}
\def\dosecentry#1#2{\begingroup
@@ -3010,9 +3266,10 @@ July\or August\or September\or October\or November\or December\fi
% can't do that in the \entry macro, since index entries might consist
% of hyphenated-identifiers-that-do-not-fit-on-a-line-and-nothing-else.)
%
+% \turnoffactive is for the sake of @" used for umlauts.
\def\tocentry#1#2{\begingroup
- \hyphenpenalty = 10000
- \entry{#1}{#2}%
+ \vskip 0pt plus1pt % allow a little stretch for the sake of nice page breaks
+ \entry{\turnoffactive #1}{\turnoffactive #2}%
\endgroup}
% Space between chapter (or whatever) number and the title.
@@ -3036,8 +3293,6 @@ July\or August\or September\or October\or November\or December\fi
\newbox\pushcharbox \newbox\bullbox
\newbox\equivbox \newbox\errorbox
-\let\ptexequiv = \equiv
-
%{\tentt
%\global\setbox\dblarrowbox = \hbox to 1em{\hfil$\Rightarrow$\hfil}
%\global\setbox\longdblarrowbox = \hbox to 1em{\hfil$\mapsto$\hfil}
@@ -3048,12 +3303,11 @@ July\or August\or September\or October\or November\or December\fi
% depth .1ex\hfil}
%}
+% @point{}, @result{}, @expansion{}, @print{}, @equiv{}.
\def\point{$\star$}
-
\def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}}
\def\expansion{\leavevmode\raise.1ex\hbox to 1em{\hfil$\mapsto$\hfil}}
\def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}}
-
\def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}}
% Adapted from the TeXbook's \boxit.
@@ -3085,7 +3339,7 @@ July\or August\or September\or October\or November\or December\fi
\catcode `\$=3 \catcode `\&=4 \catcode `\#=6
\catcode `\^=7 \catcode `\_=8 \catcode `\~=13 \let~=\tie
\catcode `\%=14
-\catcode 43=12
+\catcode 43=12 % plus
\catcode`\"=12
\catcode`\==12
\catcode`\|=12
@@ -3093,16 +3347,18 @@ July\or August\or September\or October\or November\or December\fi
\catcode`\>=12
\escapechar=`\\
%
+\let\,=\ptexcomma
\let\~=\ptextilde
\let\{=\ptexlbrace
\let\}=\ptexrbrace
\let\.=\ptexdot
\let\*=\ptexstar
\let\dots=\ptexdots
+\def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}
+\def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}
\def\@{@}%
\let\bullet=\ptexbullet
-\let\b=\ptexb \let\c=\ptexc \let\i=\ptexi \let\t=\ptext \let\l=\ptexl
-\let\L=\ptexL
+\let\b=\ptexb \let\c=\ptexc \let\i=\ptexi \let\t=\ptext
%
\let\Etex=\endgroup}
@@ -3161,50 +3417,50 @@ July\or August\or September\or October\or November\or December\fi
\def\cbl{{\circle\char'012\hskip -6pt}}
\def\cbr{{\hskip 6pt\circle\char'011}}
\def\carttop{\hbox to \cartouter{\hskip\lskip
- \ctl\leaders\hrule height\circthick\hfil\ctr
- \hskip\rskip}}
+ \ctl\leaders\hrule height\circthick\hfil\ctr
+ \hskip\rskip}}
\def\cartbot{\hbox to \cartouter{\hskip\lskip
- \cbl\leaders\hrule height\circthick\hfil\cbr
- \hskip\rskip}}
+ \cbl\leaders\hrule height\circthick\hfil\cbr
+ \hskip\rskip}}
%
\newskip\lskip\newskip\rskip
\long\def\cartouche{%
\begingroup
- \lskip=\leftskip \rskip=\rightskip
- \leftskip=0pt\rightskip=0pt %we want these *outside*.
- \cartinner=\hsize \advance\cartinner by-\lskip
- \advance\cartinner by-\rskip
- \cartouter=\hsize
- \advance\cartouter by 18pt % allow for 3pt kerns on either
-% side, and for 6pt waste from
-% each corner char
- \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip
- % Flag to tell @lisp, etc., not to narrow margin.
- \let\nonarrowing=\comment
- \vbox\bgroup
- \baselineskip=0pt\parskip=0pt\lineskip=0pt
- \carttop
- \hbox\bgroup
- \hskip\lskip
- \vrule\kern3pt
- \vbox\bgroup
- \hsize=\cartinner
- \kern3pt
- \begingroup
- \baselineskip=\normbskip
- \lineskip=\normlskip
- \parskip=\normpskip
- \vskip -\parskip
+ \lskip=\leftskip \rskip=\rightskip
+ \leftskip=0pt\rightskip=0pt %we want these *outside*.
+ \cartinner=\hsize \advance\cartinner by-\lskip
+ \advance\cartinner by-\rskip
+ \cartouter=\hsize
+ \advance\cartouter by 18pt % allow for 3pt kerns on either
+% side, and for 6pt waste from
+% each corner char
+ \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip
+ % Flag to tell @lisp, etc., not to narrow margin.
+ \let\nonarrowing=\comment
+ \vbox\bgroup
+ \baselineskip=0pt\parskip=0pt\lineskip=0pt
+ \carttop
+ \hbox\bgroup
+ \hskip\lskip
+ \vrule\kern3pt
+ \vbox\bgroup
+ \hsize=\cartinner
+ \kern3pt
+ \begingroup
+ \baselineskip=\normbskip
+ \lineskip=\normlskip
+ \parskip=\normpskip
+ \vskip -\parskip
\def\Ecartouche{%
- \endgroup
- \kern3pt
- \egroup
- \kern3pt\vrule
- \hskip\rskip
- \egroup
- \cartbot
- \egroup
+ \endgroup
+ \kern3pt
+ \egroup
+ \kern3pt\vrule
+ \hskip\rskip
+ \egroup
+ \cartbot
+ \egroup
\endgroup
}}
@@ -3267,8 +3523,7 @@ July\or August\or September\or October\or November\or December\fi
\let\Esmalllisp = \nonfillfinish
\let\Esmallexample = \nonfillfinish
%
- % Smaller interline space and fonts for small examples.
- \setleading{10pt}%
+ % Smaller fonts for small examples.
\indexfonts \tt
\rawbackslash % make \ output the \ character from the current font (tt)
\gobble
@@ -3796,6 +4051,7 @@ July\or August\or September\or October\or November\or December\fi
\def\deftpx #1 {\errmessage{@deftpx in invalid context}}
+
\message{cross reference,}
% Define cross-reference macros
\newwrite \auxfile
@@ -3803,6 +4059,11 @@ July\or August\or September\or October\or November\or December\fi
\newif\ifhavexrefs % True if xref values are known.
\newif\ifwarnedxrefs % True if we warned once that they aren't known.
+% @inforef is simple.
+\def\inforef #1{\inforefzzz #1,,,,**}
+\def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}},
+ node \samp{\ignorespaces#1{}}}
+
% \setref{foo} defines a cross-reference point named foo.
\def\setref#1{%
@@ -3836,7 +4097,10 @@ July\or August\or September\or October\or November\or December\fi
\setbox0=\hbox{\printednodename}%
\ifdim \wd0 = 0pt
% No printed node name was explicitly given.
- \ifx\SETxref-automatic-section-title\relax %
+ \expandafter\ifx\csname SETxref-automatic-section-title\endcsname\relax
+ % Use the node name inside the square brackets.
+ \def\printednodename{\ignorespaces #1}%
+ \else
% Use the actual chapter/section title appear inside
% the square brackets. Use the real section title if we have it.
\ifdim \wd1>0pt%
@@ -3845,16 +4109,12 @@ July\or August\or September\or October\or November\or December\fi
\else
\ifhavexrefs
% We know the real title if we have the xref values.
- \def\printednodename{\refx{#1-title}}%
+ \def\printednodename{\refx{#1-title}{}}%
\else
% Otherwise just copy the Info node name.
\def\printednodename{\ignorespaces #1}%
\fi%
\fi
- \def\printednodename{#1-title}%
- \else
- % Use the node name inside the square brackets.
- \def\printednodename{\ignorespaces #1}%
\fi
\fi
%
@@ -4039,7 +4299,8 @@ July\or August\or September\or October\or November\or December\fi
% The trailing space in the following definition for supereject is
% vital for proper filling; pages come out unaligned when you do a
% pagealignmacro call if that space before the closing brace is
-% removed.
+% removed. (Generally, numeric constants should always be followed by a
+% space to prevent strange expansion errors.)
\def\supereject{\par\penalty -20000\footnoteno =0 }
% @footnotestyle is meaningful for info output only..
@@ -4164,13 +4425,18 @@ July\or August\or September\or October\or November\or December\fi
% Set some numeric style parameters, for 8.5 x 11 format.
-%\hsize = 6.5in
+\hsize = 6in
+\hoffset = .25in
\newdimen\defaultparindent \defaultparindent = 15pt
\parindent = \defaultparindent
-\parskip 18pt plus 1pt
-\setleading{15pt}
+\parskip 3pt plus 2pt minus 1pt
+\setleading{13.2pt}
\advance\topskip by 1.2cm
+\chapheadingskip = 15pt plus 4pt minus 2pt
+\secheadingskip = 12pt plus 3pt minus 2pt
+\subsecheadingskip = 9pt plus 2pt minus 2pt
+
% Prevent underfull vbox error messages.
\vbadness=10000
@@ -4193,30 +4459,28 @@ July\or August\or September\or October\or November\or December\fi
% Use @smallbook to reset parameters for 7x9.5 format (or else 7x9.25)
\def\smallbook{
-
-% These values for secheadingskip and subsecheadingskip are
-% experiments. RJC 7 Aug 1992
-\global\secheadingskip = 17pt plus 6pt minus 3pt
-\global\subsecheadingskip = 14pt plus 6pt minus 3pt
-
-\global\lispnarrowing = 0.3in
-\setleading{12pt}
-\advance\topskip by -1cm
-\global\parskip 3pt plus 1pt
-\global\hsize = 5in
-\global\vsize=7.5in
-\global\tolerance=700
-\global\hfuzz=1pt
-\global\contentsrightmargin=0pt
-\global\deftypemargin=0pt
-\global\defbodyindent=.5cm
-
-\global\pagewidth=\hsize
-\global\pageheight=\vsize
-
-\global\let\smalllisp=\smalllispx
-\global\let\smallexample=\smalllispx
-\global\def\Esmallexample{\Esmalllisp}
+ \global\chapheadingskip = 15pt plus 4pt minus 2pt
+ \global\secheadingskip = 12pt plus 3pt minus 2pt
+ \global\subsecheadingskip = 9pt plus 2pt minus 2pt
+ %
+ \global\lispnarrowing = 0.3in
+ \setleading{12pt}
+ \advance\topskip by -1cm
+ \global\parskip 2pt plus 1pt
+ \global\hsize = 5in
+ \global\vsize=7.5in
+ \global\tolerance=700
+ \global\hfuzz=1pt
+ \global\contentsrightmargin=0pt
+ \global\deftypemargin=0pt
+ \global\defbodyindent=.5cm
+ %
+ \global\pagewidth=\hsize
+ \global\pageheight=\vsize
+ %
+ \global\let\smalllisp=\smalllispx
+ \global\let\smallexample=\smalllispx
+ \global\def\Esmallexample{\Esmalllisp}
}
% Use @afourpaper to print on European A4 paper.
@@ -4239,12 +4503,19 @@ July\or August\or September\or October\or November\or December\fi
\global\pageheight=\vsize
}
+\bindingoffset=0pt
+\normaloffset=\hoffset
+\pagewidth=\hsize
+\pageheight=\vsize
+
% Allow control of the text dimensions. Parameters in order: textheight;
-% textwidth; \voffset; \hoffset (!); binding offset. All require a dimension;
+% textwidth; voffset; hoffset; binding offset; topskip.
+% All require a dimension;
% header is additional; added length extends the bottom of the page.
-\def\changepagesizes#1#2#3#4#5{
+\def\changepagesizes#1#2#3#4#5#6{
\global\vsize= #1
+ \global\topskip= #6
\advance\vsize by \topskip
\global\voffset= #3
\global\hsize= #2
@@ -4257,13 +4528,20 @@ July\or August\or September\or October\or November\or December\fi
\global\normaloffset= #4
\global\bindingoffset= #5}
-% This layout is compatible with Latex on A4 paper.
-
-\def\afourlatex{\changepagesizes{22cm}{15cm}{7mm}{4.6mm}{5mm}}
+% A specific text layout, 24x15cm overall, intended for A4 paper. Top margin
+% 29mm, hence bottom margin 28mm, nominal side margin 3cm.
+\def\afourlatex
+ {\global\tolerance=700
+ \global\hfuzz=1pt
+ \setleading{12pt}
+ \global\parskip 15pt plus 1pt
+ \advance\baselineskip by 1.6pt
+ \changepagesizes{237mm}{150mm}{3.6mm}{3.6mm}{3mm}{7mm}
+ }
% Use @afourwide to print on European A4 paper in wide format.
\def\afourwide{\afourpaper
-\changepagesizes{9.5in}{6.5in}{\hoffset}{\normaloffset}{\bindingoffset}}
+\changepagesizes{9.5in}{6.5in}{\hoffset}{\normaloffset}{\bindingoffset}{7mm}}
% Define macros to output various characters with catcode for normal text.
\catcode`\"=\other
@@ -4312,14 +4590,7 @@ July\or August\or September\or October\or November\or December\fi
\catcode`\_=\active
\def_{\ifusingtt\normalunderscore\_}
% Subroutine for the previous macro.
-\def\_{\lvvmode \kern.06em \vbox{\hrule width.3em height.1ex}}
-
-% \lvvmode is equivalent in function to \leavevmode.
-% Using \leavevmode runs into trouble when written out to
-% an index file due to the expansion of \leavevmode into ``\unhbox
-% \voidb@x'' ---which looks to TeX like ``\unhbox \voidb\x'' due to our
-% magic tricks with @.
-\def\lvvmode{\vbox to 0pt{}}
+\def\_{\leavevmode \kern.06em \vbox{\hrule width.3em height.1ex}}
\catcode`\|=\active
\def|{{\tt \char '174}}
diff --git a/execute_cmd.c b/execute_cmd.c
index 5f57840f..5a9f10fd 100644
--- a/execute_cmd.c
+++ b/execute_cmd.c
@@ -586,8 +586,14 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out,
/* If this is a simple command, tell execute_disk_command that it
might be able to get away without forking and simply exec.
- This means things like ( sleep 10 ) will only cause one fork. */
+ This means things like ( sleep 10 ) will only cause one fork.
+ If we're timing the command, however, we cannot do this
+ optimization. */
+#if 0
if (user_subshell && command->type == cm_simple)
+#else
+ if (user_subshell && command->type == cm_simple && (command->flags & CMD_TIME_PIPELINE) == 0)
+#endif
{
command->flags |= CMD_NO_FORK;
command->value.Simple->flags |= CMD_NO_FORK;
@@ -1068,7 +1074,8 @@ print_formatted_time (fp, format, rs, rsf, us, usf, ss, ssf, cpu)
{
int prec, lng, len;
char *str, *s, ts[32];
- int sum, sum_frac;
+ long sum;
+ int sum_frac;
int sindex, ssize;
len = strlen (format);
@@ -1716,15 +1723,16 @@ print_select_list (list, list_len, max_elem_len, indices_len)
/* Print the elements of LIST, one per line, preceded by an index from 1 to
LIST_LEN. Then display PROMPT and wait for the user to enter a number.
If the number is between 1 and LIST_LEN, return that selection. If EOF
- is read, return a null string. If a blank line is entered, the loop is
- executed again. */
+ is read, return a null string. If a blank line is entered, or an invalid
+ number is entered, the loop is executed again. */
static char *
select_query (list, list_len, prompt)
WORD_LIST *list;
int list_len;
char *prompt;
{
- int max_elem_len, indices_len, len, reply;
+ int max_elem_len, indices_len, len;
+ long reply;
WORD_LIST *l;
char *repl_string, *t;
@@ -1767,7 +1775,8 @@ select_query (list, list_len, prompt)
repl_string = get_string_value ("REPLY");
if (*repl_string == 0)
continue;
- reply = atoi (repl_string);
+ if (legal_number (repl_string, &reply) == 0)
+ continue;
if (reply < 1 || reply > list_len)
return "";
@@ -2138,7 +2147,7 @@ fix_assignment_words (words)
if (words == 0)
return;
- b = builtin_address_internal (words->word->word);
+ b = builtin_address_internal (words->word->word, 0);
if (b == 0 || (b->flags & ASSIGNMENT_BUILTIN) == 0)
return;
diff --git a/externs.h b/externs.h
index b44cb765..359e86e5 100644
--- a/externs.h
+++ b/externs.h
@@ -98,8 +98,8 @@ extern char *strerror __P((int));
#endif
#if !defined (HAVE_STRCASECMP)
-extern int strncasecmp __P((char *, char *, int));
-extern int strcasecmp __P((char *, char *));
+extern int strncasecmp __P((const char *, const char *, int));
+extern int strcasecmp __P((const char *, const char *));
#endif /* HAVE_STRCASECMP */
extern int dup2 __P((int, int));
diff --git a/flags.c b/flags.c
index 80561e50..02b466c0 100644
--- a/flags.c
+++ b/flags.c
@@ -133,8 +133,9 @@ int restricted = 0;
#endif /* RESTRICTED_SHELL */
/* Non-zero means that this shell is running in `privileged' mode. This
- mode is entered on startup if the real and effective uids or gids
- differ. */
+ is required if the shell is to run setuid. If the `-p' option is
+ not supplied at startup, and the real and effective uids or gids
+ differ, disable_priv_mode is called to relinquish setuid status. */
int privileged_mode = 0;
#if defined (BRACE_EXPANSION)
diff --git a/general.c b/general.c
index eae99abf..5e454a20 100644
--- a/general.c
+++ b/general.c
@@ -844,8 +844,9 @@ polite_directory_format (name)
l = home ? strlen (home) : 0;
if (l > 1 && strncmp (home, name, l) == 0 && (!name[l] || name[l] == '/'))
{
- strcpy (tdir + 1, name + l);
+ strncpy (tdir + 1, name + l, sizeof(tdir) - 2);
tdir[0] = '~';
+ tdir[sizeof(tdir) - 1] = '\0';
return (tdir);
}
else
diff --git a/jobs.c b/jobs.c
index bd10cd01..0218f3ff 100644
--- a/jobs.c
+++ b/jobs.c
@@ -1694,7 +1694,15 @@ wait_for (pid)
if (interactive_shell && subshell_environment == 0)
{
if (WIFSIGNALED (child->status) || WIFSTOPPED (child->status))
- set_tty_state ();
+ {
+ set_tty_state ();
+ /* If the foreground job was suspended with ^Z (SIGTSTP), and
+ the user has requested it, get a new window size. */
+ if (check_window_size && WIFSTOPPED (child->status) &&
+ (WSTOPSIG (child->status) == SIGTSTP) &&
+ job == current_job)
+ get_new_window_size (0);
+ }
else
get_tty_state ();
@@ -2318,6 +2326,13 @@ waitchld (wpid, block)
the signal to ourselves. */
SigHandler *temp_handler;
temp_handler = old_sigint_handler;
+ /* Bogus. If we've reset the signal handler as the result
+ of a trap caught on SIGINT, then old_sigint_handler
+ will point to trap_handler, which now knows nothing about
+ SIGINT (if we reset the sighandler to the default).
+ In this case, we have to fix things up. What a crock. */
+ if (temp_handler == trap_handler && signal_is_trapped (SIGINT) == 0)
+ temp_handler = trap_to_sighandler (SIGINT);
restore_sigint_handler ();
if (temp_handler == SIG_DFL)
termination_unwind_protect (SIGINT);
diff --git a/lib/glob/Makefile.in b/lib/glob/Makefile.in
index 2a6bf631..0a4f456d 100644
--- a/lib/glob/Makefile.in
+++ b/lib/glob/Makefile.in
@@ -107,3 +107,7 @@ glob.o: $(BUILD_DIR)/config.h
glob.o: $(topdir)/bashtypes.h $(topdir)/ansi_stdlib.h $(topdir)/bashansi.h
glob.o: $(topdir)/posixstat.h $(topdir)/memalloc.h
glob.o: fnmatch.h
+
+# Rules for deficient makes, like SunOS and Solaris
+fnmatch.o: fnmatch.c
+glob.o: glob.c
diff --git a/lib/malloc/Makefile.in b/lib/malloc/Makefile.in
index 0842f929..92e12afd 100644
--- a/lib/malloc/Makefile.in
+++ b/lib/malloc/Makefile.in
@@ -91,8 +91,8 @@ stubmalloc: ${STUB_OBJS}
${AR} cr libmalloc.a ${STUB_OBJS}
-test -n "$(RANLIB)" && $(RANLIB) libmalloc.a
-alloca.o: $(ALLOCA_SOURCE)
- $(CC) $(CCFLAGS) -c $(ALLOCA_SOURCE)
+alloca.o: $(srcdir)/$(ALLOCA_SOURCE)
+ $(CC) $(CCFLAGS) -c $(srcdir)/$(ALLOCA_SOURCE)
@- if test "$(ALLOCA_OBJECT)" != alloca.o ; then \
mv $(ALLOCA_OBJECT) alloca.o >/dev/null 2>&1 ; \
fi
@@ -103,12 +103,14 @@ mostlyclean clean:
distclean realclean maintainer-clean: clean
$(RM) Makefile
-malloc.o: malloc.c
-gmalloc.o: gmalloc.c
-
alloca.o: $(BUILD_DIR)/config.h
malloc.o: $(BUILD_DIR)/config.h $(topdir)/bashtypes.h getpagesize.h
nmalloc.o: $(BUILD_DIR)/config.h $(topdir)/bashtypes.h getpagesize.h
nmalloc2.o: $(BUILD_DIR)/config.h $(topdir)/bashtypes.h getpagesize.h
xmalloc.o: $(BUILD_DIR)/config.h $(topdir)/ansi_stdlib.h
gmalloc.o: $(BUILD_DIR)/config.h
+
+# Rules for deficient makes, like SunOS and Solaris
+stub.o: stub.c
+malloc.o: malloc.c
+gmalloc.o: gmalloc.c
diff --git a/lib/readline/Makefile.in b/lib/readline/Makefile.in
index 90e3756a..01ff0cb4 100644
--- a/lib/readline/Makefile.in
+++ b/lib/readline/Makefile.in
@@ -190,6 +190,7 @@ rltty.o: readline.h keymaps.h chardefs.h tilde.h
search.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
search.o: readline.h keymaps.h chardefs.h tilde.h
search.o: ansi_stdlib.h history.h
+shell.o: ${BUILD_DIR}/config.h
signals.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
signals.o: readline.h keymaps.h chardefs.h tilde.h
signals.o: history.h
@@ -212,3 +213,32 @@ vi_mode.o: readline.h keymaps.h chardefs.h tilde.h
vi_mode.o: history.h ansi_stdlib.h
xmalloc.o: ${BUILD_DIR}/config.h
xmalloc.o: ansi_stdlib.h
+
+# Rules for deficient makes, like SunOS and Solaris
+bind.o: bind.c
+callback.o: callback.c
+complete.o: complete.c
+display.o: display.c
+funmap.o: funmap.c
+histexpand.o: histexpand.c
+histfile.o: histfile.c
+history.o: history.c
+histsearch.o: histsearch.c
+input.o: input.c
+isearch.o: isearch.c
+keymaps.o: keymaps.c emacs_keymap.c vi_keymap.c
+kill.o: kill.c
+macro.o: macro.c
+nls.o: nls.c
+parens.o: parens.c
+readline.o: readline.c
+rltty.o: rltty.c
+search.o: search.c
+shell.o: shell.c
+signals.o: signals.c
+terminal.o: terminal.c
+tilde.o: tilde.c
+undo.o: undo.c
+util.o: util.c
+vi_mode.o: vi_mode.c
+xmalloc.o: xmalloc.c
diff --git a/lib/readline/complete.c b/lib/readline/complete.c
index b17c63e2..552cb6c6 100644
--- a/lib/readline/complete.c
+++ b/lib/readline/complete.c
@@ -796,7 +796,9 @@ make_quoted_replacement (match, mtype, qc)
/* If there is a single match, see if we need to quote it.
This also checks whether the common prefix of several
matches needs to be quoted. */
- should_quote = rl_strpbrk (match, rl_filename_quote_characters) != 0;
+ should_quote = rl_filename_quote_characters
+ ? (rl_strpbrk (match, rl_filename_quote_characters) != 0)
+ : 0;
do_replace = should_quote ? mtype : NO_MATCH;
/* Quote the replacement, since we found an embedded
diff --git a/lib/readline/display.c b/lib/readline/display.c
index c283f9a1..609d827f 100644
--- a/lib/readline/display.c
+++ b/lib/readline/display.c
@@ -1482,7 +1482,7 @@ cr ()
void
_rl_redisplay_after_sigwinch ()
{
- char *t, *oldp;
+ char *t, *oldp, *oldl, *oldlprefix;
/* Clear the current line and put the cursor at column 0. Make sure
the right thing happens if we have wrapped to a new screen line. */
@@ -1508,9 +1508,14 @@ _rl_redisplay_after_sigwinch ()
if (t)
{
oldp = rl_display_prompt;
+ oldl = local_prompt;
+ oldlprefix = local_prompt_prefix;
rl_display_prompt = ++t;
+ local_prompt = local_prompt_prefix = (char *)NULL;
rl_forced_update_display ();
rl_display_prompt = oldp;
+ local_prompt = oldl;
+ local_prompt_prefix = oldlprefix;
}
else
rl_forced_update_display ();
diff --git a/lib/readline/histfile.c b/lib/readline/histfile.c
index c3de134a..9f96f1cd 100644
--- a/lib/readline/histfile.c
+++ b/lib/readline/histfile.c
@@ -246,7 +246,7 @@ history_truncate_file (fname, lines)
/* Write only if there are more lines in the file than we want to
truncate to. */
- if (i && ((file = open (filename, O_WRONLY|O_TRUNC|O_BINARY, 0666)) != -1))
+ if (i && ((file = open (filename, O_WRONLY|O_TRUNC|O_BINARY, 0600)) != -1))
{
write (file, buffer + i, finfo.st_size - i);
close (file);
@@ -275,7 +275,7 @@ history_do_write (filename, nelements, overwrite)
mode = overwrite ? O_WRONLY|O_CREAT|O_TRUNC|O_BINARY : O_WRONLY|O_APPEND|O_BINARY;
output = history_filename (filename);
- if ((file = open (output, mode, 0666)) == -1)
+ if ((file = open (output, mode, 0600)) == -1)
{
FREE (output);
return (errno);
diff --git a/lib/readline/isearch.c b/lib/readline/isearch.c
index 9639a63f..ce2e58ba 100644
--- a/lib/readline/isearch.c
+++ b/lib/readline/isearch.c
@@ -262,7 +262,7 @@ rl_search_history (direction, invoking_key)
break;
}
- if (c >= 0 && (CTRL_CHAR (c) || META_CHAR (c) || c == RUBOUT))
+ if (c >= 0 && (CTRL_CHAR (c) || META_CHAR (c) || c == RUBOUT) && c != CTRL ('g'))
{
rl_execute_next (c);
break;
diff --git a/lib/readline/readline.h b/lib/readline/readline.h
index d6c1a5cc..99ec055c 100644
--- a/lib/readline/readline.h
+++ b/lib/readline/readline.h
@@ -255,7 +255,7 @@ extern int rl_pending_input;
/* Non-zero if we called this function from _rl_dispatch(). It's present
so functions can find out whether they were called from a key binding
or directly from an application. */
-int rl_dispatching;
+extern int rl_dispatching;
/* The name of the terminal to use. */
extern char *rl_terminal_name;
diff --git a/lib/readline/tilde.c b/lib/readline/tilde.c
index 1d38d9d4..fe263a26 100644
--- a/lib/readline/tilde.c
+++ b/lib/readline/tilde.c
@@ -189,7 +189,7 @@ tilde_expand (string)
if (result = strchr (string, '~'))
result = xmalloc (result_size = (strlen (string) + 16));
else
- result = xmalloc (result_size = strlen (string));
+ result = xmalloc (result_size = (strlen (string) + 1));
/* Scan through STRING expanding tildes as we come to them. */
while (1)
diff --git a/lib/tilde/Makefile.in b/lib/tilde/Makefile.in
index c1510369..02138fc5 100644
--- a/lib/tilde/Makefile.in
+++ b/lib/tilde/Makefile.in
@@ -98,3 +98,6 @@ mostlyclean: clean
tilde.o: tilde.h $(topdir)/ansi_stdlib.h
tilde.o: $(BUILD_DIR)/config.h
+
+# Rules for deficient makes, like SunOS and Solaris
+tilde.o: tilde.c
diff --git a/lib/tilde/tilde.c b/lib/tilde/tilde.c
index 1d38d9d4..fe263a26 100644
--- a/lib/tilde/tilde.c
+++ b/lib/tilde/tilde.c
@@ -189,7 +189,7 @@ tilde_expand (string)
if (result = strchr (string, '~'))
result = xmalloc (result_size = (strlen (string) + 16));
else
- result = xmalloc (result_size = strlen (string));
+ result = xmalloc (result_size = (strlen (string) + 1));
/* Scan through STRING expanding tildes as we come to them. */
while (1)
diff --git a/locale.c b/locale.c
index 7653f1fe..15738842 100644
--- a/locale.c
+++ b/locale.c
@@ -126,7 +126,15 @@ set_locale_var (var, value)
else if (var[3] == 'A') /* LC_ALL */
{
FREE (lc_all);
- lc_all = value ? savestring (value) : savestring (default_locale);
+ if (value)
+ lc_all = savestring (value);
+ else if (default_locale)
+ lc_all = savestring (default_locale);
+ else
+ {
+ lc_all = xmalloc (1);
+ lc_all[0] = '\0';
+ }
#if defined (HAVE_SETLOCALE)
return (setlocale (LC_ALL, value) != 0);
#else
diff --git a/mailcheck.c b/mailcheck.c
index 8d3f833d..d90e52f3 100644
--- a/mailcheck.c
+++ b/mailcheck.c
@@ -150,7 +150,7 @@ add_mail_file (file, msg)
int i;
filename = full_pathname (file);
- i = find_mail_file (file);
+ i = find_mail_file (filename);
if (i >= 0)
{
if (stat (filename, &finfo) == 0)
diff --git a/oslib.c b/oslib.c
index b17a7311..bc49fff3 100644
--- a/oslib.c
+++ b/oslib.c
@@ -112,7 +112,7 @@ strrchr (string, c)
doesn't matter. */
int
strncasecmp (string1, string2, count)
- char *string1, *string2;
+ const char *string1, *string2;
int count;
{
register char *s1, *s2;
@@ -120,8 +120,8 @@ strncasecmp (string1, string2, count)
if (count > 0)
{
- s1 = string1;
- s2 = string2;
+ s1 = (char *)string1;
+ s2 = (char *)string2;
do
{
if ((r = to_lower (*s1) - to_lower (*s2)) != 0)
@@ -138,13 +138,13 @@ strncasecmp (string1, string2, count)
/* strcmp (), but caseless. */
int
strcasecmp (string1, string2)
- char *string1, *string2;
+ const char *string1, *string2;
{
register char *s1, *s2;
register int r;
- s1 = string1;
- s2 = string2;
+ s1 = (char *)string1;
+ s2 = (char *)string2;
while ((r = to_lower (*s1) - to_lower (*s2)) == 0)
{
diff --git a/parse.y b/parse.y
index f0e76595..a8d47805 100644
--- a/parse.y
+++ b/parse.y
@@ -2529,7 +2529,7 @@ read_token_word (character)
#if defined (ARRAY_VARS)
/* Identify possible compound array variable assignment. */
- else if (character == '=')
+ else if (character == '=' && token_index > 0)
{
peek_char = shell_getc (1);
if (peek_char == '(') /* ) */
@@ -3077,6 +3077,7 @@ decode_prompt_string (string)
{
/* Use the value of PWD because it is much more efficient. */
char t_string[PATH_MAX];
+ int tlen;
temp = get_string_value ("PWD");
@@ -3085,11 +3086,17 @@ decode_prompt_string (string)
if (getcwd (t_string, sizeof(t_string)) == 0)
{
t_string[0] = '.';
- t_string[1] = '\0';
+ tlen = 1;
}
+ else
+ tlen = strlen (t_string);
}
else
- strcpy (t_string, temp);
+ {
+ tlen = sizeof (t_string) - 1;
+ strncpy (t_string, temp, tlen);
+ }
+ t_string[tlen] = '\0';
if (c == 'W')
{
@@ -3098,6 +3105,8 @@ decode_prompt_string (string)
strcpy (t_string, t + 1);
}
else
+ /* polite_directory_format is guaranteed to return a string
+ no longer than PATH_MAX - 1 characters. */
strcpy (t_string, polite_directory_format (t_string));
/* If we're going to be expanding the prompt string later,
diff --git a/print_cmd.c b/print_cmd.c
index 642d3cd9..422d6d9d 100644
--- a/print_cmd.c
+++ b/print_cmd.c
@@ -276,18 +276,22 @@ xtrace_print_word_list (list)
WORD_LIST *list;
{
WORD_LIST *w;
- char *t;
+ char *t, *x;
fprintf (stderr, "%s", indirection_level_string ());
for (w = list; w; w = w->next)
{
t = w->word->word;
if (t == 0 || *t == '\0')
- fprintf (stderr, "''%s", w->next ? " " : "");
+ fprintf (stderr, "''%s", w->next ? " " : "");
else if (contains_shell_metas (t))
- fprintf (stderr, "'%s'%s", t, w->next ? " " : "");
+ {
+ x = single_quote (t);
+ fprintf (stderr, "%s%s", x, w->next ? " " : "");
+ free (x);
+ }
else
- fprintf (stderr, "%s%s", t, w->next ? " " : "");
+ fprintf (stderr, "%s%s", t, w->next ? " " : "");
}
fprintf (stderr, "\n");
}
diff --git a/shell.c b/shell.c
index 1ec100c8..4870f80d 100644
--- a/shell.c
+++ b/shell.c
@@ -248,7 +248,7 @@ main (argc, argv, env)
char **argv, **env;
{
register int i;
- int code;
+ int code, saverst;
volatile int locally_skip_execution;
volatile int arg_index, top_level_arg_index;
@@ -459,6 +459,13 @@ main (argc, argv, env)
interactive = 1;
}
+#if defined (RESTRICTED_SHELL)
+ /* If the `-r' option is supplied at invocation, make sure that the shell
+ is not in restricted mode when running the startup files. */
+ saverst = restricted;
+ restricted = 0;
+#endif
+
if (locally_skip_execution == 0 && running_setuid == 0)
run_startup_files ();
@@ -473,7 +480,10 @@ main (argc, argv, env)
}
#if defined (RESTRICTED_SHELL)
- /* Turn on the restrictions after parsing the startup files. */
+ /* Turn on the restrictions after parsing the startup files. This
+ means that `bash -r' or `set -r' invoked from a startup file will
+ turn on the restrictions after the startup files are executed. */
+ restricted = saverst || restricted;
maybe_make_restricted (shell_name);
#endif /* RESTRICTED_SHELL */
diff --git a/sig.c b/sig.c
index 025487fd..de10fff0 100644
--- a/sig.c
+++ b/sig.c
@@ -75,9 +75,9 @@ initialize_signals ()
{
initialize_shell_signals ();
initialize_job_signals ();
-#if !defined (HAVE_SYS_SIGLIST) && !defined (HAVE_STRSIGNAL)
+#if !defined (HAVE_SYS_SIGLIST) && !defined (HAVE_UNDER_SYS_SIGLIST) && !defined (HAVE_STRSIGNAL)
initialize_siglist ();
-#endif
+#endif /* !HAVE_SYS_SIGLIST && !HAVE_UNDER_SYS_SIGLIST && !HAVE_STRSIGNAL */
}
void
@@ -229,8 +229,10 @@ initialize_terminating_signals ()
sigaction (XSIG (i), &oact, &act);
set_signal_ignored (XSIG (i));
}
+#if defined (SIGPROF)
if (XSIG (i) == SIGPROF && XHANDLER (i) != SIG_DFL && XHANDLER (i) != SIG_IGN)
sigaction (XSIG (i), &oact, (struct sigaction *)NULL);
+#endif /* SIGPROF */
}
#else /* !HAVE_POSIX_SIGNALS */
diff --git a/sig.h b/sig.h
index b878040d..ab72a923 100644
--- a/sig.h
+++ b/sig.h
@@ -118,5 +118,7 @@ extern void jump_to_top_level __P((int));
/* Functions defined in trap.c. */
extern SigHandler *set_sigint_handler __P((void));
+extern SigHandler *trap_to_sighandler __P((int));
+extern sighandler trap_handler __P((int));
#endif /* _SIG_H_ */
diff --git a/siglist.c b/siglist.c
index 6d6a93df..0206f57f 100644
--- a/siglist.c
+++ b/siglist.c
@@ -20,7 +20,7 @@ Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "config.h"
-#if !defined (HAVE_SYS_SIGLIST) && !defined (HAVE_STRSIGNAL)
+#if !defined (HAVE_SYS_SIGLIST) && !defined (HAVE_UNDER_SYS_SIGLIST) && !defined (HAVE_STRSIGNAL)
#include <stdio.h>
#include "bashtypes.h"
@@ -225,4 +225,4 @@ initialize_siglist ()
}
}
}
-#endif /* !HAVE_SYS_SIGLIST && !HAVE_STRSIGNAL */
+#endif /* !HAVE_SYS_SIGLIST && !HAVE_UNDER_SYS_SIGLIST && !HAVE_STRSIGNAL */
diff --git a/subst.c b/subst.c
index 72d2314e..a2640f7f 100644
--- a/subst.c
+++ b/subst.c
@@ -3506,7 +3506,9 @@ parameter_brace_expand_length (name)
/* Verify and limit the start and end of the desired substring. If
VTYPE == 0, a regular shell variable is being used; if it is 1,
then the positional paramters are being used; if it is 2, then
- VALUE is really a pointer to an array variable that should be used. */
+ VALUE is really a pointer to an array variable that should be used.
+ Return value is 1 if both values were OK, 0 if there was a problem
+ with an invalid expression, or -1 if the values were out of range. */
static int
verify_substring_values (value, substr, vtype, e1p, e2p)
char *value, *substr;
@@ -3548,7 +3550,7 @@ verify_substring_values (value, substr, vtype, e1p, e2p)
*e1p += len;
if (*e1p >= len || *e1p < 0)
- return (0);
+ return (-1);
if (t)
{
@@ -3672,7 +3674,7 @@ parameter_brace_substring (varname, value, substr, quoted)
char *varname, *value, *substr;
int quoted;
{
- int e1, e2, vtype;
+ int e1, e2, vtype, r;
char *temp, *val;
SHELL_VAR *v;
@@ -3685,11 +3687,12 @@ parameter_brace_substring (varname, value, substr, quoted)
if (vtype == -1)
return ((char *)NULL);
- if (verify_substring_values (val, substr, vtype, &e1, &e2) == 0)
+ r = verify_substring_values (val, substr, vtype, &e1, &e2);
+ if (r <= 0)
{
if (val && vtype == VT_ARRAYMEMBER)
free (val);
- return (&expand_param_error);
+ return ((r == 0) ? &expand_param_error : (char *)NULL);
}
switch (vtype)
@@ -4506,11 +4509,14 @@ expand_word_internal (word, quoted, contains_dollar_at, expanded_something)
extract the expression and pass it to the evaluator. */
if (temp && *temp == '(')
{
+ char *temp2;
temp1 = temp + 1;
- t_index = strlen (temp1) - 1;
+ temp2 = savestring (temp1);
+ t_index = strlen (temp2) - 1;
- if (temp1[t_index] != ')')
+ if (temp2[t_index] != ')')
{
+ free (temp2);
#if 0
report_error ("%s: bad arithmetic substitution", temp);
free (temp);
@@ -4523,10 +4529,11 @@ expand_word_internal (word, quoted, contains_dollar_at, expanded_something)
}
/* Cut off ending `)' */
- temp1[t_index] = '\0';
+ temp2[t_index] = '\0';
/* Expand variables found inside the expression. */
- temp1 = maybe_expand_string (temp1, Q_DOUBLE_QUOTES, expand_string);
+ temp1 = maybe_expand_string (temp2, Q_DOUBLE_QUOTES, expand_string);
+ free (temp2);
/* No error messages. */
this_command_name = (char *)NULL;
diff --git a/support/config.guess b/support/config.guess
index 69e6169f..698f742b 100755
--- a/support/config.guess
+++ b/support/config.guess
@@ -206,7 +206,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# Japanese Language versions have a version number like `4.1.3-JL'.
echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
exit 0 ;;
- sun3*:SunOS:*:*)
+ sun3*:SunOS:*:*|sun:SunOS:*:*)
echo m68k-sun-sunos${UNAME_RELEASE}
exit 0 ;;
aushp:SunOS:*:*)
@@ -372,12 +372,15 @@ EOF
hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
echo m68k-hp-bsd4.4
exit 0 ;;
- 9000/[3478]??:HP-UX:*:*)
+ 9000/[34678]??:HP-UX:*:*)
case "${UNAME_MACHINE}" in
- 9000/31? ) HP_ARCH=m68000 ;;
- 9000/[34]?? ) HP_ARCH=m68k ;;
- 9000/7?? | 9000/8?[1679] ) HP_ARCH=hppa1.1 ;;
- 9000/8?? ) HP_ARCH=hppa1.0 ;;
+ 9000/31? ) HP_ARCH=m68000 ;;
+ 9000/[34]?? ) HP_ARCH=m68k ;;
+ 9000/78? | 9000/80[24] | 9000/8[67]1 | 9000/8[78]9 | 9000/893 )
+ HP_ARCH=hppa2.0 ;;
+ 9000/7?? | 9000/8?[13679] | 9000/892 )
+ HP_ARCH=hppa1.1 ;;
+ 9000/[68]?? ) HP_ARCH=hppa1.0 ;;
esac
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
echo ${HP_ARCH}-hp-hpux${HPUX_REV}
diff --git a/test.c b/test.c
index 4b7c8295..ceb98c7b 100644
--- a/test.c
+++ b/test.c
@@ -42,6 +42,11 @@
# include <unistd.h>
#endif
+#include <errno.h>
+#if !defined (errno)
+extern int errno;
+#endif /* !errno */
+
#if !defined (_POSIX_VERSION)
# include <sys/file.h>
#endif /* !_POSIX_VERSION */
@@ -55,11 +60,6 @@
# define STRLEN(s) ((s)[0] ? ((s)[1] ? ((s)[2] ? strlen(s) : 2) : 1) : 0)
#endif
-#include <errno.h>
-#if !defined (errno)
-extern int errno;
-#endif /* !errno */
-
#if !defined (STREQ)
# define STREQ(a, b) ((a)[0] == (b)[0] && strcmp (a, b) == 0)
#endif /* !STREQ */
diff --git a/tests/array.right b/tests/array.right
index e142fdbc..73674589 100644
--- a/tests/array.right
+++ b/tests/array.right
@@ -46,7 +46,7 @@ declare -a DIRSTACK='()'
declare -ar a='([1]="" [2]="bdef" [5]="hello world" [6]="test expression")'
declare -a b='([0]="this" [1]="is" [2]="a" [3]="test" [4]="" [5]="/etc/passwd")'
declare -ar c='()'
-declare -a d='([1]="test test" [2]="bdef" [5]="hello world" [6]="test" [9]="ninth element")'
+declare -a d='([1]="test test")'
declare -a f='([0]="" [1]="bdef" [2]="hello world" [3]="test" [4]="ninth element")'
./array.tests: unset: ps1: not an array variable
./array.tests: declare: c: cannot destroy array variables in this way
@@ -56,7 +56,7 @@ declare -a DIRSTACK='()'
declare -ar a='([1]="" [2]="bdef" [5]="hello world" [6]="test expression")'
declare -a b='([0]="this" [1]="is" [2]="a" [3]="test" [4]="" [5]="/etc/passwd")'
declare -ar c='()'
-declare -a d='([1]="test test" [2]="bdef" [5]="hello world" [6]="test" [9]="ninth element")'
+declare -a d='([1]="test test")'
declare -a f='([0]="" [1]="bdef" [2]="hello world" [3]="test" [4]="ninth element")'
declare -a rv='([0]="this" [1]="is" [2]="a" [3]="test" [4]="of" [5]="read" [6]="using" [7]="arrays")'
abde
diff --git a/trap.c b/trap.c
index ac4d6eb0..ab59ad78 100644
--- a/trap.c
+++ b/trap.c
@@ -23,15 +23,15 @@
#include <stdio.h>
+#if defined (HAVE_UNISTD_H)
+# include <unistd.h>
+#endif
+
#include "bashtypes.h"
#include "trap.h"
#include "bashansi.h"
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h>
-#endif
-
#include "shell.h"
#include "signames.h"
#include "builtins/common.h"
@@ -151,9 +151,11 @@ decode_signal (string)
if (legal_number (string, &sig))
return ((sig >= 0 && sig <= NSIG) ? (int)sig : NO_SIG);
+ /* A leading `SIG' may be omitted. */
for (sig = 0; sig <= NSIG; sig++)
if (strcasecmp (string, signal_names[sig]) == 0 ||
- strcasecmp (string, &(signal_names[sig])[3]) == 0)
+ (STREQN (signal_names[sig], "SIG", 3) &&
+ strcasecmp (string, &(signal_names[sig])[3]) == 0))
return ((int)sig);
return (NO_SIG);
@@ -300,6 +302,20 @@ set_sigint_handler ()
return (set_signal_handler (SIGINT, termination_unwind_protect));
}
+/* Return the correct handler for signal SIG according to the values in
+ sigmodes[SIG]. */
+SigHandler *
+trap_to_sighandler (sig)
+ int sig;
+{
+ if (sigmodes[sig] & (SIG_IGNORED|SIG_HARD_IGNORE))
+ return (SIG_IGN);
+ else if (sigmodes[sig] & SIG_TRAPPED)
+ return (trap_handler);
+ else
+ return (SIG_DFL);
+}
+
/* Set SIG to call STRING as a command. */
void
set_signal (sig, string)
diff --git a/variables.c b/variables.c
index fad37af5..212724e9 100644
--- a/variables.c
+++ b/variables.c
@@ -907,7 +907,11 @@ static int
brand ()
{
rseed = rseed * 1103515245 + 12345;
+#if 0
return ((unsigned int)(rseed / 65536) % 32768);
+#else
+ return ((unsigned int)(rseed % 32768));
+#endif
}
/* Set the random number generator seed to SEED. */
@@ -916,6 +920,7 @@ sbrand (seed)
int seed;
{
rseed = seed;
+ last_random_value = 0;
}
static SHELL_VAR *
@@ -936,7 +941,7 @@ get_random (var)
/* Reset for command and process substitution. */
if (subshell_environment)
- sbrand ((int)(getpid() + NOW));
+ sbrand (rseed + (int)(getpid() + NOW));
do
rv = brand ();
@@ -1462,6 +1467,10 @@ assign_array_from_string (name, value)
}
else if (array_p (var) == 0)
var = convert_var_to_array (var);
+#if 0
+ else
+ empty_array (array_cell (var));
+#endif
return (assign_array_var_from_string (var, value));
}
@@ -1509,6 +1518,13 @@ assign_array_var_from_string (var, value)
else
nlist = expand_string (value, 0);
+#if 1
+ /* Now that we are ready to assign values to the array, kill the existing
+ value. */
+ if (a)
+ empty_array (a);
+#endif
+
for (last_ind = 0, list = nlist; list; list = list->next)
{
w = list->word->word;
diff --git a/version.c b/version.c
index e230620a..a5dac9f4 100644
--- a/version.c
+++ b/version.c
@@ -63,5 +63,5 @@ show_shell_version (extended)
{
printf ("GNU bash, version %s (%s)\n", shell_version_string (), MACHTYPE);
if (extended)
- printf ("Copyright 1996 Free Software Foundation, Inc.\n");
+ printf ("Copyright 1997 Free Software Foundation, Inc.\n");
}
diff --git a/y.tab.c b/y.tab.c
index ad707d7f..6c66986d 100644
--- a/y.tab.c
+++ b/y.tab.c
@@ -1,5 +1,5 @@
-/* A Bison parser, made from ./parse.y
+/* A Bison parser, made from /usr/homes/chet/src/bash/bash-2.01.1/parse.y
by GNU Bison version 1.25
*/
@@ -39,7 +39,7 @@
#define GREATER_BAR 289
#define yacc_EOF 290
-#line 21 "./parse.y"
+#line 21 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
#include "config.h"
@@ -189,7 +189,7 @@ static int function_bstart;
static REDIRECTEE redir;
-#line 171 "./parse.y"
+#line 171 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
typedef union {
WORD_DESC *word; /* the word that we read. */
int number; /* the number that we read. */
@@ -1071,7 +1071,7 @@ yyreduce:
switch (yyn) {
case 1:
-#line 215 "./parse.y"
+#line 215 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
/* Case of regular command. Discard the error
safety net,and return the command just parsed. */
@@ -1082,7 +1082,7 @@ case 1:
;
break;}
case 2:
-#line 224 "./parse.y"
+#line 224 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
/* Case of regular command, but not a very
interesting one. Return a NULL command. */
@@ -1091,7 +1091,7 @@ case 2:
;
break;}
case 3:
-#line 231 "./parse.y"
+#line 231 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
/* Error during parsing. Return NULL command. */
global_command = (COMMAND *)NULL;
@@ -1108,7 +1108,7 @@ case 3:
;
break;}
case 4:
-#line 246 "./parse.y"
+#line 246 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
/* Case of EOF seen by itself. Do ignoreeof or
not. */
@@ -1118,57 +1118,57 @@ case 4:
;
break;}
case 5:
-#line 256 "./parse.y"
+#line 256 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.word_list = make_word_list (yyvsp[0].word, (WORD_LIST *)NULL); ;
break;}
case 6:
-#line 258 "./parse.y"
+#line 258 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.word_list = make_word_list (yyvsp[0].word, yyvsp[-1].word_list); ;
break;}
case 7:
-#line 262 "./parse.y"
+#line 262 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
redir.filename = yyvsp[0].word;
yyval.redirect = make_redirection (1, r_output_direction, redir);
;
break;}
case 8:
-#line 267 "./parse.y"
+#line 267 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
redir.filename = yyvsp[0].word;
yyval.redirect = make_redirection (0, r_input_direction, redir);
;
break;}
case 9:
-#line 272 "./parse.y"
+#line 272 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
redir.filename = yyvsp[0].word;
yyval.redirect = make_redirection (yyvsp[-2].number, r_output_direction, redir);
;
break;}
case 10:
-#line 277 "./parse.y"
+#line 277 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
redir.filename = yyvsp[0].word;
yyval.redirect = make_redirection (yyvsp[-2].number, r_input_direction, redir);
;
break;}
case 11:
-#line 282 "./parse.y"
+#line 282 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
redir.filename = yyvsp[0].word;
yyval.redirect = make_redirection (1, r_appending_to, redir);
;
break;}
case 12:
-#line 287 "./parse.y"
+#line 287 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
redir.filename = yyvsp[0].word;
yyval.redirect = make_redirection (yyvsp[-2].number, r_appending_to, redir);
;
break;}
case 13:
-#line 292 "./parse.y"
+#line 292 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
redir.filename = yyvsp[0].word;
yyval.redirect = make_redirection (0, r_reading_until, redir);
@@ -1176,7 +1176,7 @@ case 13:
;
break;}
case 14:
-#line 298 "./parse.y"
+#line 298 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
redir.filename = yyvsp[0].word;
yyval.redirect = make_redirection (yyvsp[-2].number, r_reading_until, redir);
@@ -1184,63 +1184,63 @@ case 14:
;
break;}
case 15:
-#line 304 "./parse.y"
+#line 304 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
redir.dest = yyvsp[0].number;
yyval.redirect = make_redirection (0, r_duplicating_input, redir);
;
break;}
case 16:
-#line 309 "./parse.y"
+#line 309 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
redir.dest = yyvsp[0].number;
yyval.redirect = make_redirection (yyvsp[-2].number, r_duplicating_input, redir);
;
break;}
case 17:
-#line 314 "./parse.y"
+#line 314 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
redir.dest = yyvsp[0].number;
yyval.redirect = make_redirection (1, r_duplicating_output, redir);
;
break;}
case 18:
-#line 319 "./parse.y"
+#line 319 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
redir.dest = yyvsp[0].number;
yyval.redirect = make_redirection (yyvsp[-2].number, r_duplicating_output, redir);
;
break;}
case 19:
-#line 324 "./parse.y"
+#line 324 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
redir.filename = yyvsp[0].word;
yyval.redirect = make_redirection (0, r_duplicating_input_word, redir);
;
break;}
case 20:
-#line 329 "./parse.y"
+#line 329 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
redir.filename = yyvsp[0].word;
yyval.redirect = make_redirection (yyvsp[-2].number, r_duplicating_input_word, redir);
;
break;}
case 21:
-#line 334 "./parse.y"
+#line 334 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
redir.filename = yyvsp[0].word;
yyval.redirect = make_redirection (1, r_duplicating_output_word, redir);
;
break;}
case 22:
-#line 339 "./parse.y"
+#line 339 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
redir.filename = yyvsp[0].word;
yyval.redirect = make_redirection (yyvsp[-2].number, r_duplicating_output_word, redir);
;
break;}
case 23:
-#line 344 "./parse.y"
+#line 344 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
redir.filename = yyvsp[0].word;
yyval.redirect = make_redirection
@@ -1249,7 +1249,7 @@ case 23:
;
break;}
case 24:
-#line 351 "./parse.y"
+#line 351 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
redir.filename = yyvsp[0].word;
yyval.redirect = make_redirection
@@ -1258,88 +1258,88 @@ case 24:
;
break;}
case 25:
-#line 358 "./parse.y"
+#line 358 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
redir.dest = 0L;
yyval.redirect = make_redirection (1, r_close_this, redir);
;
break;}
case 26:
-#line 363 "./parse.y"
+#line 363 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
redir.dest = 0L;
yyval.redirect = make_redirection (yyvsp[-2].number, r_close_this, redir);
;
break;}
case 27:
-#line 368 "./parse.y"
+#line 368 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
redir.dest = 0L;
yyval.redirect = make_redirection (0, r_close_this, redir);
;
break;}
case 28:
-#line 373 "./parse.y"
+#line 373 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
redir.dest = 0L;
yyval.redirect = make_redirection (yyvsp[-2].number, r_close_this, redir);
;
break;}
case 29:
-#line 378 "./parse.y"
+#line 378 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
redir.filename = yyvsp[0].word;
yyval.redirect = make_redirection (1, r_err_and_out, redir);
;
break;}
case 30:
-#line 383 "./parse.y"
+#line 383 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
redir.filename = yyvsp[0].word;
yyval.redirect = make_redirection (yyvsp[-2].number, r_input_output, redir);
;
break;}
case 31:
-#line 388 "./parse.y"
+#line 388 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
redir.filename = yyvsp[0].word;
yyval.redirect = make_redirection (0, r_input_output, redir);
;
break;}
case 32:
-#line 393 "./parse.y"
+#line 393 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
redir.filename = yyvsp[0].word;
yyval.redirect = make_redirection (1, r_output_force, redir);
;
break;}
case 33:
-#line 398 "./parse.y"
+#line 398 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
redir.filename = yyvsp[0].word;
yyval.redirect = make_redirection (yyvsp[-2].number, r_output_force, redir);
;
break;}
case 34:
-#line 405 "./parse.y"
+#line 405 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.element.word = yyvsp[0].word; yyval.element.redirect = 0; ;
break;}
case 35:
-#line 407 "./parse.y"
+#line 407 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.element.word = yyvsp[0].word; yyval.element.redirect = 0; ;
break;}
case 36:
-#line 409 "./parse.y"
+#line 409 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.element.redirect = yyvsp[0].redirect; yyval.element.word = 0; ;
break;}
case 37:
-#line 413 "./parse.y"
+#line 413 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
yyval.redirect = yyvsp[0].redirect;
;
break;}
case 38:
-#line 417 "./parse.y"
+#line 417 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
register REDIRECT *t;
@@ -1350,23 +1350,23 @@ case 38:
;
break;}
case 39:
-#line 428 "./parse.y"
+#line 428 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = make_simple_command (yyvsp[0].element, (COMMAND *)NULL); ;
break;}
case 40:
-#line 430 "./parse.y"
+#line 430 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = make_simple_command (yyvsp[0].element, yyvsp[-1].command); ;
break;}
case 41:
-#line 434 "./parse.y"
+#line 434 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = clean_simple_command (yyvsp[0].command); ;
break;}
case 42:
-#line 436 "./parse.y"
+#line 436 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = yyvsp[0].command; ;
break;}
case 43:
-#line 438 "./parse.y"
+#line 438 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
COMMAND *tc;
@@ -1395,191 +1395,191 @@ case 43:
;
break;}
case 44:
-#line 467 "./parse.y"
+#line 467 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = yyvsp[0].command; ;
break;}
case 45:
-#line 469 "./parse.y"
+#line 469 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = yyvsp[0].command; ;
break;}
case 46:
-#line 471 "./parse.y"
+#line 471 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = make_while_command (yyvsp[-3].command, yyvsp[-1].command); ;
break;}
case 47:
-#line 473 "./parse.y"
+#line 473 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = make_until_command (yyvsp[-3].command, yyvsp[-1].command); ;
break;}
case 48:
-#line 475 "./parse.y"
+#line 475 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = yyvsp[0].command; ;
break;}
case 49:
-#line 477 "./parse.y"
+#line 477 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = yyvsp[0].command; ;
break;}
case 50:
-#line 479 "./parse.y"
+#line 479 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = yyvsp[0].command; ;
break;}
case 51:
-#line 481 "./parse.y"
+#line 481 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = yyvsp[0].command; ;
break;}
case 52:
-#line 483 "./parse.y"
+#line 483 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = yyvsp[0].command; ;
break;}
case 53:
-#line 487 "./parse.y"
+#line 487 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = make_for_command (yyvsp[-4].word, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), yyvsp[-1].command); ;
break;}
case 54:
-#line 489 "./parse.y"
+#line 489 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = make_for_command (yyvsp[-4].word, add_string_to_list ("$@", (WORD_LIST *)NULL), yyvsp[-1].command); ;
break;}
case 55:
-#line 491 "./parse.y"
+#line 491 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = make_for_command (yyvsp[-5].word, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), yyvsp[-1].command); ;
break;}
case 56:
-#line 493 "./parse.y"
+#line 493 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = make_for_command (yyvsp[-5].word, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), yyvsp[-1].command); ;
break;}
case 57:
-#line 495 "./parse.y"
+#line 495 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = make_for_command (yyvsp[-8].word, REVERSE_LIST (yyvsp[-5].word_list, WORD_LIST *), yyvsp[-1].command); ;
break;}
case 58:
-#line 497 "./parse.y"
+#line 497 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = make_for_command (yyvsp[-8].word, REVERSE_LIST (yyvsp[-5].word_list, WORD_LIST *), yyvsp[-1].command); ;
break;}
case 59:
-#line 501 "./parse.y"
+#line 501 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
yyval.command = make_select_command (yyvsp[-4].word, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), yyvsp[-1].command);
;
break;}
case 60:
-#line 505 "./parse.y"
+#line 505 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
yyval.command = make_select_command (yyvsp[-4].word, add_string_to_list ("$@", (WORD_LIST *)NULL), yyvsp[-1].command);
;
break;}
case 61:
-#line 509 "./parse.y"
+#line 509 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
yyval.command = make_select_command (yyvsp[-5].word, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), yyvsp[-1].command);
;
break;}
case 62:
-#line 513 "./parse.y"
+#line 513 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
yyval.command = make_select_command (yyvsp[-5].word, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), yyvsp[-1].command);
;
break;}
case 63:
-#line 517 "./parse.y"
+#line 517 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
yyval.command = make_select_command (yyvsp[-8].word, (WORD_LIST *)reverse_list (yyvsp[-5].word_list), yyvsp[-1].command);
;
break;}
case 64:
-#line 521 "./parse.y"
+#line 521 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
yyval.command = make_select_command (yyvsp[-8].word, (WORD_LIST *)reverse_list (yyvsp[-5].word_list), yyvsp[-1].command);
;
break;}
case 65:
-#line 527 "./parse.y"
+#line 527 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = make_case_command (yyvsp[-4].word, (PATTERN_LIST *)NULL); ;
break;}
case 66:
-#line 529 "./parse.y"
+#line 529 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = make_case_command (yyvsp[-5].word, yyvsp[-2].pattern); ;
break;}
case 67:
-#line 531 "./parse.y"
+#line 531 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = make_case_command (yyvsp[-4].word, yyvsp[-1].pattern); ;
break;}
case 68:
-#line 535 "./parse.y"
+#line 535 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = make_function_def (yyvsp[-4].word, yyvsp[0].command, function_dstart, function_bstart); ;
break;}
case 69:
-#line 539 "./parse.y"
+#line 539 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = make_function_def (yyvsp[-4].word, yyvsp[0].command, function_dstart, function_bstart); ;
break;}
case 70:
-#line 542 "./parse.y"
+#line 542 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = make_function_def (yyvsp[-2].word, yyvsp[0].command, function_dstart, function_bstart); ;
break;}
case 71:
-#line 546 "./parse.y"
+#line 546 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyvsp[-1].command->flags |= CMD_WANT_SUBSHELL; yyval.command = yyvsp[-1].command; ;
break;}
case 72:
-#line 550 "./parse.y"
+#line 550 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = make_if_command (yyvsp[-3].command, yyvsp[-1].command, (COMMAND *)NULL); ;
break;}
case 73:
-#line 552 "./parse.y"
+#line 552 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = make_if_command (yyvsp[-5].command, yyvsp[-3].command, yyvsp[-1].command); ;
break;}
case 74:
-#line 554 "./parse.y"
+#line 554 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = make_if_command (yyvsp[-4].command, yyvsp[-2].command, yyvsp[-1].command); ;
break;}
case 75:
-#line 559 "./parse.y"
+#line 559 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = make_group_command (yyvsp[-1].command); ;
break;}
case 76:
-#line 563 "./parse.y"
+#line 563 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = make_if_command (yyvsp[-2].command, yyvsp[0].command, (COMMAND *)NULL); ;
break;}
case 77:
-#line 565 "./parse.y"
+#line 565 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = make_if_command (yyvsp[-4].command, yyvsp[-2].command, yyvsp[0].command); ;
break;}
case 78:
-#line 567 "./parse.y"
+#line 567 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = make_if_command (yyvsp[-3].command, yyvsp[-1].command, yyvsp[0].command); ;
break;}
case 80:
-#line 572 "./parse.y"
+#line 572 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyvsp[0].pattern->next = yyvsp[-1].pattern; yyval.pattern = yyvsp[0].pattern; ;
break;}
case 81:
-#line 576 "./parse.y"
+#line 576 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.pattern = make_pattern_list (yyvsp[-2].word_list, yyvsp[0].command); ;
break;}
case 82:
-#line 578 "./parse.y"
+#line 578 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.pattern = make_pattern_list (yyvsp[-2].word_list, (COMMAND *)NULL); ;
break;}
case 83:
-#line 580 "./parse.y"
+#line 580 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.pattern = make_pattern_list (yyvsp[-2].word_list, yyvsp[0].command); ;
break;}
case 84:
-#line 582 "./parse.y"
+#line 582 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.pattern = make_pattern_list (yyvsp[-2].word_list, (COMMAND *)NULL); ;
break;}
case 86:
-#line 587 "./parse.y"
+#line 587 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyvsp[-1].pattern->next = yyvsp[-2].pattern; yyval.pattern = yyvsp[-1].pattern; ;
break;}
case 87:
-#line 591 "./parse.y"
+#line 591 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.word_list = make_word_list (yyvsp[0].word, (WORD_LIST *)NULL); ;
break;}
case 88:
-#line 593 "./parse.y"
+#line 593 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.word_list = make_word_list (yyvsp[0].word, yyvsp[-2].word_list); ;
break;}
case 89:
-#line 602 "./parse.y"
+#line 602 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
yyval.command = yyvsp[0].command;
if (need_here_doc)
@@ -1587,13 +1587,13 @@ case 89:
;
break;}
case 91:
-#line 611 "./parse.y"
+#line 611 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
yyval.command = yyvsp[0].command;
;
break;}
case 93:
-#line 618 "./parse.y"
+#line 618 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
if (yyvsp[-2].command->type == cm_connection)
yyval.command = connect_async_list (yyvsp[-2].command, (COMMAND *)NULL, '&');
@@ -1602,15 +1602,15 @@ case 93:
;
break;}
case 95:
-#line 629 "./parse.y"
+#line 629 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = command_connect (yyvsp[-3].command, yyvsp[0].command, AND_AND); ;
break;}
case 96:
-#line 631 "./parse.y"
+#line 631 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = command_connect (yyvsp[-3].command, yyvsp[0].command, OR_OR); ;
break;}
case 97:
-#line 633 "./parse.y"
+#line 633 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
if (yyvsp[-3].command->type == cm_connection)
yyval.command = connect_async_list (yyvsp[-3].command, yyvsp[0].command, '&');
@@ -1619,19 +1619,19 @@ case 97:
;
break;}
case 98:
-#line 640 "./parse.y"
+#line 640 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = command_connect (yyvsp[-3].command, yyvsp[0].command, ';'); ;
break;}
case 99:
-#line 642 "./parse.y"
+#line 642 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = command_connect (yyvsp[-3].command, yyvsp[0].command, ';'); ;
break;}
case 100:
-#line 644 "./parse.y"
+#line 644 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = yyvsp[0].command; ;
break;}
case 106:
-#line 663 "./parse.y"
+#line 663 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
yyval.command = yyvsp[0].command;
if (need_here_doc)
@@ -1639,7 +1639,7 @@ case 106:
;
break;}
case 107:
-#line 669 "./parse.y"
+#line 669 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
if (yyvsp[-1].command->type == cm_connection)
yyval.command = connect_async_list (yyvsp[-1].command, (COMMAND *)NULL, '&');
@@ -1650,7 +1650,7 @@ case 107:
;
break;}
case 108:
-#line 678 "./parse.y"
+#line 678 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
yyval.command = yyvsp[-1].command;
if (need_here_doc)
@@ -1658,15 +1658,15 @@ case 108:
;
break;}
case 109:
-#line 686 "./parse.y"
+#line 686 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = command_connect (yyvsp[-3].command, yyvsp[0].command, AND_AND); ;
break;}
case 110:
-#line 688 "./parse.y"
+#line 688 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = command_connect (yyvsp[-3].command, yyvsp[0].command, OR_OR); ;
break;}
case 111:
-#line 690 "./parse.y"
+#line 690 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
if (yyvsp[-2].command->type == cm_connection)
yyval.command = connect_async_list (yyvsp[-2].command, yyvsp[0].command, '&');
@@ -1675,59 +1675,59 @@ case 111:
;
break;}
case 112:
-#line 697 "./parse.y"
+#line 697 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = command_connect (yyvsp[-2].command, yyvsp[0].command, ';'); ;
break;}
case 113:
-#line 700 "./parse.y"
+#line 700 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = yyvsp[0].command; ;
break;}
case 114:
-#line 704 "./parse.y"
+#line 704 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = yyvsp[0].command; ;
break;}
case 115:
-#line 706 "./parse.y"
+#line 706 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
yyvsp[0].command->flags |= CMD_INVERT_RETURN;
yyval.command = yyvsp[0].command;
;
break;}
case 116:
-#line 711 "./parse.y"
+#line 711 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
yyvsp[0].command->flags |= yyvsp[-1].number;
yyval.command = yyvsp[0].command;
;
break;}
case 117:
-#line 716 "./parse.y"
+#line 716 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
yyvsp[0].command->flags |= yyvsp[-2].number;
yyval.command = yyvsp[0].command;
;
break;}
case 118:
-#line 721 "./parse.y"
+#line 721 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{
yyvsp[0].command->flags |= yyvsp[-1].number|CMD_INVERT_RETURN;
yyval.command = yyvsp[0].command;
;
break;}
case 119:
-#line 729 "./parse.y"
+#line 729 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = command_connect (yyvsp[-3].command, yyvsp[0].command, '|'); ;
break;}
case 120:
-#line 731 "./parse.y"
+#line 731 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.command = yyvsp[0].command; ;
break;}
case 121:
-#line 735 "./parse.y"
+#line 735 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.number = CMD_TIME_PIPELINE; ;
break;}
case 122:
-#line 737 "./parse.y"
+#line 737 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
{ yyval.number = CMD_TIME_PIPELINE|CMD_TIME_POSIX; ;
break;}
}
@@ -1928,7 +1928,7 @@ yyerrhandle:
yystate = yyn;
goto yynewstate;
}
-#line 739 "./parse.y"
+#line 739 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y"
/* Possible states for the parser that require it to do special things. */
@@ -3722,7 +3722,7 @@ read_token_word (character)
#if defined (ARRAY_VARS)
/* Identify possible compound array variable assignment. */
- else if (character == '=')
+ else if (character == '=' && token_index > 0)
{
peek_char = shell_getc (1);
if (peek_char == '(') /* ) */
@@ -4270,6 +4270,7 @@ decode_prompt_string (string)
{
/* Use the value of PWD because it is much more efficient. */
char t_string[PATH_MAX];
+ int tlen;
temp = get_string_value ("PWD");
@@ -4278,11 +4279,17 @@ decode_prompt_string (string)
if (getcwd (t_string, sizeof(t_string)) == 0)
{
t_string[0] = '.';
- t_string[1] = '\0';
+ tlen = 1;
}
+ else
+ tlen = strlen (t_string);
}
else
- strcpy (t_string, temp);
+ {
+ tlen = sizeof (t_string) - 1;
+ strncpy (t_string, temp, tlen);
+ }
+ t_string[tlen] = '\0';
if (c == 'W')
{
@@ -4291,6 +4298,8 @@ decode_prompt_string (string)
strcpy (t_string, t + 1);
}
else
+ /* polite_directory_format is guaranteed to return a string
+ no longer than PATH_MAX - 1 characters. */
strcpy (t_string, polite_directory_format (t_string));
/* If we're going to be expanding the prompt string later,