diff -Nrc2 bash-2.01/CHANGES bash-2.01.1/CHANGES *** bash-2.01/CHANGES Tue Jun 3 11:27:55 1997 --- bash-2.01.1/CHANGES Mon Sep 22 12:53:08 1997 *************** *** 1,2 **** --- 1,105 ---- + 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 -Nrc2 bash-2.01/aclocal.m4 bash-2.01.1/aclocal.m4 *** bash-2.01/aclocal.m4 Wed May 21 11:30:45 1997 --- bash-2.01.1/aclocal.m4 Tue Jul 29 10:52:17 1997 *************** *** 198,203 **** dnl Check for sys_siglist[] or _sys_siglist[] dnl AC_DEFUN(BASH_UNDER_SYS_SIGLIST, ! [AC_MSG_CHECKING([for _sys_siglist in system C library]) AC_CACHE_VAL(bash_cv_under_sys_siglist, [AC_TRY_RUN([ --- 198,221 ---- 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 + #include + #ifdef HAVE_UNISTD_H + #include + #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_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([ *************** *** 207,216 **** #include #endif ! #ifndef _sys_siglist extern char *_sys_siglist[]; #endif main() { ! char *msg = _sys_siglist[2]; exit(msg == 0); }], --- 225,234 ---- #include #endif ! #ifndef UNDER_SYS_SIGLIST_DECLARED extern char *_sys_siglist[]; #endif main() { ! char *msg = (char *)_sys_siglist[2]; exit(msg == 0); }], *************** *** 435,439 **** { _bashfunc pf; ! pf = printf; exit(pf == 0); } --- 453,457 ---- { _bashfunc pf; ! pf = (_bashfunc) printf; exit(pf == 0); } *************** *** 912,916 **** [AC_TRY_COMPILE([#include #include ! extern struct passwd *getpwent();], [struct passwd *z; z = getpwent();], bash_cv_can_redecl_getpw=yes,bash_cv_can_redecl_getpw=no)]) AC_MSG_RESULT($bash_cv_can_redecl_getpw) --- 930,937 ---- [AC_TRY_COMPILE([#include #include ! 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) *************** *** 995,1002 **** 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 else bash_cv_mail_dir=unknown --- 1016,1023 ---- elif test -d /usr/mail; then bash_cv_mail_dir=/usr/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 diff -Nrc2 bash-2.01/bashline.c bash-2.01.1/bashline.c *** bash-2.01/bashline.c Tue Jun 3 11:14:09 1997 --- bash-2.01.1/bashline.c Fri Aug 29 13:54:04 1997 *************** *** 701,706 **** /* 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) in_command_position = 0; --- 701,706 ---- /* Check that we haven't incorrectly flagged a closed command substitution as indicating we're in a command position. */ ! if (in_command_position && ti >= 0 && rl_line_buffer[ti] == '`' && ! *text != '`' && unclosed_pair (rl_line_buffer, 0, "`") == 0) in_command_position = 0; *************** *** 745,749 **** expansion. */ if (!matches && glob_pattern_p (text)) ! matches = completion_matches (text, glob_complete_word); return (matches); --- 745,758 ---- expansion. */ if (!matches && glob_pattern_p (text)) ! { ! 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); *************** *** 1802,1805 **** --- 1811,1815 ---- if (state == 0) { + rl_filename_completion_desired = 1; if (matches) free (matches); diff -Nrc2 bash-2.01/bracecomp.c bash-2.01.1/bracecomp.c *** bash-2.01/bracecomp.c Wed Feb 5 11:39:23 1997 --- bash-2.01.1/bracecomp.c Mon Aug 18 12:32:52 1997 *************** *** 37,40 **** --- 37,42 ---- #include + extern char *backslash_quote (); + /* Find greatest common prefix of two strings. */ static int *************** *** 62,67 **** { int start, end, gcd; ! char *result, *subterm; ! int result_size, flag; flag = 0; --- 64,69 ---- { int start, end, gcd; ! char *result, *subterm, *x; ! int result_size, flag, tlen; flag = 0; *************** *** 69,79 **** if (real_start == real_end) { ! if (array[real_start]) ! return (savestring (array[real_start] + gcd_zero)); ! else ! return (savestring (array[0])); } ! result = xmalloc (result_size = 1); *result = '\0'; --- 71,80 ---- if (real_start == real_end) { ! x = array[real_start] ? backslash_quote (array[real_start] + gcd_zero) ! : backslash_quote (array[0]); ! return x; } ! result = xmalloc (result_size = 16); *result = '\0'; *************** *** 104,116 **** } if (start == end) ! subterm = savestring (array[start] + gcd_zero); else { /* If there is more than one element in the subarray, ! insert the prefix and an opening brace. */ ! result_size += gcd - gcd_zero + 1; result = xrealloc (result, result_size); ! strncat (result, array[start] + gcd_zero, gcd - gcd_zero); strcat (result, "{"); subterm = really_munge_braces (array, start, end + 1, gcd); --- 105,131 ---- } + /* 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) ! { ! 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 (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); ! strcat (result, subterm); ! free (subterm); strcat (result, "{"); subterm = really_munge_braces (array, start, end + 1, gcd); *************** *** 147,150 **** --- 162,167 ---- } + /* 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 () *************** *** 152,164 **** --- 169,187 ---- 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); *************** *** 167,170 **** --- 190,195 ---- 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 -Nrc2 bash-2.01/builtins/Makefile.in bash-2.01.1/builtins/Makefile.in *** bash-2.01/builtins/Makefile.in Tue Apr 1 13:00:42 1997 --- bash-2.01.1/builtins/Makefile.in Mon Sep 22 16:22:27 1997 *************** *** 98,103 **** bashgetopt.o: bashgetopt.c getopt.o: getopt.c ! ulimit.o: ulimit.def pipesize.h pipesize.h: psize.aux --- 98,106 ---- bashgetopt.o: bashgetopt.c getopt.o: getopt.c + evalstring.o: evalstring.c + evalfile.o: evalfile.c ! ulimit.o: ulimit.def ! ulimit.o: pipesize.h pipesize.h: psize.aux *************** *** 150,153 **** --- 153,157 ---- setattr.o: setattr.def shift.o: shift.def + shopt.o: shopt.def source.o: source.def suspend.o: suspend.def diff -Nrc2 bash-2.01/builtins/declare.def bash-2.01.1/builtins/declare.def *** bash-2.01/builtins/declare.def Mon Apr 14 16:56:42 1997 --- bash-2.01.1/builtins/declare.def Tue Jul 1 14:05:10 1997 *************** *** 370,375 **** --- 370,377 ---- 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); diff -Nrc2 bash-2.01/builtins/evalstring.c bash-2.01.1/builtins/evalstring.c *** bash-2.01/builtins/evalstring.c Wed May 14 13:01:31 1997 --- bash-2.01.1/builtins/evalstring.c Mon Sep 22 12:54:29 1997 *************** *** 161,165 **** else { ! dispose_command (command); /* XXX */ continue; } --- 161,167 ---- else { ! #if 0 ! dispose_command (command); /* pe_dispose does this */ ! #endif continue; } *************** *** 193,197 **** if (startup_state == 2 && *bash_input.location.string == '\0' && command->type == cm_simple && !command->redirects && ! !command->value.Simple->redirects) { command->flags |= CMD_NO_FORK; --- 195,200 ---- if (startup_state == 2 && *bash_input.location.string == '\0' && command->type == cm_simple && !command->redirects && ! !command->value.Simple->redirects && ! ((command->flags & CMD_TIME_PIPELINE) == 0)) { command->flags |= CMD_NO_FORK; diff -Nrc2 bash-2.01/builtins/read.def bash-2.01.1/builtins/read.def *** bash-2.01/builtins/read.def Thu Feb 27 12:19:01 1997 --- bash-2.01.1/builtins/read.def Wed Sep 10 17:04:47 1997 *************** *** 47,50 **** --- 47,52 ---- #endif + #include + #include "../shell.h" #include "common.h" *************** *** 56,59 **** --- 58,65 ---- #endif + #if !defined(errno) + extern int errno; + #endif + #define issep(c) (strchr (ifs_chars, (c))) *************** *** 181,186 **** } else ! #endif ! if (read (0, &c, 1) != 1) { eof = 1; --- 187,195 ---- } else ! #endif ! ! while (((retval = read (0, &c, 1)) < 0) && errno == EINTR) ! ; ! if (retval <= 0) { eof = 1; diff -Nrc2 bash-2.01/builtins/setattr.def bash-2.01.1/builtins/setattr.def *** bash-2.01/builtins/setattr.def Thu Mar 6 11:06:57 1997 --- bash-2.01.1/builtins/setattr.def Mon Aug 18 12:01:47 1997 *************** *** 327,331 **** else { ! x = double_quote (value_cell (var)); printf ("%s=%s\n", var->name, x); free (x); --- 327,331 ---- else { ! x = double_quote (value_cell (var) ? value_cell (var) : ""); printf ("%s=%s\n", var->name, x); free (x); *************** *** 367,371 **** if (tv = find_tempenv_variable (name)) { ! var = bind_variable (tv->name, tv->value); dispose_variable (tv); } --- 367,371 ---- if (tv = find_tempenv_variable (name)) { ! var = bind_variable (tv->name, tv->value ? tv->value : ""); dispose_variable (tv); } diff -Nrc2 bash-2.01/builtins/trap.def bash-2.01.1/builtins/trap.def *** bash-2.01/builtins/trap.def Tue Apr 22 14:02:25 1997 --- bash-2.01.1/builtins/trap.def Mon Aug 18 12:07:20 1997 *************** *** 192,196 **** int i; { ! char *t, *p; p = trap_list[i]; --- 192,196 ---- int i; { ! char *t, *p, *sn; p = trap_list[i]; *************** *** 200,206 **** t = (p == (char *)IGNORE_SIG) ? (char *)NULL : single_quote (p); ! printf ("trap -- %s %s\n", t ? t : "''", signal_name (i)); ! if (t) ! free (t); } --- 200,212 ---- t = (p == (char *)IGNORE_SIG) ? (char *)NULL : single_quote (p); ! 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); } diff -Nrc2 bash-2.01/config.h.in bash-2.01.1/config.h.in *** bash-2.01/config.h.in Mon Mar 10 15:18:16 1997 --- bash-2.01.1/config.h.in Tue Jul 29 10:54:26 1997 *************** *** 216,219 **** --- 216,222 ---- #undef SYS_SIGLIST_DECLARED + /* Define if `_sys_siglist' is declared by or . */ + #undef UNDER_SYS_SIGLIST_DECLARED + /* Define to `int' if doesn't define. */ #undef uid_t *************** *** 516,518 **** #endif /* _CONFIG_H_ */ - --- 519,520 ---- diff -Nrc2 bash-2.01/configure bash-2.01.1/configure *** bash-2.01/configure Wed May 21 11:31:21 1997 --- bash-2.01.1/configure Mon Sep 22 12:58:33 1997 *************** *** 1,5 **** #! /bin/sh ! # From configure.in for Bash 2.01, version 1.26, from autoconf version 2.12 --- 1,7 ---- #! /bin/sh ! # From configure.in for Bash 2.01, version 1.28, from autoconf version 2.12 ! ! *************** *** 672,676 **** echo $ac_n "checking host system type""... $ac_c" 1>&6 ! echo "configure:675: checking host system type" >&5 host_alias=$host --- 674,678 ---- echo $ac_n "checking host system type""... $ac_c" 1>&6 ! echo "configure:677: checking host system type" >&5 host_alias=$host *************** *** 706,710 **** 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 sparc-linux*) opt_gnu_malloc=no ;; # sparc running linux; requires ELF *-freebsd*) opt_gnu_malloc=no ;; # they claim it's better --- 708,712 ---- 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 sparc-linux*) opt_gnu_malloc=no ;; # sparc running linux; requires ELF *-freebsd*) opt_gnu_malloc=no ;; # they claim it's better *************** *** 714,718 **** *-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 esac --- 716,720 ---- *-qnx*) opt_gnu_malloc=no ;; # QNX 4.2 *-machten4) opt_gnu_malloc=no ;; # MachTen 4.x ! *-bsdi2.1|*-bsdi3.0) opt_gnu_malloc=no ; : ${CC:=shlicc2} ;; # for loadable builtins esac *************** *** 1050,1054 **** BASHVERS=2.01 ! BASHPATCH=0 echo "Beginning configuration for bash-$BASHVERS" --- 1052,1056 ---- BASHVERS=2.01 ! BASHPATCH=1 echo "Beginning configuration for bash-$BASHVERS" *************** *** 1057,1061 **** 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 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 1059,1063 ---- set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! 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 *************** *** 1086,1090 **** 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 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 1088,1092 ---- set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! 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 *************** *** 1134,1138 **** 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 ac_ext=c --- 1136,1140 ---- echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 ! echo "configure:1139: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c *************** *** 1144,1152 **** cat > conftest.$ac_ext <&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. --- 1146,1154 ---- cat > conftest.$ac_ext <&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. *************** *** 1168,1177 **** 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 "$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 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 1170,1179 ---- fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 ! 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: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 *************** *** 1182,1186 **** #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 ac_cv_prog_gcc=yes else --- 1184,1188 ---- #endif EOF ! 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 *************** *** 1197,1201 **** CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 ! echo "configure:1200: 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 --- 1199,1203 ---- CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 ! 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 *************** *** 1225,1229 **** echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6 ! echo "configure:1228: checking for POSIXized ISC" >&5 if test -d /etc/conf/kconfig.d && grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1 --- 1227,1231 ---- echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6 ! 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 *************** *** 1246,1250 **** 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 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then --- 1248,1252 ---- echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 ! 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 *************** *** 1261,1265 **** # not just through cpp. cat > conftest.$ac_ext < --- 1263,1267 ---- # not just through cpp. cat > conftest.$ac_ext < *************** *** 1267,1271 **** 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; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then --- 1269,1273 ---- EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (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 *************** *** 1278,1282 **** CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < --- 1280,1284 ---- CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < *************** *** 1284,1288 **** 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; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then --- 1286,1290 ---- EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (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 *************** *** 1308,1322 **** 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 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 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; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then --- 1310,1324 ---- ac_safe=`echo "minix/config.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for minix/config.h""... $ac_c" 1>&6 ! 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 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (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 *************** *** 1366,1370 **** 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 if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 1368,1372 ---- if test $ac_cv_prog_gcc = yes; then echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6 ! 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 *************** *** 1372,1376 **** ac_pattern="Autoconf.*'x'" cat > conftest.$ac_ext < --- 1374,1378 ---- ac_pattern="Autoconf.*'x'" cat > conftest.$ac_ext < *************** *** 1390,1394 **** if test $ac_cv_prog_gcc_traditional = no; then cat > conftest.$ac_ext < --- 1392,1396 ---- if test $ac_cv_prog_gcc_traditional = no; then cat > conftest.$ac_ext < *************** *** 1423,1427 **** # ./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 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then --- 1425,1429 ---- # ./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:1428: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then *************** *** 1475,1479 **** 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 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 1477,1481 ---- set dummy ar; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! 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 *************** *** 1503,1507 **** 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 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 1505,1509 ---- set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! 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 *************** *** 1534,1538 **** 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 if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 1536,1540 ---- set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! 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 *************** *** 1564,1568 **** echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 ! echo "configure:1567: 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 --- 1566,1570 ---- echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 ! 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 *************** *** 1594,1603 **** # 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 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 < --- 1596,1605 ---- # for constant arguments. Useless! echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 ! 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 < *************** *** 1606,1610 **** ; return 0; } EOF ! if { (eval echo configure:1609: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ac_cv_header_alloca_h=yes --- 1608,1612 ---- ; return 0; } EOF ! 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 *************** *** 1627,1636 **** echo $ac_n "checking for alloca""... $ac_c" 1>&6 ! echo "configure:1630: 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 <&6 ! 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 <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ac_cv_func_alloca_works=yes --- 1657,1661 ---- ; return 0; } EOF ! 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 *************** *** 1687,1696 **** echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 ! echo "configure:1690: 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 <&6 ! 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 <&6 ! echo "configure:1720: 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 <&6 ! 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 <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" --- 1747,1751 ---- ; return 0; } EOF ! 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" *************** *** 1772,1776 **** echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 ! echo "configure:1775: 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 --- 1774,1778 ---- echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 ! 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 *************** *** 1780,1784 **** else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_c_stack_direction=1 --- 1801,1805 ---- } EOF ! 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 *************** *** 1821,1825 **** echo $ac_n "checking whether getpgrp takes no argument""... $ac_c" 1>&6 ! echo "configure:1824: 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 --- 1823,1827 ---- echo $ac_n "checking whether getpgrp takes no argument""... $ac_c" 1>&6 ! 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 *************** *** 1829,1833 **** else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_func_getpgrp_void=yes --- 1886,1890 ---- EOF ! 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 *************** *** 1908,1912 **** echo $ac_n "checking whether setvbuf arguments are reversed""... $ac_c" 1>&6 ! echo "configure:1911: 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 --- 1910,1914 ---- echo $ac_n "checking whether setvbuf arguments are reversed""... $ac_c" 1>&6 ! 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 *************** *** 1916,1920 **** else cat > conftest.$ac_ext < --- 1918,1922 ---- else cat > conftest.$ac_ext < *************** *** 1930,1934 **** } EOF ! if { (eval echo configure:1933: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_func_setvbuf_reversed=yes --- 1932,1936 ---- } EOF ! 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 *************** *** 1954,1963 **** echo $ac_n "checking for vprintf""... $ac_c" 1>&6 ! echo "configure:1957: 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 <&6 ! 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 <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_vprintf=yes" --- 1984,1988 ---- ; return 0; } EOF ! 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" *************** *** 2006,2015 **** 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 if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! 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 <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func__doprnt=yes" --- 2036,2040 ---- ; return 0; } EOF ! 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" *************** *** 2059,2063 **** 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 if eval "test \"`echo '$''{'ac_cv_func_wait3_rusage'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2061,2065 ---- echo $ac_n "checking for wait3 that fills in rusage""... $ac_c" 1>&6 ! 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 *************** *** 2067,2071 **** else cat > conftest.$ac_ext < --- 2069,2073 ---- else cat > conftest.$ac_ext < *************** *** 2098,2102 **** } EOF ! if { (eval echo configure:2101: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_func_wait3_rusage=yes --- 2100,2104 ---- } EOF ! 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 *************** *** 2121,2125 **** echo $ac_n "checking for working strcoll""... $ac_c" 1>&6 ! echo "configure:2124: 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 --- 2123,2127 ---- echo $ac_n "checking for working strcoll""... $ac_c" 1>&6 ! 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 *************** *** 2129,2133 **** else cat > conftest.$ac_ext < --- 2131,2135 ---- else cat > conftest.$ac_ext < *************** *** 2139,2143 **** } EOF ! if { (eval echo configure:2142: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_func_strcoll_works=yes --- 2141,2145 ---- } EOF ! 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 *************** *** 2164,2170 **** 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 cat > conftest.$ac_ext < --- 2166,2172 ---- 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:2169: checking for declaration of vprintf in stdio.h" >&5 cat > conftest.$ac_ext < *************** *** 2187,2196 **** echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 ! echo "configure:2190: 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 < --- 2189,2198 ---- echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 ! 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 < *************** *** 2209,2213 **** ; return 0; } EOF ! if { (eval echo configure:2212: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void --- 2211,2215 ---- ; return 0; } EOF ! if { (eval echo configure:2214: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void *************** *** 2229,2238 **** echo $ac_n "checking for __setostype""... $ac_c" 1>&6 ! echo "configure:2232: 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 <&6 ! 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 <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func___setostype=yes" --- 2259,2263 ---- ; return 0; } EOF ! 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" *************** *** 2280,2289 **** echo $ac_n "checking for wait3""... $ac_c" 1>&6 ! echo "configure:2283: 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 <&6 ! 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 <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_wait3=yes" --- 2310,2314 ---- ; return 0; } EOF ! 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" *************** *** 2332,2341 **** echo $ac_n "checking for mkfifo""... $ac_c" 1>&6 ! echo "configure:2335: 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 <&6 ! 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 <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_mkfifo=yes" --- 2362,2366 ---- ; return 0; } EOF ! 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" *************** *** 2392,2401 **** do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:2395: 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 <&6 ! 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 <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" --- 2422,2426 ---- ; return 0; } EOF ! 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" *************** *** 2450,2459 **** do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:2453: 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 <&6 ! 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 <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" --- 2480,2484 ---- ; return 0; } EOF ! 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" *************** *** 2507,2521 **** 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 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 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; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then --- 2509,2523 ---- ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! 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 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (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 *************** *** 2546,2555 **** do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:2549: 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 <&6 ! 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 <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" --- 2576,2580 ---- ; return 0; } EOF ! 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" *************** *** 2601,2605 **** 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 ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then --- 2603,2607 ---- if test "$ac_cv_func_bindtextdomain" = "no"; then echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6 ! 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 *************** *** 2609,2613 **** LIBS="-lintl $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" --- 2622,2626 ---- ; return 0; } EOF ! 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" *************** *** 2651,2660 **** do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:2654: 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 <&6 ! 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 <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" --- 2681,2685 ---- ; return 0; } EOF ! 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" *************** *** 2707,2711 **** echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 ! echo "configure:2710: 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 --- 2709,2713 ---- echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 ! 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 *************** *** 2715,2719 **** LIBS="-ldl $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" --- 2728,2732 ---- ; return 0; } EOF ! 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" *************** *** 2756,2765 **** do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:2759: 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 <&6 ! 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 <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" --- 2786,2790 ---- ; return 0; } EOF ! 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" *************** *** 2810,2819 **** 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 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 < --- 2812,2821 ---- echo $ac_n "checking for sys_siglist declaration in signal.h or unistd.h""... $ac_c" 1>&6 ! 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 < *************** *** 2827,2831 **** ; return 0; } EOF ! if { (eval echo configure:2830: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_decl_sys_siglist=yes --- 2829,2833 ---- ; return 0; } EOF ! if { (eval echo configure:2832: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_decl_sys_siglist=yes *************** *** 2853,2862 **** 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 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 < --- 2855,2864 ---- ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6 ! 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 < *************** *** 2866,2870 **** ; return 0; } EOF ! if { (eval echo configure:2869: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval "ac_cv_header_dirent_$ac_safe=yes" --- 2868,2872 ---- ; return 0; } EOF ! 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" *************** *** 2891,2895 **** 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 ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then --- 2893,2897 ---- if test $ac_header_dirent = dirent.h; then echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6 ! 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 *************** *** 2899,2903 **** LIBS="-ldir $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" --- 2912,2916 ---- ; return 0; } EOF ! 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" *************** *** 2932,2936 **** else echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6 ! echo "configure:2935: 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 --- 2934,2938 ---- else echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6 ! 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 *************** *** 2940,2944 **** LIBS="-lx $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" --- 2953,2957 ---- ; return 0; } EOF ! 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" *************** *** 2974,2983 **** 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 if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < --- 2976,2985 ---- echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 ! 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 < *************** *** 2988,2992 **** ; return 0; } EOF ! if { (eval echo configure:2991: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_time=yes --- 2990,2994 ---- ; return 0; } EOF ! if { (eval echo configure:2993: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_time=yes *************** *** 3014,3028 **** 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 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 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; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then --- 3016,3030 ---- ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! 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 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (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 *************** *** 3056,3070 **** 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 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 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; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then --- 3058,3072 ---- ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! 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 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (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 *************** *** 3099,3103 **** else echo $ac_n "checking for socket library""... $ac_c" 1>&6 ! echo "configure:3102: checking for socket library" >&5 _bash_needmsg=yes fi --- 3101,3105 ---- else echo $ac_n "checking for socket library""... $ac_c" 1>&6 ! echo "configure:3104: checking for socket library" >&5 _bash_needmsg=yes fi *************** *** 3106,3110 **** else echo $ac_n "checking for getpeername in -lsocket""... $ac_c" 1>&6 ! echo "configure:3109: 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 --- 3108,3112 ---- else echo $ac_n "checking for getpeername in -lsocket""... $ac_c" 1>&6 ! 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 *************** *** 3114,3118 **** LIBS="-lsocket -lnsl $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" --- 3127,3131 ---- ; return 0; } EOF ! 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" *************** *** 3158,3162 **** else echo $ac_n "checking for libnsl""... $ac_c" 1>&6 ! echo "configure:3161: checking for libnsl" >&5 _bash_needmsg=yes fi --- 3160,3164 ---- else echo $ac_n "checking for libnsl""... $ac_c" 1>&6 ! echo "configure:3163: checking for libnsl" >&5 _bash_needmsg=yes fi *************** *** 3165,3169 **** else echo $ac_n "checking for t_open in -lnsl""... $ac_c" 1>&6 ! echo "configure:3168: 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 --- 3167,3171 ---- else echo $ac_n "checking for t_open in -lnsl""... $ac_c" 1>&6 ! 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 *************** *** 3173,3177 **** LIBS="-lnsl $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" --- 3186,3190 ---- ; return 0; } EOF ! 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" *************** *** 3229,3238 **** 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 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 < --- 3231,3240 ---- echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 ! 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 < *************** *** 3263,3267 **** 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 if eval "test \"`echo '$''{'ac_cv_type_getgroups'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 3265,3269 ---- echo $ac_n "checking type of array argument to getgroups""... $ac_c" 1>&6 ! 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 *************** *** 3271,3275 **** else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_type_getgroups=gid_t --- 3298,3302 ---- EOF ! 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 *************** *** 3310,3314 **** if test $ac_cv_type_getgroups = cross; then cat > conftest.$ac_ext < --- 3312,3316 ---- if test $ac_cv_type_getgroups = cross; then cat > conftest.$ac_ext < *************** *** 3334,3343 **** echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 ! echo "configure:3337: 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 < --- 3336,3345 ---- echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 ! 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 < *************** *** 3347,3351 **** 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; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then --- 3349,3353 ---- EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (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 *************** *** 3364,3368 **** # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < --- 3366,3370 ---- # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < *************** *** 3382,3386 **** # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < --- 3384,3388 ---- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < *************** *** 3403,3407 **** else cat > conftest.$ac_ext < --- 3405,3409 ---- else cat > conftest.$ac_ext < *************** *** 3414,3418 **** EOF ! if { (eval echo configure:3417: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then : --- 3416,3420 ---- EOF ! if { (eval echo configure:3419: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then : *************** *** 3438,3447 **** echo $ac_n "checking for off_t""... $ac_c" 1>&6 ! echo "configure:3441: 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 < --- 3440,3449 ---- echo $ac_n "checking for off_t""... $ac_c" 1>&6 ! 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 < *************** *** 3471,3480 **** echo $ac_n "checking for mode_t""... $ac_c" 1>&6 ! echo "configure:3474: 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 < --- 3473,3482 ---- echo $ac_n "checking for mode_t""... $ac_c" 1>&6 ! 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 < *************** *** 3504,3513 **** 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 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 < --- 3506,3515 ---- echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 ! 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 < *************** *** 3538,3547 **** echo $ac_n "checking for pid_t""... $ac_c" 1>&6 ! echo "configure:3541: 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 < --- 3540,3549 ---- echo $ac_n "checking for pid_t""... $ac_c" 1>&6 ! 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 < *************** *** 3571,3580 **** echo $ac_n "checking for size_t""... $ac_c" 1>&6 ! echo "configure:3574: 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 < --- 3573,3582 ---- echo $ac_n "checking for size_t""... $ac_c" 1>&6 ! 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 < *************** *** 3604,3613 **** echo $ac_n "checking for time_t""... $ac_c" 1>&6 ! echo "configure:3607: 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 < --- 3606,3615 ---- echo $ac_n "checking for time_t""... $ac_c" 1>&6 ! 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 < *************** *** 3638,3647 **** echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 ! echo "configure:3641: 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 < --- 3640,3649 ---- echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 ! 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 < *************** *** 3660,3664 **** ; return 0; } EOF ! if { (eval echo configure:3663: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void --- 3662,3666 ---- ; return 0; } EOF ! if { (eval echo configure:3665: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void *************** *** 3680,3689 **** 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 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 < --- 3682,3691 ---- echo $ac_n "checking whether stat file-mode macros are broken""... $ac_c" 1>&6 ! 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 < *************** *** 3736,3740 **** cat > conftest.$ac_ext < --- 3738,3742 ---- cat > conftest.$ac_ext < *************** *** 3749,3753 **** if test -z "$bash_cv_struct_timeval"; then cat > conftest.$ac_ext < --- 3751,3755 ---- if test -z "$bash_cv_struct_timeval"; then cat > conftest.$ac_ext < *************** *** 3772,3776 **** echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6 ! echo "configure:3775: 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 --- 3774,3778 ---- echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6 ! 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 *************** *** 3779,3783 **** # See if sys/param.h defines the BYTE_ORDER macro. cat > conftest.$ac_ext < --- 3781,3785 ---- # See if sys/param.h defines the BYTE_ORDER macro. cat > conftest.$ac_ext < *************** *** 3790,3798 **** ; return 0; } EOF ! if { (eval echo configure:3793: \"$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 < --- 3792,3800 ---- ; return 0; } EOF ! 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 < *************** *** 3805,3809 **** ; return 0; } EOF ! if { (eval echo configure:3808: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_bigendian=yes --- 3807,3811 ---- ; return 0; } EOF ! if { (eval echo configure:3810: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_bigendian=yes *************** *** 3825,3829 **** else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_c_bigendian=no --- 3840,3844 ---- } EOF ! 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 *************** *** 3865,3869 **** ac_msg="whether #! works in shell scripts" echo $ac_n "checking $ac_msg""... $ac_c" 1>&6 ! echo "configure:3868: checking $ac_msg" >&5 if eval "test \"`echo '$''{'ac_cv_sys_interpreter'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 3867,3871 ---- ac_msg="whether #! works in shell scripts" echo $ac_n "checking $ac_msg""... $ac_c" 1>&6 ! 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 *************** *** 3891,3895 **** fi echo $ac_n "checking for restartable system calls""... $ac_c" 1>&6 ! echo "configure:3894: 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 --- 3893,3897 ---- fi echo $ac_n "checking for restartable system calls""... $ac_c" 1>&6 ! 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 *************** *** 3899,3903 **** else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_sys_restartable_syscalls=yes --- 3919,3923 ---- EOF ! 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 *************** *** 3942,3951 **** 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 if eval "test \"`echo '$''{'bash_cv_func_lstat'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! 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 <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* bash_cv_func_lstat=yes --- 3959,3963 ---- ; return 0; } EOF ! 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 *************** *** 3980,3984 **** 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 if eval "test \"`echo '$''{'bash_cv_dup2_broken'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 3982,3986 ---- echo $ac_n "checking if dup2 fails to clear the close-on-exec flag""... $ac_c" 1>&6 ! 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 *************** *** 3988,3992 **** else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then bash_cv_dup2_broken=yes --- 4010,4014 ---- EOF ! 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 *************** *** 4033,4037 **** echo $ac_n "checking whether pgrps need synchronization""... $ac_c" 1>&6 ! echo "configure:4036: 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 --- 4035,4039 ---- echo $ac_n "checking whether pgrps need synchronization""... $ac_c" 1>&6 ! 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 *************** *** 4041,4045 **** else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then bash_cv_pgrp_pipe=no --- 4095,4099 ---- EOF ! 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 *************** *** 4118,4122 **** echo $ac_n "checking for type of signal functions""... $ac_c" 1>&6 ! echo "configure:4121: 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 --- 4120,4124 ---- echo $ac_n "checking for type of signal functions""... $ac_c" 1>&6 ! 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 *************** *** 4124,4128 **** cat > conftest.$ac_ext < --- 4126,4130 ---- cat > conftest.$ac_ext < *************** *** 4137,4141 **** ; return 0; } EOF ! if { (eval echo configure:4140: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* bash_cv_signal_vintage=posix --- 4139,4143 ---- ; return 0; } EOF ! 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 *************** *** 4146,4150 **** cat > conftest.$ac_ext < --- 4148,4152 ---- cat > conftest.$ac_ext < *************** *** 4156,4160 **** ; return 0; } EOF ! if { (eval echo configure:4159: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* bash_cv_signal_vintage=4.2bsd --- 4158,4162 ---- ; return 0; } EOF ! 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 *************** *** 4165,4169 **** cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* bash_cv_signal_vintage=svr3 --- 4180,4184 ---- ; return 0; } EOF ! 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 *************** *** 4218,4227 **** 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 if eval "test \"`echo '$''{'bash_cv_sys_errlist'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < --- 4220,4229 ---- echo $ac_n "checking for sys_errlist and sys_nerr""... $ac_c" 1>&6 ! 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 < *************** *** 4232,4236 **** ; return 0; } EOF ! if { (eval echo configure:4235: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* bash_cv_sys_errlist=yes --- 4234,4238 ---- ; return 0; } EOF ! 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 *************** *** 4253,4257 **** 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 if eval "test \"`echo '$''{'bash_cv_sys_siglist'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 4255,4259 ---- echo $ac_n "checking for sys_siglist in system C library""... $ac_c" 1>&6 ! 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 *************** *** 4261,4265 **** else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then bash_cv_sys_siglist=yes --- 4280,4284 ---- } EOF ! 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 *************** *** 4299,4304 **** 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 if eval "test \"`echo '$''{'bash_cv_under_sys_siglist'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 4301,4344 ---- 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 < + #include + #ifdef HAVE_UNISTD_H + #include + #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: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 *************** *** 4308,4312 **** else cat > conftest.$ac_ext < conftest.$ac_ext < #endif ! #ifndef _sys_siglist extern char *_sys_siglist[]; #endif main() { ! char *msg = _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 then bash_cv_under_sys_siglist=yes --- 4356,4369 ---- #include #endif ! #ifndef UNDER_SYS_SIGLIST_DECLARED extern char *_sys_siglist[]; #endif main() { ! char *msg = (char *)_sys_siglist[2]; exit(msg == 0); } EOF ! 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 *************** *** 4348,4357 **** 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 if eval "test \"`echo '$''{'bash_cv_void_sighandler'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < --- 4388,4397 ---- echo $ac_n "checking whether signal handlers are of type void""... $ac_c" 1>&6 ! 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 < *************** *** 4368,4372 **** ; return 0; } EOF ! if { (eval echo configure:4371: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bash_cv_void_sighandler=yes --- 4408,4412 ---- ; return 0; } EOF ! if { (eval echo configure:4411: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bash_cv_void_sighandler=yes *************** *** 4388,4397 **** echo $ac_n "checking for clock_t""... $ac_c" 1>&6 ! echo "configure:4391: 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 < --- 4428,4437 ---- echo $ac_n "checking for clock_t""... $ac_c" 1>&6 ! 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 < *************** *** 4424,4433 **** echo $ac_n "checking for sigset_t""... $ac_c" 1>&6 ! echo "configure:4427: 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 < --- 4464,4473 ---- echo $ac_n "checking for sigset_t""... $ac_c" 1>&6 ! 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 < *************** *** 4460,4469 **** echo $ac_n "checking for quad_t""... $ac_c" 1>&6 ! echo "configure:4463: 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 < --- 4500,4509 ---- echo $ac_n "checking for quad_t""... $ac_c" 1>&6 ! 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 < *************** *** 4501,4510 **** 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 if eval "test \"`echo '$''{'bash_cv_type_rlimit'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < --- 4541,4550 ---- echo $ac_n "checking for size and type of struct rlimit fields""... $ac_c" 1>&6 ! 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 < *************** *** 4513,4517 **** ; return 0; } EOF ! if { (eval echo configure:4516: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bash_cv_type_rlimit=rlim_t --- 4553,4557 ---- ; return 0; } EOF ! if { (eval echo configure:4556: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bash_cv_type_rlimit=rlim_t *************** *** 4525,4529 **** else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then bash_cv_type_rlimit=quad_t --- 4581,4585 ---- } EOF ! 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 *************** *** 4573,4582 **** 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 if eval "test \"`echo '$''{'bash_cv_termios_ldisc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < --- 4613,4622 ---- echo $ac_n "checking for a c_line member of struct termios""... $ac_c" 1>&6 ! 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 < *************** *** 4586,4590 **** ; return 0; } EOF ! if { (eval echo configure:4589: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bash_cv_termios_ldisc=yes --- 4626,4630 ---- ; return 0; } EOF ! if { (eval echo configure:4629: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bash_cv_termios_ldisc=yes *************** *** 4606,4615 **** 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 if eval "test \"`echo '$''{'bash_cv_termio_ldisc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < --- 4646,4655 ---- echo $ac_n "checking for a c_line member of struct termio""... $ac_c" 1>&6 ! 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 < *************** *** 4619,4623 **** ; return 0; } EOF ! if { (eval echo configure:4622: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bash_cv_termio_ldisc=yes --- 4659,4663 ---- ; return 0; } EOF ! if { (eval echo configure:4662: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bash_cv_termio_ldisc=yes *************** *** 4640,4649 **** 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 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 <&6 ! 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 <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bash_cv_dirent_has_dino=yes --- 4714,4718 ---- ; return 0; } EOF ! if { (eval echo configure:4717: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bash_cv_dirent_has_dino=yes *************** *** 4696,4705 **** 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 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 <&6 ! 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 <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bash_cv_dirent_has_d_fileno=yes --- 4770,4774 ---- ; return 0; } EOF ! 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 *************** *** 4751,4760 **** 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 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 < --- 4791,4800 ---- echo $ac_n "checking for struct winsize in sys/ioctl.h""... $ac_c" 1>&6 ! 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 < *************** *** 4764,4768 **** ; return 0; } EOF ! if { (eval echo configure:4767: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bash_cv_struct_winsize_in_ioctl=yes --- 4804,4808 ---- ; return 0; } EOF ! 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 *************** *** 4786,4795 **** echo $ac_n "checking for the existance of strsignal""... $ac_c" 1>&6 ! echo "configure:4789: 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 < --- 4826,4835 ---- echo $ac_n "checking for the existance of strsignal""... $ac_c" 1>&6 ! 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 < *************** *** 4799,4803 **** ; return 0; } EOF ! if { (eval echo configure:4802: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* bash_cv_have_strsignal=yes --- 4839,4843 ---- ; return 0; } EOF ! 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 *************** *** 4820,4824 **** echo $ac_n "checking if opendir() opens non-directories""... $ac_c" 1>&6 ! echo "configure:4823: 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 --- 4860,4864 ---- echo $ac_n "checking if opendir() opens non-directories""... $ac_c" 1>&6 ! 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 *************** *** 4828,4832 **** else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then bash_cv_opendir_not_robust=yes --- 4904,4908 ---- } EOF ! 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 *************** *** 4887,4891 **** echo $ac_n "checking for declaration of printf in ""... $ac_c" 1>&6 ! echo "configure:4890: checking for declaration of printf in " >&5 if eval "test \"`echo '$''{'bash_cv_printf_declared'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 4927,4931 ---- echo $ac_n "checking for declaration of printf in ""... $ac_c" 1>&6 ! echo "configure:4930: checking for declaration of printf in " >&5 if eval "test \"`echo '$''{'bash_cv_printf_declared'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 4895,4899 **** else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then bash_cv_printf_declared=yes --- 4947,4956 ---- { _bashfunc pf; ! pf = (_bashfunc) printf; exit(pf == 0); } EOF ! 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 *************** *** 4935,4939 **** 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 if eval "test \"`echo '$''{'bash_cv_ulimit_maxfds'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 4975,4979 ---- echo $ac_n "checking whether ulimit can substitute for getdtablesize""... $ac_c" 1>&6 ! 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 *************** *** 4943,4947 **** else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then bash_cv_ulimit_maxfds=yes --- 4993,4997 ---- EOF ! 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 *************** *** 4976,4980 **** 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 if eval "test \"`echo '$''{'bash_cv_getenv_redef'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 5016,5020 ---- echo $ac_n "checking to see if getenv can be redefined""... $ac_c" 1>&6 ! 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 *************** *** 4984,4988 **** else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then bash_cv_getenv_redef=yes --- 5059,5063 ---- EOF ! 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 *************** *** 5042,5046 **** echo $ac_n "checking if getcwd() calls popen()""... $ac_c" 1>&6 ! echo "configure:5045: 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 --- 5082,5086 ---- echo $ac_n "checking if getcwd() calls popen()""... $ac_c" 1>&6 ! 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 *************** *** 5050,5054 **** else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then bash_cv_getcwd_calls_popen=no --- 5145,5149 ---- EOF ! 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 *************** *** 5128,5137 **** echo $ac_n "checking for declaration of sbrk in ""... $ac_c" 1>&6 ! echo "configure:5131: checking for declaration of sbrk in " >&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 < --- 5168,5177 ---- echo $ac_n "checking for declaration of sbrk in ""... $ac_c" 1>&6 ! echo "configure:5171: checking for declaration of sbrk in " >&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 < *************** *** 5159,5163 **** 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 if eval "test \"`echo '$''{'bash_cv_func_sigsetjmp'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 5199,5203 ---- echo $ac_n "checking for presence of POSIX-style sigsetjmp/siglongjmp""... $ac_c" 1>&6 ! 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 *************** *** 5167,5171 **** else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then bash_cv_func_sigsetjmp=present --- 5248,5252 ---- } EOF ! 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 *************** *** 5233,5237 **** 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 if eval "test \"`echo '$''{'bash_cv_func_strcoll_broken'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 5273,5277 ---- echo $ac_n "checking whether or not strcoll and strcmp differ""... $ac_c" 1>&6 ! 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 *************** *** 5241,5245 **** else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then bash_cv_func_strcoll_broken=yes --- 5320,5324 ---- EOF ! 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 *************** *** 5307,5311 **** 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 if eval "test \"`echo '$''{'bash_cv_must_reinstall_sighandlers'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 5347,5351 ---- echo $ac_n "checking if signal handlers must be reinstalled when invoked""... $ac_c" 1>&6 ! 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 *************** *** 5315,5319 **** else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then bash_cv_must_reinstall_sighandlers=no --- 5402,5406 ---- EOF ! 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 *************** *** 5386,5390 **** 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 if eval "test \"`echo '$''{'bash_cv_job_control_missing'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 5426,5430 ---- echo $ac_n "checking for presence of necessary job control definitions""... $ac_c" 1>&6 ! 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 *************** *** 5394,5398 **** else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then bash_cv_job_control_missing=present --- 5481,5485 ---- } EOF ! 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 *************** *** 5465,5469 **** echo $ac_n "checking for presence of named pipes""... $ac_c" 1>&6 ! echo "configure:5468: 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 --- 5505,5509 ---- echo $ac_n "checking for presence of named pipes""... $ac_c" 1>&6 ! 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 *************** *** 5473,5477 **** else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then bash_cv_sys_named_pipes=present --- 5547,5551 ---- } EOF ! 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 *************** *** 5532,5541 **** 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 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 < --- 5572,5581 ---- echo $ac_n "checking for TIOCGWINSZ in sys/ioctl.h""... $ac_c" 1>&6 ! 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 < *************** *** 5545,5549 **** ; return 0; } EOF ! if { (eval echo configure:5548: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bash_cv_tiocgwinsz_in_ioctl=yes --- 5585,5589 ---- ; return 0; } EOF ! if { (eval echo configure:5588: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bash_cv_tiocgwinsz_in_ioctl=yes *************** *** 5566,5575 **** 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 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 < --- 5606,5615 ---- echo $ac_n "checking for TIOCSTAT in sys/ioctl.h""... $ac_c" 1>&6 ! 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 < *************** *** 5579,5583 **** ; return 0; } EOF ! if { (eval echo configure:5582: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bash_cv_tiocstat_in_ioctl=yes --- 5619,5623 ---- ; return 0; } EOF ! if { (eval echo configure:5622: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bash_cv_tiocstat_in_ioctl=yes *************** *** 5600,5609 **** 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 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 < --- 5640,5649 ---- echo $ac_n "checking for FIONREAD in sys/ioctl.h""... $ac_c" 1>&6 ! 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 < *************** *** 5613,5617 **** ; return 0; } EOF ! if { (eval echo configure:5616: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bash_cv_fionread_in_ioctl=yes --- 5653,5657 ---- ; return 0; } EOF ! if { (eval echo configure:5656: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bash_cv_fionread_in_ioctl=yes *************** *** 5635,5644 **** 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 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 < --- 5675,5684 ---- echo $ac_n "checking for speed_t in sys/types.h""... $ac_c" 1>&6 ! 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 < *************** *** 5647,5651 **** ; return 0; } EOF ! if { (eval echo configure:5650: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bash_cv_speed_t_in_sys_types=yes --- 5687,5691 ---- ; return 0; } EOF ! 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 *************** *** 5668,5686 **** 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 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 < #include extern struct passwd *getpwent(); int main() { ! struct passwd *z; z = getpwent(); ; return 0; } EOF ! if { (eval echo configure:5685: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bash_cv_can_redecl_getpw=yes --- 5708,5728 ---- echo $ac_n "checking whether programs are able to redeclare getpw functions""... $ac_c" 1>&6 ! 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 < #include extern struct passwd *getpwent(); + extern struct passwd *getpwuid(); + extern struct passwd *getpwnam(); int main() { ! struct passwd *z; z = getpwent(); z = getpwuid(0); z = getpwnam("root"); ; return 0; } EOF ! if { (eval echo configure:5727: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bash_cv_can_redecl_getpw=yes *************** *** 5705,5714 **** 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 if eval "test \"`echo '$''{'bash_cv_kernel_rlimit'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! 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 <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bash_cv_kernel_rlimit=no --- 5765,5769 ---- ; return 0; } EOF ! if { (eval echo configure:5768: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bash_cv_kernel_rlimit=no *************** *** 5731,5735 **** rm -rf conftest* cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bash_cv_kernel_rlimit=yes --- 5788,5792 ---- ; return 0; } EOF ! if { (eval echo configure:5791: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bash_cv_kernel_rlimit=yes *************** *** 5780,5784 **** 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 _bash_needmsg= fi --- 5822,5826 ---- else echo $ac_n "checking which library has the termcap functions""... $ac_c" 1>&6 ! echo "configure:5825: checking which library has the termcap functions" >&5 _bash_needmsg= fi *************** *** 5787,5791 **** else echo $ac_n "checking for tgetent in -ltermcap""... $ac_c" 1>&6 ! echo "configure:5790: 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 --- 5829,5833 ---- else echo $ac_n "checking for tgetent in -ltermcap""... $ac_c" 1>&6 ! 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 *************** *** 5795,5799 **** LIBS="-ltermcap $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" --- 5848,5852 ---- ; return 0; } EOF ! 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" *************** *** 5825,5829 **** 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 ac_lib_var=`echo curses'_'tgetent | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then --- 5867,5871 ---- echo "$ac_t""no" 1>&6 echo $ac_n "checking for tgetent in -lcurses""... $ac_c" 1>&6 ! 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 *************** *** 5833,5837 **** LIBS="-lcurses $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" --- 5886,5890 ---- ; return 0; } EOF ! 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" *************** *** 5863,5867 **** 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 ac_lib_var=`echo ncurses'_'tgetent | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then --- 5905,5909 ---- echo "$ac_t""no" 1>&6 echo $ac_n "checking for tgetent in -lncurses""... $ac_c" 1>&6 ! 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 *************** *** 5871,5875 **** LIBS="-lncurses $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" --- 5924,5928 ---- ; return 0; } EOF ! 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" *************** *** 5911,5915 **** 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 fi echo "$ac_t""using $bash_cv_termcap_lib" 1>&6 --- 5953,5957 ---- if test "X$_bash_needmsg" = "Xyes"; then echo $ac_n "checking which library has the termcap functions""... $ac_c" 1>&6 ! echo "configure:5956: checking which library has the termcap functions" >&5 fi echo "$ac_t""using $bash_cv_termcap_lib" 1>&6 *************** *** 5934,5938 **** echo $ac_n "checking whether /dev/fd is available""... $ac_c" 1>&6 ! echo "configure:5937: 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 --- 5976,5980 ---- echo $ac_n "checking whether /dev/fd is available""... $ac_c" 1>&6 ! 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 *************** *** 5970,5974 **** echo $ac_n "checking for default mail directory""... $ac_c" 1>&6 ! echo "configure:5973: 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 --- 6012,6016 ---- echo $ac_n "checking for default mail directory""... $ac_c" 1>&6 ! 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 *************** *** 5978,5985 **** 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 else bash_cv_mail_dir=unknown --- 6020,6027 ---- elif test -d /usr/mail; then bash_cv_mail_dir=/usr/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 *************** *** 6038,6042 **** case "$host_os" in ! sysv4.2) cat >> confdefs.h <<\EOF #define SVR4_2 1 EOF --- 6080,6084 ---- case "$host_os" in ! sysv4.2*) cat >> confdefs.h <<\EOF #define SVR4_2 1 EOF diff -Nrc2 bash-2.01/configure.in bash-2.01.1/configure.in *** bash-2.01/configure.in Thu Apr 24 09:05:20 1997 --- bash-2.01.1/configure.in Tue Jul 29 10:55:31 1997 *************** *** 7,11 **** dnl checks for version info ! AC_REVISION([for Bash 2.01, version 1.26, from autoconf version] AC_ACVERSION)dnl AC_INIT(shell.h) --- 7,11 ---- dnl checks for version info ! AC_REVISION([for Bash 2.01, version 1.28, from autoconf version] AC_ACVERSION)dnl AC_INIT(shell.h) *************** *** 39,43 **** 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 sparc-linux*) opt_gnu_malloc=no ;; # sparc running linux; requires ELF *-freebsd*) opt_gnu_malloc=no ;; # they claim it's better --- 39,43 ---- 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 sparc-linux*) opt_gnu_malloc=no ;; # sparc running linux; requires ELF *-freebsd*) opt_gnu_malloc=no ;; # they claim it's better *************** *** 47,51 **** *-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 esac --- 47,51 ---- *-qnx*) opt_gnu_malloc=no ;; # QNX 4.2 *-machten4) opt_gnu_malloc=no ;; # MachTen 4.x ! *-bsdi2.1|*-bsdi3.0) opt_gnu_malloc=no ; : ${CC:=shlicc2} ;; # for loadable builtins esac *************** *** 457,461 **** case "$host_os" in ! sysv4.2) AC_DEFINE(SVR4_2) AC_DEFINE(SVR4) ;; sysv4*) AC_DEFINE(SVR4) ;; --- 457,461 ---- case "$host_os" in ! sysv4.2*) AC_DEFINE(SVR4_2) AC_DEFINE(SVR4) ;; sysv4*) AC_DEFINE(SVR4) ;; diff -Nrc2 bash-2.01/doc/Makefile.in bash-2.01.1/doc/Makefile.in *** bash-2.01/doc/Makefile.in Thu Jan 30 16:12:33 1997 --- bash-2.01.1/doc/Makefile.in Mon Jun 9 10:35:50 1997 *************** *** 143,147 **** installdirs: -test -d $(man1dir) || $(SHELL) ${MKDIRS} $(man1dir) ! -test -d $(man3dir) || $(SHELL) ${MKDIRS} $(man3dir) -test -d $(infodir) || $(SHELL) ${MKDIRS} $(infodir) --- 143,148 ---- installdirs: -test -d $(man1dir) || $(SHELL) ${MKDIRS} $(man1dir) ! # 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) diff -Nrc2 bash-2.01/doc/bashref.info bash-2.01.1/doc/bashref.info *** bash-2.01/doc/bashref.info Mon May 19 12:57:34 1997 --- bash-2.01.1/doc/bashref.info Mon Jul 21 13:58:25 1997 *************** *** 1,4 **** ! This is Info file bashref.info, produced by Makeinfo-1.64 from the ! input file ./bashref.texi. This text is a brief description of the features that are present in --- 1,9 ---- ! 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 *************** *** 2413,2417 **** 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 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 --- 2418,2422 ---- 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 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 *************** *** 4465,4469 **** `!' Start a history substitution, except when followed by a space, tab, ! the end of the line, = or (. `!N' --- 4470,4474 ---- `!' Start a history substitution, except when followed by a space, tab, ! the end of the line, <=> or <(>. `!N' *************** *** 4611,4629 **** 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 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. ! 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::.).  --- 4616,4635 ---- keystrokes. ! The text is read as `Control-K' and describes the character ! produced when the key is pressed while the Control key is depressed. ! The text is read as `Meta-K' and describes the character ! produced when the meta key (if you have one) is depressed, and the key is pressed. If you do not have a meta key, the identical keystroke ! can be generated by typing first, and then typing . Either ! process is known as "metafying" the key. ! The text is read as `Meta-Control-k' and describes the ! character produced by "metafying" . ! In addition, several keys have their own names. Specifically, ! , , , , , and all stand for themselves ! when seen in this text, or in an init file (*note Readline Init ! File::.).  *************** *** 4640,4646 **** 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. * Menu: --- 4646,4652 ---- 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 . You do not have to be at the end ! of the line to press ; the entire line is accepted regardless ! of the location of the cursor within the line. * Menu: *************** *** 4665,4671 **** 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 left, and then correct your mistake. Afterwards, you can move the ! cursor to the right with C-f. When you add text in the middle of a line, you will notice that --- 4671,4677 ---- 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 to move the cursor to the left, and then correct your mistake. Afterwards, you can move the ! cursor to the right with . When you add text in the middle of a line, you will notice that *************** *** 4677,4690 **** follows. ! C-b Move back one character. ! C-f Move forward one character. ! DEL Delete the character to the left of the cursor. ! C-d Delete the character underneath the cursor. --- 4683,4696 ---- follows. ! Move back one character. ! Move forward one character. ! Delete the character to the left of the cursor. ! Delete the character underneath the cursor. *************** *** 4692,4696 **** Insert the character into the line at the cursor. ! C-_ Undo the last thing that you did. You can undo all the way back to an empty line. --- 4698,4702 ---- Insert the character into the line at the cursor. ! Undo the last thing that you did. You can undo all the way back to an empty line. *************** *** 4704,4729 **** 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 about the line. ! C-a Move to the start of the line. ! C-e Move to the end of the line. ! M-f Move forward a word. ! M-b Move backward a word. ! 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.  --- 4710,4735 ---- 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 , ! , , and . Here are some commands for moving more rapidly about the line. ! Move to the start of the line. ! Move to the end of the line. ! Move forward a word. ! Move backward a word. ! Clear the screen, reprinting the current line at the top. ! Notice how moves forward a character, while moves ! forward a word. It is a loose convention that control keystrokes ! operate on characters while meta keystrokes operate on words.  *************** *** 4747,4776 **** Here is the list of commands for killing text. ! C-k Kill the text from the current cursor position to the end of the line. ! 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 Kill from the cursor the start of the previous word, or if between words, to the start of the previous word. ! C-w Kill from the cursor to the previous whitespace. This is ! 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 Yank the most recently killed text back into the buffer at the cursor. ! 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.  --- 4753,4782 ---- Here is the list of commands for killing text. ! Kill the text from the current cursor position to the end of the line. ! Kill from the cursor to the end of the current word, or if between words, to the end of the next word. ! Kill from the cursor the start of the previous word, or if between words, to the start of the previous word. ! Kill from the cursor to the previous whitespace. This is ! different than 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. ! Yank the most recently killed text back into the buffer at the cursor. ! Rotate the kill-ring, and yank the new top. You can only do this ! if the prior command is or .  *************** *** 4789,4796 **** 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 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'.  --- 4795,4802 ---- 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 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 command an argument of 10, you could type `M-1 0 C-d'.  *************** *** 4898,4902 **** 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 meta-prefixed key sequence. The default value is `on'. --- 4904,4908 ---- 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 character, converting them to a meta-prefixed key sequence. The default value is `on'. *************** *** 5012,5032 **** key sequences: ! ``\C-'' control prefix ! ``\M-'' meta prefix ! ``\e'' an escape character ! ``\\'' backslash ! ``\"'' ! " ! ``\''' ! ' When entering the text of a macro, single or double quotes --- 5018,5038 ---- key sequences: ! `\C-' control prefix ! `\M-' meta prefix ! `\e' an escape character ! `\\' backslash ! `\"' ! <"> ! `\'' ! <'> When entering the text of a macro, single or double quotes *************** *** 5332,5336 **** `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. `tab-insert (M-TAB)' --- 5338,5342 ---- `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 , for example. `tab-insert (M-TAB)' *************** *** 5433,5437 **** `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. `universal-argument ()' --- 5439,5443 ---- `digit-argument (M-0, M-1, ... M--)' Add this digit to the argument already accumulating, or start a new ! argument. starts a negative argument. `universal-argument ()' *************** *** 5673,5677 **** 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 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 --- 5679,5683 ---- When you enter a line in `vi' mode, you are already placed in ! `insertion' mode, as if you had typed an `i'. Pressing 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 *************** *** 6083,6140 **** * 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.  --- 6089,6146 ---- * 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.  *************** *** 6146,6168 **** * 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.  --- 6152,6174 ---- * Menu: ! * !: 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.  *************** *** 6174,6260 **** * 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.  --- 6180,6266 ---- * 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.  *************** *** 6266,6337 **** * 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. * 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. * 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.  --- 6272,6343 ---- * 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. * 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. * 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.  *************** *** 6343,6567 **** * 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.  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  End Tag Table --- 6349,6573 ---- * 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.  Tag Table: ! 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 -Nrc2 bash-2.01/doc/bashref.texi bash-2.01.1/doc/bashref.texi *** bash-2.01/doc/bashref.texi Mon May 19 12:56:04 1997 --- bash-2.01.1/doc/bashref.texi Mon Jul 21 13:57:04 1997 *************** *** 23,26 **** --- 23,31 ---- @set BashFeatures + @dircategory Utilities + @direntry + * Bash: (bash). GNU Bourne-Again SHell + @end direntry + @ifinfo @format diff -Nrc2 bash-2.01/doc/texinfo.tex bash-2.01.1/doc/texinfo.tex *** bash-2.01/doc/texinfo.tex Mon May 15 14:25:54 1995 --- bash-2.01.1/doc/texinfo.tex Tue Jul 1 15:36:48 1997 *************** *** 1,5 **** %% TeX macros to handle texinfo files ! % Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 1994 Free Software Foundation, Inc. %This texinfo.tex file is free software; you can redistribute it and/or --- 1,6 ---- %% TeX macros to handle texinfo files ! % 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 *************** *** 15,20 **** %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. --- 16,21 ---- %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, Inc., 59 Temple Place - Suite 330, ! %Boston, MA 02111-1307, USA. *************** *** 35,39 **** % This automatically updates the version number based on RCS. \def\deftexinfoversion$#1: #2 ${\def\texinfoversion{#2}} ! \deftexinfoversion$Revision: 2.145 $ \message{Loading texinfo package [Version \texinfoversion]:} --- 36,40 ---- % This automatically updates the version number based on RCS. \def\deftexinfoversion$#1: #2 ${\def\texinfoversion{#2}} ! \deftexinfoversion$Revision: 2.185 $ \message{Loading texinfo package [Version \texinfoversion]:} *************** *** 46,63 **** % 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\ptexc=\c \let\ptexi=\i \let\ptext=\t ! \let\ptexl=\l ! \let\ptexL=\L % Be sure we're in horizontal mode when doing a tie, since we make space --- 47,64 ---- % Save some parts of plain tex whose names we will redefine. \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\ptextilde=\~ % Be sure we're in horizontal mode when doing a tie, since we make space *************** *** 67,74 **** % penalty on the vertical list instead of in the new paragraph. {\catcode`@ = 11 ! \gdef\tie{\leavevmode\penalty\@M\ } } \let\~ = \tie % And make it available as @~. \message{Basics,} \chardef\other=12 --- 68,79 ---- % penalty on the vertical list instead of in the new paragraph. {\catcode`@ = 11 ! % 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 *************** *** 100,107 **** % Margin to add to right of even pages, to left of odd pages. ! \newdimen \bindingoffset \bindingoffset=0pt ! \newdimen \normaloffset \normaloffset=\hoffset \newdimen\pagewidth \newdimen\pageheight - \pagewidth=\hsize \pageheight=\vsize % Sometimes it is convenient to have everything in the transcript file --- 105,111 ---- % Margin to add to right of even pages, to left of odd pages. ! \newdimen \bindingoffset ! \newdimen \normaloffset \newdimen\pagewidth \newdimen\pageheight % Sometimes it is convenient to have everything in the transcript file *************** *** 124,128 **** \newdimen \topandbottommargin \newdimen \outerhsize \newdimen \outervsize ! \cornerlong=1pc\cornerthick=.3pt % These set size of cropmarks \outerhsize=7in %\outervsize=9.5in --- 128,132 ---- \newdimen \topandbottommargin \newdimen \outerhsize \newdimen \outervsize ! \cornerlong=1pc\cornerthick=.3pt % These set size of cropmarks \outerhsize=7in %\outervsize=9.5in *************** *** 134,146 **** % \onepageout takes a vbox as an argument. Note that \pagecontents ! % does insertions itself, 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} %%%% For @cropmarks command %%%% --- 138,159 ---- % \onepageout takes a vbox as an argument. Note that \pagecontents ! % 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 = `\\ % 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 %%%% *************** *** 154,159 **** \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 \vbox{\line{\ewtop\hfill\ewtop}} \nointerlineskip --- 167,172 ---- \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 \vbox{\line{\ewtop\hfill\ewtop}} \nointerlineskip *************** *** 163,172 **** \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 \boxmaxdepth\cornerthick \line{\vbox{\moveleft\cornerthick\nsbot} --- 176,185 ---- \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 \boxmaxdepth\cornerthick \line{\vbox{\moveleft\cornerthick\nsbot} *************** *** 175,179 **** \nointerlineskip \vbox{\line{\ewbot\hfill\ewbot}} ! }} \advancepageno \ifnum\outputpenalty>-20000 \else\dosupereject\fi} --- 188,192 ---- \nointerlineskip \vbox{\line{\ewbot\hfill\ewbot}} ! }} \advancepageno \ifnum\outputpenalty>-20000 \else\dosupereject\fi} *************** *** 363,371 **** % Used to generate quoted braces. - \def\mylbrace {{\tt \char '173}} \def\myrbrace {{\tt \char '175}} \let\{=\mylbrace \let\}=\myrbrace % @: forces normal size whitespace following. --- 376,416 ---- % 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. *************** *** 534,548 **** \leftline{\hskip\leftskip{\rm#1}}}} %\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 \endgroup} --- 579,610 ---- \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. ! % 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} *************** *** 559,563 **** \def\sp{\parsearg\spxxx} ! \def\spxxx #1{\par \vskip #1\baselineskip} % @comment ...line which is ignored... --- 621,625 ---- \def\sp{\parsearg\spxxx} ! \def\spxxx #1{\vskip #1\baselineskip} % @comment ...line which is ignored... *************** *** 572,575 **** --- 634,640 ---- \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. *************** *** 606,609 **** --- 671,675 ---- % \def\ignoremorecommands{% + \let\defcodeindex = \relax \let\defcv = \relax \let\deffn = \relax *************** *** 629,632 **** --- 695,707 ---- \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 *************** *** 637,641 **** \let\clear = \relax \let\item = \relax - \let\message = \relax } --- 712,715 ---- *************** *** 652,655 **** --- 726,739 ---- \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'. % *************** *** 683,691 **** \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{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 \fi } --- 767,776 ---- \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{} ! \global\warnedobstrue \fi } *************** *** 763,769 **** % 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. % ! \def\set{\parsearg\setxxx} \def\setxxx#1{\setyyy#1 \endsetyyy} \def\setyyy#1 #2\endsetyyy{% --- 848,855 ---- % 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. Make sure the catcode of space is correct to avoid ! % losing inside @example, for instance. % ! \def\set{\begingroup\catcode` =10 \parsearg\setxxx} \def\setxxx#1{\setyyy#1 \endsetyyy} \def\setyyy#1 #2\endsetyyy{% *************** *** 772,775 **** --- 858,862 ---- \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 *************** *** 786,792 **** % \def\value#1{\expandafter ! \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 --- 873,879 ---- % \def\value#1{\expandafter ! \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 *************** *** 888,891 **** --- 975,979 ---- \global\let\lastnode=\relax} + % @refill is a no-op. \let\refill=\relax *************** *** 902,910 **** } \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{}}} \message{fonts,} --- 990,1011 ---- } + % @bye. \outer\def\bye{\pagealignmacro\tracingstats=1\ptexend} ! % \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,} *************** *** 918,921 **** --- 1019,1025 ---- \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 *************** *** 923,927 **** % 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} % Use cm as the default font prefix. --- 1027,1032 ---- % Set the font macro #1 to the font named #2, adding on the % specified font prefix (normally `cm'). ! % #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. *************** *** 931,1017 **** \def\fontprefix{cm} \fi \ifx\bigger\relax \let\mainmagstep=\magstep1 ! \setfont\textrm{r12} ! \setfont\texttt{tt12} \else ! \setfont\textrm{r10 scaled \mainmagstep} ! \setfont\texttt{tt10 scaled \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} \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} \def\df{\let\tentt=\deftt \let\tenbf = \defbf \bf} ! % Fonts for indices and small examples. % 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} \let\indsl=\indit \let\indtt=\ninett \let\indsf=\indrm \let\indbf=\indrm ! \setfont\indsc{csc10 at 9pt} \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} \let\chapbf=\chaprm ! \setfont\chapsc{csc10 scaled\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} \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{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} %\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} \font\sseci=cmmi12 scaled \magstephalf \font\ssecsy=cmsy10 scaled \magstep1 --- 1036,1145 ---- \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\rmshape{12}{1000} ! \setfont\texttt\ttshape{12}{1000} \else ! \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\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\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 (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\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\scshape{10}{900} \font\indi=cmmi9 \font\indsy=cmsy9 ! % 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\scbshape{10}{\magstep3} \font\chapi=cmmi12 scaled \magstep2 \font\chapsy=cmsy10 scaled \magstep3 ! % 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\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\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 ! % 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 *************** *** 1020,1024 **** % Fonts for title page: ! \setfont\titlerm{bx12 scaled \magstep3} \let\authorrm = \secrm --- 1148,1152 ---- % Fonts for title page: ! \setfont\titlerm\rmbshape{12}{\magstep3} \let\authorrm = \secrm *************** *** 1039,1070 **** % 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. \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 \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} \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} \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} \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} % Set up the default fonts, so we can use them for creating boxes. --- 1167,1199 ---- % 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 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\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 \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 \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 \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 \let\tenttsl=\indttsl ! \resetmathfonts \setleading{12pt}} % Set up the default fonts, so we can use them for creating boxes. *************** *** 1076,1082 **** % Fonts for short table of contents. ! \setfont\shortcontrm{r12} ! \setfont\shortcontbf{bx12} ! \setfont\shortcontsl{sl12} %% Add scribe-like font environments, plus @l for inline lisp (usually sans --- 1205,1211 ---- % Fonts for short table of contents. ! \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 *************** *** 1105,1118 **** \def\t#1{% ! {\tt \nohyphenation \rawbackslash \frenchspacing #1}% \null } ! \let\ttfont = \t ! %\def\samp #1{`{\tt \rawbackslash \frenchspacing #1}'\null} \def\samp #1{`\tclose{#1}'\null} ! \def\key #1{{\tt \nohyphenation \uppercase{#1}}\null} \def\ctrl #1{{\tt \rawbackslash \hat}#1} \let\file=\samp % @code is a modification of @t, --- 1234,1257 ---- \def\t#1{% ! {\tt \rawbackslash \frenchspacing #1}% \null } ! \let\ttfont=\t \def\samp #1{`\tclose{#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, *************** *** 1140,1144 **** % We *must* turn on hyphenation at `-' and `_' in \code. ! % Otherwise, it is too hard to avoid overful hboxes % in the Emacs manual, the Library manual, etc. --- 1279,1283 ---- % We *must* turn on hyphenation at `-' and `_' in \code. ! % Otherwise, it is too hard to avoid overfull hboxes % in the Emacs manual, the Library manual, etc. *************** *** 1146,1150 **** % 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. % -- rms. { --- 1285,1289 ---- % both hyphenation at - and hyphenation within words. % We must therefore turn them both off (\tclose does that) ! % and arrange explicitly to hyphenate at a dash. % -- rms. { *************** *** 1158,1161 **** --- 1297,1301 ---- \global\def\indexbreaks{\catcode`\-=\active \let-\realdash \catcode`\_=\active \let_\realunder} } + \def\realdash{-} \def\realunder{_} *************** *** 1168,1177 **** % @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} % Typeset a dimension, e.g., `in' or `pt'. The only reason for the --- 1308,1324 ---- % @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{\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 *************** *** 1183,1192 **** \def\kbd#1{\def\look{#1}\expandafter\kbdfoo\look??\par} ! \def\l#1{{\li #1}\null} % ! \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 \message{page headings,} --- 1330,1346 ---- \def\kbd#1{\def\look{#1}\expandafter\kbdfoo\look??\par} ! % @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 % Use of \lowercase was suggested. ! \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,} *************** *** 1203,1207 **** \def\shorttitlepage{\parsearg\shorttitlepagezzz} \def\shorttitlepagezzz #1{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}% ! \endgroup\page\hbox{}\page} \def\titlepage{\begingroup \parindent=0pt \textfonts --- 1357,1361 ---- \def\shorttitlepage{\parsearg\shorttitlepagezzz} \def\shorttitlepagezzz #1{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}% ! \endgroup\page\hbox{}\page} \def\titlepage{\begingroup \parindent=0pt \textfonts *************** *** 1220,1226 **** \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}% % No rule at page bottom unless we print one at the top with @title. \finishedtitlepagetrue --- 1374,1380 ---- \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}% % No rule at page bottom unless we print one at the top with @title. \finishedtitlepagetrue *************** *** 1240,1244 **** \def\page{% \iffinishedtitlepage\else ! \finishtitlepage \fi \oldpage --- 1394,1398 ---- \def\page{% \iffinishedtitlepage\else ! \finishtitlepage \fi \oldpage *************** *** 1328,1339 **** }% 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 singleafter turns on single-sided headings after this page. ! % By default, they are off. \def\headings #1 {\csname HEADINGS#1\endcsname} --- 1482,1494 ---- }% 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 singleafter turns on single-sided headings after this page. ! % By default, they are off at the start of a document, ! % and turned `on' after @end titlepage. \def\headings #1 {\csname HEADINGS#1\endcsname} *************** *** 1349,1353 **** % edge of all pages. \def\HEADINGSdouble{ - %\pagealignmacro \global\pageno=1 \global\evenfootline={\hfil} --- 1504,1507 ---- *************** *** 1355,1363 **** \global\evenheadline={\line{\folio\hfil\thistitle}} \global\oddheadline={\line{\thischapter\hfil\folio}} } % 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} --- 1509,1519 ---- \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{ \global\pageno=1 \global\evenfootline={\hfil} *************** *** 1365,1368 **** --- 1521,1525 ---- \global\evenheadline={\line{\thischapter\hfil\folio}} \global\oddheadline={\line{\thischapter\hfil\folio}} + \global\let\contentsalignmacro = \chappager } \def\HEADINGSon{\HEADINGSdouble} *************** *** 1375,1378 **** --- 1532,1536 ---- \global\evenheadline={\line{\folio\hfil\thistitle}} \global\oddheadline={\line{\thischapter\hfil\folio}} + \global\let\contentsalignmacro = \chapoddpage } *************** *** 1383,1386 **** --- 1541,1545 ---- \global\evenheadline={\line{\thischapter\hfil\folio}} \global\oddheadline={\line{\thischapter\hfil\folio}} + \global\let\contentsalignmacro = \chappager } *************** *** 1406,1409 **** --- 1565,1569 ---- \def\settitlezzz #1{\gdef\thistitle{#1}} + \message{tables,} *************** *** 1438,1442 **** \newif\ifitemxneedsnegativevskip ! \def\itemxpar{\par\ifitemxneedsnegativevskip\vskip-\parskip\nobreak\fi} \def\internalBitem{\smallbreak \parsearg\itemzzz} --- 1598,1602 ---- \newif\ifitemxneedsnegativevskip ! \def\itemxpar{\par\ifitemxneedsnegativevskip\nobreak\vskip-\parskip\nobreak\fi} \def\internalBitem{\smallbreak \parsearg\itemzzz} *************** *** 1545,1549 **** \aboveenvbreak % \begingroup % ! \def\Edescription{\Etable}% Neccessary kludge. \let\itemindex=#1% \ifnum 0#3>0 \advance \leftskip by #3\mil \fi % --- 1705,1709 ---- \aboveenvbreak % \begingroup % ! \def\Edescription{\Etable}% Necessary kludge. \let\itemindex=#1% \ifnum 0#3>0 \advance \leftskip by #3\mil \fi % *************** *** 1709,1716 **** % @multitable macros ! % Amy Hendrickson, 8/18/94 % ! % @multitable ... @endmultitable 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. --- 1869,1876 ---- % @multitable macros ! % Amy Hendrickson, 8/18/94, 3/6/96 % ! % @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. *************** *** 1721,1736 **** % % Either define widths of columns in terms of percent of \hsize: ! % @multitable @percentofhsize .2 .3 .5 % @item ... % ! % Numbers following @percentofhsize 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. ! % Each new table line starts with @item, each subsequent new column --- 1881,1906 ---- % % Either define widths of columns in terms of percent of \hsize: ! % @multitable @columnfractions .25 .3 .45 % @item ... % ! % 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 *************** *** 1739,1743 **** % ie, @tab@tab@tab will produce two empty columns. ! % @item, @tab, @multicolumn or @endmulticolumn do not need to be on their % own lines, but it will not hurt if they are. --- 1909,1913 ---- % ie, @tab@tab@tab will produce two empty columns. ! % @item, @tab, @multitable or @end multitable do not need to be on their % own lines, but it will not hurt if they are. *************** *** 1757,1779 **** % They will wrap at the width determined by the template. % @item@tab@tab This will be in third column. ! % @endmultitable % 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. %%%% % Dimensions ! \newdimen\intableparskip ! \newdimen\intableparindent ! \newdimen\spacebetweencols ! \newdimen\spacebetweenlines ! \intableparskip=0pt ! \intableparindent=6pt ! \spacebetweencols=12pt ! \spacebetweenlines=12pt %%%% --- 1927,1951 ---- % They will wrap at the width determined by the template. % @item@tab@tab This will be in third column. ! % @end multitable % Default dimensions may be reset by user. ! % @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 ! \newskip\multitableparskip ! \newskip\multitableparindent ! \newdimen\multitablecolspace ! \newskip\multitablelinespace ! \multitableparskip=0pt ! \multitableparindent=6pt ! \multitablecolspace=12pt ! \multitablelinespace=0pt %%%% *************** *** 1781,1825 **** \let\endsetuptable\relax \def\xendsetuptable{\endsetuptable} ! \let\percentofhsize\relax ! \def\xpercentofhsize{\percentofhsize} \newif\ifsetpercent \newcount\colcount \def\setuptable#1{\def\firstarg{#1}% \ifx\firstarg\xendsetuptable\let\go\relax% \else ! \ifx\firstarg\xpercentofhsize\global\setpercenttrue% \else \ifsetpercent ! \if#1.\else% ! \global\advance\colcount by1 % ! \expandafter\xdef\csname col\the\colcount\endcsname{.#1\hsize}% ! \fi \else \global\advance\colcount by1 ! \setbox0=\hbox{#1}% \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}% \fi% \fi% ! \let\go\setuptable% \fi\go} %%%% % multitable syntax ! \def\tab{&} %%%% ! % @multitable ... @endmultitable definitions: ! \def\multitable#1\item{\bgroup \let\item\cr \tolerance=9500 \hbadness=9500 ! \parskip=\intableparskip ! \parindent=\intableparindent \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 % Need to reset this to 0 after \setuptable. \global\colcount=0\relax% --- 1953,2010 ---- \let\endsetuptable\relax \def\xendsetuptable{\endsetuptable} ! \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\xcolumnfractions\global\setpercenttrue% \else \ifsetpercent ! \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 }% 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% ! \ifx\go\pickupwholefraction\else\let\go\setuptable\fi% \fi\go} + %%%% % multitable syntax ! \def\tab{&\hskip1sp\relax} % 2/2/96 ! % tiny skip here makes sure this column space is ! % maintained, even if it is never used. ! %%%% ! % @multitable ... @end multitable definitions: ! ! \def\multitable{\parsearg\dotable} ! \def\dotable#1{\bgroup \let\item\cr \tolerance=9500 \hbadness=9500 ! \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 : ! \setuptable#1 \endsetuptable % Need to reset this to 0 after \setuptable. \global\colcount=0\relax% *************** *** 1830,1838 **** % continue for many paragraphs if desired. \halign\bgroup&\global\advance\colcount by 1\relax% ! \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 % the first one. ! % If a template has been used, we will add \spacebetweencols % to the width of each template entry. % If user has set preamble in terms of percent of \hsize --- 2015,2023 ---- % continue for many paragraphs if desired. \halign\bgroup&\global\advance\colcount by 1\relax% ! \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 \multitablecolspace to all columns after % the first one. ! % 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 *************** *** 1846,1863 **** \else % If user has set preamble in terms of percent of \hsize ! % we will advance \hsize by \spacebetweencols ! \advance\hsize by \spacebetweencols \fi ! % In either case we will make \leftskip=\spacebetweencols: ! \leftskip=\spacebetweencols \fi ! \noindent##}\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 \filbreak%% keeps underfull box messages off when table breaks over pages. ! \global\colcount=0\relax}}} \message{indexing,} --- 2031,2074 ---- \else % If user has set preamble in terms of percent of \hsize ! % we will advance \hsize by \multitablecolspace ! \advance\hsize by \multitablecolspace \fi ! % In either case we will make \leftskip=\multitablecolspace: ! \leftskip=\multitablecolspace \fi ! \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{% \filbreak%% keeps underfull box messages off when table breaks over pages. ! \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,} *************** *** 1873,1877 **** % \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 name of an index should be no more than 2 characters long % for the sake of vms. --- 2084,2088 ---- % \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 name of an index should be no more than 2 characters long % for the sake of vms. *************** *** 1879,1884 **** \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 \noexpand\doindex {#1}} } --- 2090,2095 ---- \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 \noexpand\doindex {#1}} } *************** *** 1892,1897 **** \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 \noexpand\docodeindex {#1}} } --- 2103,2108 ---- \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 \noexpand\docodeindex {#1}} } *************** *** 1904,1908 **** \expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname \expandafter\let\csname#1indfile\endcsname=\synindexfoo ! \expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex \noexpand\doindex {#2}}% } --- 2115,2119 ---- \expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname \expandafter\let\csname#1indfile\endcsname=\synindexfoo ! \expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex \noexpand\doindex {#2}}% } *************** *** 1913,1917 **** \expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname \expandafter\let\csname#1indfile\endcsname=\synindexfoo ! \expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex \noexpand\docodeindex {#2}}% } --- 2124,2128 ---- \expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname \expandafter\let\csname#1indfile\endcsname=\synindexfoo ! \expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex \noexpand\docodeindex {#2}}% } *************** *** 1961,1968 **** \def\ss{\realbackslash ss}% % Take care of texinfo commands likely to appear in an index entry. \def\_{{\realbackslash _}}% \def\w{\realbackslash w }% \def\bf{\realbackslash bf }% ! \def\rm{\realbackslash rm }% \def\sl{\realbackslash sl }% \def\sf{\realbackslash sf}% --- 2172,2184 ---- \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\sl{\realbackslash sl }% \def\sf{\realbackslash sf}% *************** *** 1971,1975 **** \def\less{\realbackslash less}% \def\hat{\realbackslash hat}% ! \def\char{\realbackslash char}% \def\TeX{\realbackslash TeX}% \def\dots{\realbackslash dots }% --- 2187,2191 ---- \def\less{\realbackslash less}% \def\hat{\realbackslash hat}% ! %\def\char{\realbackslash char}% \def\TeX{\realbackslash TeX}% \def\dots{\realbackslash dots }% *************** *** 1977,1982 **** \def\tclose##1{\realbackslash tclose {##1}}% \def\code##1{\realbackslash code {##1}}% \def\samp##1{\realbackslash samp {##1}}% ! \def\t##1{\realbackslash r {##1}}% \def\r##1{\realbackslash r {##1}}% \def\i##1{\realbackslash i {##1}}% --- 2193,2200 ---- \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\,##1{\realbackslash ,{##1}}% ! \def\t##1{\realbackslash t {##1}}% \def\r##1{\realbackslash r {##1}}% \def\i##1{\realbackslash i {##1}}% *************** *** 1989,1994 **** --- 2207,2219 ---- \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. *************** *** 1999,2002 **** --- 2224,2228 ---- \def\indexnofonts{% % Just ignore accents. + \let\,=\indexdummyfont \let\"=\indexdummyfont \let\`=\indexdummyfont *************** *** 2011,2014 **** --- 2237,2241 ---- \let\v=\indexdummyfont \let\H=\indexdummyfont + \let\dotless=\indexdummyfont % Take care of the plain tex special European modified letters. \def\oe{oe}% *************** *** 2044,2047 **** --- 2271,2275 ---- \let\TeX=\indexdummytex \let\dots=\indexdummydots + \def\@{@}% } *************** *** 2059,2085 **** % #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}} \def\dosubind #1#2#3{% --- 2287,2321 ---- % #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 ! {% ! \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{% *************** *** 2142,2165 **** \def\printindex{\parsearg\doprintindex} ! \def\doprintindex#1{% ! \tex ! \dobreak \chapheadingskip {10000} ! \catcode`\%=\other\catcode`\&=\other\catcode`\#=\other ! \catcode`\$=\other ! \catcode`\~=\other ! \indexbreaks % ! % 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 \begindoublecolumns % --- 2378,2394 ---- \def\printindex{\parsearg\doprintindex} ! \def\doprintindex#1{\begingroup ! \dobreak \chapheadingskip{10000}% % ! \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 % *************** *** 2172,2176 **** % there is some text. (Index is nonexistent) ! \else % % If the index file exists but is empty, then \openin leaves \ifeof --- 2401,2405 ---- % there is some text. (Index is nonexistent) ! \else % % If the index file exists but is empty, then \openin leaves \ifeof *************** *** 2186,2191 **** \closein 1 \enddoublecolumns ! \Etex ! } % These macros are used by the sorted index file itself. --- 2415,2419 ---- \closein 1 \enddoublecolumns ! \endgroup} % These macros are used by the sorted index file itself. *************** *** 2241,2245 **** % 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 % there are no page numbers. The next person who breaks this will be % cursed by a Unix daemon. --- 2469,2473 ---- % Insert the text of the index entry. TeX will do line-breaking on it. #1% ! % 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. *************** *** 2278,2290 **** }} ! %% Define two-column mode, which is used in indexes. ! %% Adapted from the TeXbook, page 416. ! \catcode `\@=11 \newbox\partialpage - \newdimen\doublecolumnhsize ! \def\begindoublecolumns{\begingroup % Grab any single-column material above us. \output = {\global\setbox\partialpage --- 2506,2518 ---- }} ! % 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 % ended by \enddoublecolumns % Grab any single-column material above us. \output = {\global\setbox\partialpage *************** *** 2319,2367 **** % 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\doublecolumnpagegoal{% - \dimen@=\vsize \advance\dimen@ by-2\ht\partialpage \global\pagegoal=\dimen@ - } - \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 } - \catcode `\@=\other \message{sectioning,} % Define chapters, sections, etc. --- 2547,2595 ---- % since nobody clobbers \vsize.) \vsize = 2\vsize } \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\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\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. *************** *** 2535,2538 **** --- 2763,2770 ---- }} + % @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} *************** *** 2579,2583 **** }} ! \outer\def\appenixsection{\parsearg\appendixsecyyy} \outer\def\appendixsec{\parsearg\appendixsecyyy} \def\appendixsecyyy #1{\apphead1{#1}} % normally calls appendixsectionzzz --- 2811,2815 ---- }} ! \outer\def\appendixsection{\parsearg\appendixsecyyy} \outer\def\appendixsec{\parsearg\appendixsecyyy} \def\appendixsecyyy #1{\apphead1{#1}} % normally calls appendixsectionzzz *************** *** 2637,2641 **** \def\unnumberedsubsecyyy #1{\unnmhead2{#1}} %normally calls unnumberedsubseczzz \def\unnumberedsubseczzz #1{\seccheck{unnumberedsubsec}% ! \plainsecheading {#1}\gdef\thissection{#1}% {\chapternofonts% \edef\temp{{\realbackslash unnumbsubsecentry{#1}{\noexpand\folio}}}% --- 2869,2873 ---- \def\unnumberedsubsecyyy #1{\unnmhead2{#1}} %normally calls unnumberedsubseczzz \def\unnumberedsubseczzz #1{\seccheck{unnumberedsubsec}% ! \plainsubsecheading {#1}\gdef\thissection{#1}% {\chapternofonts% \edef\temp{{\realbackslash unnumbsubsecentry{#1}{\noexpand\folio}}}% *************** *** 2682,2686 **** \def\unnumberedsubsubsecyyy #1{\unnmhead3{#1}} %normally unnumberedsubsubseczzz \def\unnumberedsubsubseczzz #1{\seccheck{unnumberedsubsubsec}% ! \plainsecheading {#1}\gdef\thissection{#1}% {\chapternofonts% \edef\temp{{\realbackslash unnumbsubsubsecentry{#1}{\noexpand\folio}}}% --- 2914,2918 ---- \def\unnumberedsubsubsecyyy #1{\unnmhead3{#1}} %normally unnumberedsubsubseczzz \def\unnumberedsubsubseczzz #1{\seccheck{unnumberedsubsubsec}% ! \plainsubsubsecheading {#1}\gdef\thissection{#1}% {\chapternofonts% \edef\temp{{\realbackslash unnumbsubsubsecentry{#1}{\noexpand\folio}}}% *************** *** 2720,2727 **** % 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. % 3) Likewise, headings look best if no \parindent is used, and % if justification is not attempted. Hence \raggedright. --- 2952,2959 ---- % 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. % 3) Likewise, headings look best if no \parindent is used, and % if justification is not attempted. Hence \raggedright. *************** *** 2741,2749 **** \rm #1\hfill}}\bigskip \par\penalty 200} ! \def\heading{\parsearg\secheadingi} ! ! \def\subheading{\parsearg\subsecheadingi} ! ! \def\subsubheading{\parsearg\subsubsecheadingi} % These macros generate a chapter, section, etc. heading only --- 2973,2980 ---- \rm #1\hfill}}\bigskip \par\penalty 200} ! % @heading, @subheading, @subsubheading. ! \def\heading{\parsearg\plainsecheading} ! \def\subheading{\parsearg\plainsubsecheading} ! \def\subsubheading{\parsearg\plainsubsubsecheading} % These macros generate a chapter, section, etc. heading only *************** *** 2759,2763 **** % Parameter controlling skip before chapter headings (if needed) ! \newskip \chapheadingskip \chapheadingskip = 30pt plus 8pt minus 4pt \def\chapbreak{\dobreak \chapheadingskip {-4000}} --- 2990,2994 ---- % Parameter controlling skip before chapter headings (if needed) ! \newskip\chapheadingskip \def\chapbreak{\dobreak \chapheadingskip {-4000}} *************** *** 2768,2775 **** --- 2999,3008 ---- \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 *************** *** 2777,2780 **** --- 3010,3014 ---- \def\CHAPPAGodd{ + \global\let\contentsalignmacro = \chapoddpage \global\let\pchapsepmacro=\chapoddpage \global\let\pagealignmacro=\chapoddpage *************** *** 2785,2807 **** \def\CHAPFplain{ \global\let\chapmacro=\chfplain ! \global\let\unnumbchapmacro=\unnchfplain} ! \def\chfplain #1#2{% \pchapsepmacro {% ! \chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 ! \parindent=0pt\raggedright ! \rm #2\enspace #1}% }% ! \bigskip ! \penalty5000 } ! \def\unnchfplain #1{% ! \pchapsepmacro % ! {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 ! \parindent=0pt\raggedright ! \rm #1\hfill}}\bigskip \par\penalty 10000 % ! } \CHAPFplain % The default --- 3019,3055 ---- \def\CHAPFplain{ \global\let\chapmacro=\chfplain ! \global\let\unnumbchapmacro=\unnchfplain ! \global\let\centerchapmacro=\centerchfplain} ! % Plain chapter opening. ! % #1 is the text, #2 the chapter number or empty if unnumbered. ! \def\chfplain#1#2{% \pchapsepmacro {% ! \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}% }% ! \nobreak\bigskip % no page break after a chapter title ! \nobreak } ! % 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 *************** *** 2817,2873 **** } \def\CHAPFopen{ \global\let\chapmacro=\chfopen ! \global\let\unnumbchapmacro=\unnchfopen} - % Parameter controlling skip before section headings. ! \newskip \subsecheadingskip \subsecheadingskip = 17pt plus 8pt minus 4pt ! \def\subsecheadingbreak{\dobreak \subsecheadingskip {-500}} ! ! \newskip \secheadingskip \secheadingskip = 21pt plus 8pt minus 4pt \def\secheadingbreak{\dobreak \secheadingskip {-1000}} ! % @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} - \message{toc printing,} % Finish up the main text and prepare to read what we've written % to \contentsfile. --- 3065,3125 ---- } + \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\centerchapmacro=\centerchfopen} ! % 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}} ! % 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}} + % 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. *************** *** 2875,2887 **** \newskip\contentsrightmargin \contentsrightmargin=1in \def\startcontents#1{% ! \pagealignmacro \immediate\closeout \contentsfile \ifnum \pageno>0 ! \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. \catcode`\\=0 \catcode`\{=1 \catcode`\}=2 \catcode`\@=11 \catcode`\^=7 % to see ^^e4 as \"a etc. juha@piuha.ydi.vtt.fi --- 3127,3143 ---- \newskip\contentsrightmargin \contentsrightmargin=1in \def\startcontents#1{% ! % 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 ! \contentsalignmacro \immediate\closeout \contentsfile \ifnum \pageno>0 ! \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. \catcode`\\=0 \catcode`\{=1 \catcode`\}=2 \catcode`\@=11 \catcode`\^=7 % to see ^^e4 as \"a etc. juha@piuha.ydi.vtt.fi *************** *** 2909,2912 **** --- 3165,3169 ---- \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{} *************** *** 2952,2956 **** % 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.) \advance\dimen0 by 1.1em \hbox to \dimen0{#1\hfil}% --- 3209,3213 ---- % 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 by \shortchapentry above.) \advance\dimen0 by 1.1em \hbox to \dimen0{#1\hfil}% *************** *** 2973,2977 **** \def\unnumbsubsubsecentry#1#2{\dosubsubsecentry{#1}{#2}} - % This parameter controls the indentation of the various levels. \newdimen\tocindent \tocindent = 3pc --- 3230,3233 ---- *************** *** 2980,2992 **** % page number. % ! % If the toc has to be broken over pages, we would want to be at chapters % if at all possible; hence the \penalty. \def\dochapentry#1#2{% ! \penalty-300 \vskip\baselineskip \begingroup \chapentryfonts \tocentry{#1}{\dopageno{#2}}% \endgroup ! \nobreak\vskip .25\baselineskip } --- 3236,3248 ---- % page number. % ! % 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 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip \begingroup \chapentryfonts \tocentry{#1}{\dopageno{#2}}% \endgroup ! \nobreak\vskip .25\baselineskip plus.1\baselineskip } *************** *** 3011,3017 **** % of hyphenated-identifiers-that-do-not-fit-on-a-line-and-nothing-else.) % \def\tocentry#1#2{\begingroup ! \hyphenpenalty = 10000 ! \entry{#1}{#2}% \endgroup} --- 3267,3274 ---- % 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 ! \vskip 0pt plus1pt % allow a little stretch for the sake of nice page breaks ! \entry{\turnoffactive #1}{\turnoffactive #2}% \endgroup} *************** *** 3037,3042 **** \newbox\equivbox \newbox\errorbox - \let\ptexequiv = \equiv - %{\tentt %\global\setbox\dblarrowbox = \hbox to 1em{\hfil$\Rightarrow$\hfil} --- 3294,3297 ---- *************** *** 3049,3058 **** %} \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}} --- 3304,3312 ---- %} + % @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}} *************** *** 3086,3090 **** \catcode `\^=7 \catcode `\_=8 \catcode `\~=13 \let~=\tie \catcode `\%=14 ! \catcode 43=12 \catcode`\"=12 \catcode`\==12 --- 3340,3344 ---- \catcode `\^=7 \catcode `\_=8 \catcode `\~=13 \let~=\tie \catcode `\%=14 ! \catcode 43=12 % plus \catcode`\"=12 \catcode`\==12 *************** *** 3094,3097 **** --- 3348,3352 ---- \escapechar=`\\ % + \let\,=\ptexcomma \let\~=\ptextilde \let\{=\ptexlbrace *************** *** 3100,3107 **** \let\*=\ptexstar \let\dots=\ptexdots \def\@{@}% \let\bullet=\ptexbullet ! \let\b=\ptexb \let\c=\ptexc \let\i=\ptexi \let\t=\ptext \let\l=\ptexl ! \let\L=\ptexL % \let\Etex=\endgroup} --- 3355,3363 ---- \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\Etex=\endgroup} *************** *** 3162,3170 **** \def\cbr{{\hskip 6pt\circle\char'011}} \def\carttop{\hbox to \cartouter{\hskip\lskip ! \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}} % \newskip\lskip\newskip\rskip --- 3418,3426 ---- \def\cbr{{\hskip 6pt\circle\char'011}} \def\carttop{\hbox to \cartouter{\hskip\lskip ! \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}} % \newskip\lskip\newskip\rskip *************** *** 3172,3209 **** \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 \def\Ecartouche{% ! \endgroup ! \kern3pt ! \egroup ! \kern3pt\vrule ! \hskip\rskip ! \egroup ! \cartbot ! \egroup \endgroup }} --- 3428,3465 ---- \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 \def\Ecartouche{% ! \endgroup ! \kern3pt ! \egroup ! \kern3pt\vrule ! \hskip\rskip ! \egroup ! \cartbot ! \egroup \endgroup }} *************** *** 3268,3273 **** \let\Esmallexample = \nonfillfinish % ! % Smaller interline space and fonts for small examples. ! \setleading{10pt}% \indexfonts \tt \rawbackslash % make \ output the \ character from the current font (tt) --- 3524,3528 ---- \let\Esmallexample = \nonfillfinish % ! % Smaller fonts for small examples. \indexfonts \tt \rawbackslash % make \ output the \ character from the current font (tt) *************** *** 3797,3800 **** --- 4052,4056 ---- \def\deftpx #1 {\errmessage{@deftpx in invalid context}} + \message{cross reference,} % Define cross-reference macros *************** *** 3804,3807 **** --- 4060,4068 ---- \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. *************** *** 3837,3841 **** \ifdim \wd0 = 0pt % No printed node name was explicitly given. ! \ifx\SETxref-automatic-section-title\relax % % Use the actual chapter/section title appear inside % the square brackets. Use the real section title if we have it. --- 4098,4105 ---- \ifdim \wd0 = 0pt % No printed node name was explicitly given. ! \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. *************** *** 3846,3850 **** \ifhavexrefs % We know the real title if we have the xref values. ! \def\printednodename{\refx{#1-title}}% \else % Otherwise just copy the Info node name. --- 4110,4114 ---- \ifhavexrefs % We know the real title if we have the xref values. ! \def\printednodename{\refx{#1-title}{}}% \else % Otherwise just copy the Info node name. *************** *** 3852,3859 **** \fi% \fi - \def\printednodename{#1-title}% - \else - % Use the node name inside the square brackets. - \def\printednodename{\ignorespaces #1}% \fi \fi --- 4116,4119 ---- *************** *** 4040,4044 **** % vital for proper filling; pages come out unaligned when you do a % pagealignmacro call if that space before the closing brace is ! % removed. \def\supereject{\par\penalty -20000\footnoteno =0 } --- 4300,4305 ---- % vital for proper filling; pages come out unaligned when you do a % pagealignmacro call if that space before the closing brace is ! % removed. (Generally, numeric constants should always be followed by a ! % space to prevent strange expansion errors.) \def\supereject{\par\penalty -20000\footnoteno =0 } *************** *** 4165,4175 **** % Set some numeric style parameters, for 8.5 x 11 format. ! %\hsize = 6.5in \newdimen\defaultparindent \defaultparindent = 15pt \parindent = \defaultparindent ! \parskip 18pt plus 1pt ! \setleading{15pt} \advance\topskip by 1.2cm % Prevent underfull vbox error messages. \vbadness=10000 --- 4426,4441 ---- % Set some numeric style parameters, for 8.5 x 11 format. ! \hsize = 6in ! \hoffset = .25in \newdimen\defaultparindent \defaultparindent = 15pt \parindent = \defaultparindent ! \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 *************** *** 4194,4221 **** % 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} } --- 4460,4485 ---- % Use @smallbook to reset parameters for 7x9.5 format (or else 7x9.25) \def\smallbook{ ! \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} } *************** *** 4240,4249 **** } % Allow control of the text dimensions. Parameters in order: textheight; ! % textwidth; \voffset; \hoffset (!); binding offset. All require a dimension; % header is additional; added length extends the bottom of the page. ! \def\changepagesizes#1#2#3#4#5{ \global\vsize= #1 \advance\vsize by \topskip \global\voffset= #3 --- 4504,4520 ---- } + \bindingoffset=0pt + \normaloffset=\hoffset + \pagewidth=\hsize + \pageheight=\vsize + % Allow control of the text dimensions. Parameters in order: textheight; ! % 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#6{ \global\vsize= #1 + \global\topskip= #6 \advance\vsize by \topskip \global\voffset= #3 *************** *** 4258,4268 **** \global\bindingoffset= #5} ! % This layout is compatible with Latex on A4 paper. ! ! \def\afourlatex{\changepagesizes{22cm}{15cm}{7mm}{4.6mm}{5mm}} % Use @afourwide to print on European A4 paper in wide format. \def\afourwide{\afourpaper ! \changepagesizes{9.5in}{6.5in}{\hoffset}{\normaloffset}{\bindingoffset}} % Define macros to output various characters with catcode for normal text. --- 4529,4546 ---- \global\bindingoffset= #5} ! % 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}{7mm}} % Define macros to output various characters with catcode for normal text. *************** *** 4313,4324 **** \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{}} \catcode`\|=\active --- 4591,4595 ---- \def_{\ifusingtt\normalunderscore\_} % Subroutine for the previous macro. ! \def\_{\leavevmode \kern.06em \vbox{\hrule width.3em height.1ex}} \catcode`\|=\active diff -Nrc2 bash-2.01/execute_cmd.c bash-2.01.1/execute_cmd.c *** bash-2.01/execute_cmd.c Tue Jun 3 11:20:30 1997 --- bash-2.01.1/execute_cmd.c Fri Sep 19 12:05:41 1997 *************** *** 587,592 **** /* 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. */ if (user_subshell && command->type == cm_simple) { command->flags |= CMD_NO_FORK; --- 587,598 ---- /* 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. ! 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; *************** *** 1069,1073 **** int prec, lng, len; char *str, *s, ts[32]; ! int sum, sum_frac; int sindex, ssize; --- 1075,1080 ---- int prec, lng, len; char *str, *s, ts[32]; ! long sum; ! int sum_frac; int sindex, ssize; *************** *** 1717,1722 **** 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. */ static char * select_query (list, list_len, prompt) --- 1724,1729 ---- 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, or an invalid ! number is entered, the loop is executed again. */ static char * select_query (list, list_len, prompt) *************** *** 1725,1729 **** char *prompt; { ! int max_elem_len, indices_len, len, reply; WORD_LIST *l; char *repl_string, *t; --- 1732,1737 ---- char *prompt; { ! int max_elem_len, indices_len, len; ! long reply; WORD_LIST *l; char *repl_string, *t; *************** *** 1768,1772 **** if (*repl_string == 0) continue; ! reply = atoi (repl_string); if (reply < 1 || reply > list_len) return ""; --- 1776,1781 ---- if (*repl_string == 0) continue; ! if (legal_number (repl_string, &reply) == 0) ! continue; if (reply < 1 || reply > list_len) return ""; *************** *** 2139,2143 **** return; ! b = builtin_address_internal (words->word->word); if (b == 0 || (b->flags & ASSIGNMENT_BUILTIN) == 0) return; --- 2148,2152 ---- return; ! b = builtin_address_internal (words->word->word, 0); if (b == 0 || (b->flags & ASSIGNMENT_BUILTIN) == 0) return; diff -Nrc2 bash-2.01/externs.h bash-2.01.1/externs.h *** bash-2.01/externs.h Thu Apr 24 11:40:01 1997 --- bash-2.01.1/externs.h Fri Jul 18 13:52:54 1997 *************** *** 99,104 **** #if !defined (HAVE_STRCASECMP) ! extern int strncasecmp __P((char *, char *, int)); ! extern int strcasecmp __P((char *, char *)); #endif /* HAVE_STRCASECMP */ --- 99,104 ---- #if !defined (HAVE_STRCASECMP) ! extern int strncasecmp __P((const char *, const char *, int)); ! extern int strcasecmp __P((const char *, const char *)); #endif /* HAVE_STRCASECMP */ diff -Nrc2 bash-2.01/flags.c bash-2.01.1/flags.c *** bash-2.01/flags.c Thu Apr 17 09:51:17 1997 --- bash-2.01.1/flags.c Mon Jul 14 16:10:29 1997 *************** *** 134,139 **** /* 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. */ int privileged_mode = 0; --- 134,140 ---- /* Non-zero means that this shell is running in `privileged' mode. This ! 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; diff -Nrc2 bash-2.01/general.c bash-2.01.1/general.c *** bash-2.01/general.c Fri May 30 15:18:26 1997 --- bash-2.01.1/general.c Mon Aug 25 14:18:06 1997 *************** *** 845,850 **** if (l > 1 && strncmp (home, name, l) == 0 && (!name[l] || name[l] == '/')) { ! strcpy (tdir + 1, name + l); tdir[0] = '~'; return (tdir); } --- 845,851 ---- if (l > 1 && strncmp (home, name, l) == 0 && (!name[l] || name[l] == '/')) { ! strncpy (tdir + 1, name + l, sizeof(tdir) - 2); tdir[0] = '~'; + tdir[sizeof(tdir) - 1] = '\0'; return (tdir); } diff -Nrc2 bash-2.01/jobs.c bash-2.01.1/jobs.c *** bash-2.01/jobs.c Wed May 14 13:04:04 1997 --- bash-2.01.1/jobs.c Mon Aug 18 11:54:02 1997 *************** *** 1695,1699 **** { if (WIFSIGNALED (child->status) || WIFSTOPPED (child->status)) ! set_tty_state (); else get_tty_state (); --- 1695,1707 ---- { if (WIFSIGNALED (child->status) || WIFSTOPPED (child->status)) ! { ! 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 (); *************** *** 2319,2322 **** --- 2327,2337 ---- 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) diff -Nrc2 bash-2.01/lib/glob/Makefile.in bash-2.01.1/lib/glob/Makefile.in *** bash-2.01/lib/glob/Makefile.in Tue Feb 18 11:11:59 1997 --- bash-2.01.1/lib/glob/Makefile.in Tue Sep 16 13:13:11 1997 *************** *** 108,109 **** --- 108,113 ---- 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 -Nrc2 bash-2.01/lib/malloc/Makefile.in bash-2.01.1/lib/malloc/Makefile.in *** bash-2.01/lib/malloc/Makefile.in Tue May 13 14:07:54 1997 --- bash-2.01.1/lib/malloc/Makefile.in Tue Sep 16 13:16:03 1997 *************** *** 92,97 **** -test -n "$(RANLIB)" && $(RANLIB) libmalloc.a ! alloca.o: $(ALLOCA_SOURCE) ! $(CC) $(CCFLAGS) -c $(ALLOCA_SOURCE) @- if test "$(ALLOCA_OBJECT)" != alloca.o ; then \ mv $(ALLOCA_OBJECT) alloca.o >/dev/null 2>&1 ; \ --- 92,97 ---- -test -n "$(RANLIB)" && $(RANLIB) libmalloc.a ! 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 ; \ *************** *** 104,110 **** $(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 --- 104,107 ---- *************** *** 113,114 **** --- 110,116 ---- 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 -Nrc2 bash-2.01/lib/readline/Makefile.in bash-2.01.1/lib/readline/Makefile.in *** bash-2.01/lib/readline/Makefile.in Mon Jun 2 16:33:41 1997 --- bash-2.01.1/lib/readline/Makefile.in Tue Sep 16 13:10:21 1997 *************** *** 191,194 **** --- 191,195 ---- 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 *************** *** 213,214 **** --- 214,244 ---- 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 -Nrc2 bash-2.01/lib/readline/complete.c bash-2.01.1/lib/readline/complete.c *** bash-2.01/lib/readline/complete.c Mon May 19 12:09:05 1997 --- bash-2.01.1/lib/readline/complete.c Mon Aug 25 14:20:27 1997 *************** *** 797,801 **** This also checks whether the common prefix of several matches needs to be quoted. */ ! should_quote = rl_strpbrk (match, rl_filename_quote_characters) != 0; do_replace = should_quote ? mtype : NO_MATCH; --- 797,803 ---- This also checks whether the common prefix of several matches needs to be quoted. */ ! should_quote = rl_filename_quote_characters ! ? (rl_strpbrk (match, rl_filename_quote_characters) != 0) ! : 0; do_replace = should_quote ? mtype : NO_MATCH; diff -Nrc2 bash-2.01/lib/readline/display.c bash-2.01.1/lib/readline/display.c *** bash-2.01/lib/readline/display.c Wed Mar 5 16:37:32 1997 --- bash-2.01.1/lib/readline/display.c Mon Aug 18 11:49:12 1997 *************** *** 1483,1487 **** _rl_redisplay_after_sigwinch () { ! char *t, *oldp; /* Clear the current line and put the cursor at column 0. Make sure --- 1483,1487 ---- _rl_redisplay_after_sigwinch () { ! char *t, *oldp, *oldl, *oldlprefix; /* Clear the current line and put the cursor at column 0. Make sure *************** *** 1509,1515 **** --- 1509,1520 ---- { 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 diff -Nrc2 bash-2.01/lib/readline/histfile.c bash-2.01.1/lib/readline/histfile.c *** bash-2.01/lib/readline/histfile.c Wed Mar 26 14:20:19 1997 --- bash-2.01.1/lib/readline/histfile.c Fri Jul 18 13:58:33 1997 *************** *** 247,251 **** /* 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)) { write (file, buffer + i, finfo.st_size - i); --- 247,251 ---- /* 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, 0600)) != -1)) { write (file, buffer + i, finfo.st_size - i); *************** *** 276,280 **** output = history_filename (filename); ! if ((file = open (output, mode, 0666)) == -1) { FREE (output); --- 276,280 ---- output = history_filename (filename); ! if ((file = open (output, mode, 0600)) == -1) { FREE (output); diff -Nrc2 bash-2.01/lib/readline/isearch.c bash-2.01.1/lib/readline/isearch.c *** bash-2.01/lib/readline/isearch.c Fri Apr 25 15:35:14 1997 --- bash-2.01.1/lib/readline/isearch.c Mon Aug 18 11:55:27 1997 *************** *** 263,267 **** } ! if (c >= 0 && (CTRL_CHAR (c) || META_CHAR (c) || c == RUBOUT)) { rl_execute_next (c); --- 263,267 ---- } ! if (c >= 0 && (CTRL_CHAR (c) || META_CHAR (c) || c == RUBOUT) && c != CTRL ('g')) { rl_execute_next (c); diff -Nrc2 bash-2.01/lib/readline/readline.h bash-2.01.1/lib/readline/readline.h *** bash-2.01/lib/readline/readline.h Tue Mar 4 12:47:29 1997 --- bash-2.01.1/lib/readline/readline.h Mon Aug 18 12:13:08 1997 *************** *** 256,260 **** so functions can find out whether they were called from a key binding or directly from an application. */ ! int rl_dispatching; /* The name of the terminal to use. */ --- 256,260 ---- so functions can find out whether they were called from a key binding or directly from an application. */ ! extern int rl_dispatching; /* The name of the terminal to use. */ diff -Nrc2 bash-2.01/lib/readline/tilde.c bash-2.01.1/lib/readline/tilde.c *** bash-2.01/lib/readline/tilde.c Thu Apr 10 14:54:41 1997 --- bash-2.01.1/lib/readline/tilde.c Tue Jul 1 17:25:52 1997 *************** *** 190,194 **** result = xmalloc (result_size = (strlen (string) + 16)); else ! result = xmalloc (result_size = strlen (string)); /* Scan through STRING expanding tildes as we come to them. */ --- 190,194 ---- result = xmalloc (result_size = (strlen (string) + 16)); else ! result = xmalloc (result_size = (strlen (string) + 1)); /* Scan through STRING expanding tildes as we come to them. */ diff -Nrc2 bash-2.01/lib/tilde/Makefile.in bash-2.01.1/lib/tilde/Makefile.in *** bash-2.01/lib/tilde/Makefile.in Tue Feb 18 11:15:23 1997 --- bash-2.01.1/lib/tilde/Makefile.in Tue Sep 16 13:13:44 1997 *************** *** 99,100 **** --- 99,103 ---- 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 -Nrc2 bash-2.01/lib/tilde/tilde.c bash-2.01.1/lib/tilde/tilde.c *** bash-2.01/lib/tilde/tilde.c Thu Apr 10 14:54:41 1997 --- bash-2.01.1/lib/tilde/tilde.c Tue Jul 1 17:25:52 1997 *************** *** 190,194 **** result = xmalloc (result_size = (strlen (string) + 16)); else ! result = xmalloc (result_size = strlen (string)); /* Scan through STRING expanding tildes as we come to them. */ --- 190,194 ---- result = xmalloc (result_size = (strlen (string) + 16)); else ! result = xmalloc (result_size = (strlen (string) + 1)); /* Scan through STRING expanding tildes as we come to them. */ diff -Nrc2 bash-2.01/locale.c bash-2.01.1/locale.c *** bash-2.01/locale.c Wed Nov 20 11:38:24 1996 --- bash-2.01.1/locale.c Mon Jul 7 16:48:42 1997 *************** *** 127,131 **** { FREE (lc_all); ! lc_all = value ? savestring (value) : savestring (default_locale); #if defined (HAVE_SETLOCALE) return (setlocale (LC_ALL, value) != 0); --- 127,139 ---- { FREE (lc_all); ! 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); diff -Nrc2 bash-2.01/mailcheck.c bash-2.01.1/mailcheck.c *** bash-2.01/mailcheck.c Wed Jan 22 10:44:47 1997 --- bash-2.01.1/mailcheck.c Fri Jul 18 13:59:48 1997 *************** *** 151,155 **** filename = full_pathname (file); ! i = find_mail_file (file); if (i >= 0) { --- 151,155 ---- filename = full_pathname (file); ! i = find_mail_file (filename); if (i >= 0) { diff -Nrc2 bash-2.01/oslib.c bash-2.01.1/oslib.c *** bash-2.01/oslib.c Wed Apr 23 10:23:25 1997 --- bash-2.01.1/oslib.c Fri Jul 18 14:00:51 1997 *************** *** 113,117 **** int strncasecmp (string1, string2, count) ! char *string1, *string2; int count; { --- 113,117 ---- int strncasecmp (string1, string2, count) ! const char *string1, *string2; int count; { *************** *** 121,126 **** if (count > 0) { ! s1 = string1; ! s2 = string2; do { --- 121,126 ---- if (count > 0) { ! s1 = (char *)string1; ! s2 = (char *)string2; do { *************** *** 139,149 **** int strcasecmp (string1, string2) ! char *string1, *string2; { register char *s1, *s2; register int r; ! s1 = string1; ! s2 = string2; while ((r = to_lower (*s1) - to_lower (*s2)) == 0) --- 139,149 ---- int strcasecmp (string1, string2) ! const char *string1, *string2; { register char *s1, *s2; register int r; ! s1 = (char *)string1; ! s2 = (char *)string2; while ((r = to_lower (*s1) - to_lower (*s2)) == 0) diff -Nrc2 bash-2.01/parse.y bash-2.01.1/parse.y *** bash-2.01/parse.y Wed May 14 15:00:17 1997 --- bash-2.01.1/parse.y Mon Aug 25 14:15:15 1997 *************** *** 2530,2534 **** #if defined (ARRAY_VARS) /* Identify possible compound array variable assignment. */ ! else if (character == '=') { peek_char = shell_getc (1); --- 2530,2534 ---- #if defined (ARRAY_VARS) /* Identify possible compound array variable assignment. */ ! else if (character == '=' && token_index > 0) { peek_char = shell_getc (1); *************** *** 3078,3081 **** --- 3078,3082 ---- /* Use the value of PWD because it is much more efficient. */ char t_string[PATH_MAX]; + int tlen; temp = get_string_value ("PWD"); *************** *** 3086,3094 **** { t_string[0] = '.'; ! t_string[1] = '\0'; } } else ! strcpy (t_string, temp); if (c == 'W') --- 3087,3101 ---- { t_string[0] = '.'; ! tlen = 1; } + else + tlen = strlen (t_string); } else ! { ! tlen = sizeof (t_string) - 1; ! strncpy (t_string, temp, tlen); ! } ! t_string[tlen] = '\0'; if (c == 'W') *************** *** 3099,3102 **** --- 3106,3111 ---- } 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)); diff -Nrc2 bash-2.01/print_cmd.c bash-2.01.1/print_cmd.c *** bash-2.01/print_cmd.c Thu Apr 10 09:30:23 1997 --- bash-2.01.1/print_cmd.c Mon Jul 14 12:32:56 1997 *************** *** 277,281 **** { WORD_LIST *w; ! char *t; fprintf (stderr, "%s", indirection_level_string ()); --- 277,281 ---- { WORD_LIST *w; ! char *t, *x; fprintf (stderr, "%s", indirection_level_string ()); *************** *** 284,292 **** t = w->word->word; if (t == 0 || *t == '\0') ! fprintf (stderr, "''%s", w->next ? " " : ""); else if (contains_shell_metas (t)) ! fprintf (stderr, "'%s'%s", t, w->next ? " " : ""); else ! fprintf (stderr, "%s%s", t, w->next ? " " : ""); } fprintf (stderr, "\n"); --- 284,296 ---- t = w->word->word; if (t == 0 || *t == '\0') ! fprintf (stderr, "''%s", w->next ? " " : ""); else if (contains_shell_metas (t)) ! { ! x = single_quote (t); ! fprintf (stderr, "%s%s", x, w->next ? " " : ""); ! free (x); ! } else ! fprintf (stderr, "%s%s", t, w->next ? " " : ""); } fprintf (stderr, "\n"); diff -Nrc2 bash-2.01/shell.c bash-2.01.1/shell.c *** bash-2.01/shell.c Wed May 14 13:04:28 1997 --- bash-2.01.1/shell.c Mon Aug 18 12:04:08 1997 *************** *** 249,253 **** { register int i; ! int code; volatile int locally_skip_execution; volatile int arg_index, top_level_arg_index; --- 249,253 ---- { register int i; ! int code, saverst; volatile int locally_skip_execution; volatile int arg_index, top_level_arg_index; *************** *** 460,463 **** --- 460,470 ---- } + #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 (); *************** *** 474,478 **** #if defined (RESTRICTED_SHELL) ! /* Turn on the restrictions after parsing the startup files. */ maybe_make_restricted (shell_name); #endif /* RESTRICTED_SHELL */ --- 481,488 ---- #if defined (RESTRICTED_SHELL) ! /* 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 -Nrc2 bash-2.01/sig.c bash-2.01.1/sig.c *** bash-2.01/sig.c Mon May 5 11:25:57 1997 --- bash-2.01.1/sig.c Tue Jul 29 10:57:25 1997 *************** *** 76,82 **** initialize_shell_signals (); initialize_job_signals (); ! #if !defined (HAVE_SYS_SIGLIST) && !defined (HAVE_STRSIGNAL) initialize_siglist (); ! #endif } --- 76,82 ---- initialize_shell_signals (); initialize_job_signals (); ! #if !defined (HAVE_SYS_SIGLIST) && !defined (HAVE_UNDER_SYS_SIGLIST) && !defined (HAVE_STRSIGNAL) initialize_siglist (); ! #endif /* !HAVE_SYS_SIGLIST && !HAVE_UNDER_SYS_SIGLIST && !HAVE_STRSIGNAL */ } *************** *** 230,235 **** --- 230,237 ---- 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 */ } diff -Nrc2 bash-2.01/sig.h bash-2.01.1/sig.h *** bash-2.01/sig.h Thu Jan 23 13:25:06 1997 --- bash-2.01.1/sig.h Thu Jul 3 14:29:47 1997 *************** *** 119,122 **** --- 119,124 ---- /* 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 -Nrc2 bash-2.01/siglist.c bash-2.01.1/siglist.c *** bash-2.01/siglist.c Mon Feb 17 14:28:07 1997 --- bash-2.01.1/siglist.c Mon Jul 28 12:29:13 1997 *************** *** 21,25 **** #include "config.h" ! #if !defined (HAVE_SYS_SIGLIST) && !defined (HAVE_STRSIGNAL) #include --- 21,25 ---- #include "config.h" ! #if !defined (HAVE_SYS_SIGLIST) && !defined (HAVE_UNDER_SYS_SIGLIST) && !defined (HAVE_STRSIGNAL) #include *************** *** 226,228 **** } } ! #endif /* !HAVE_SYS_SIGLIST && !HAVE_STRSIGNAL */ --- 226,228 ---- } } ! #endif /* !HAVE_SYS_SIGLIST && !HAVE_UNDER_SYS_SIGLIST && !HAVE_STRSIGNAL */ diff -Nrc2 bash-2.01/subst.c bash-2.01.1/subst.c *** bash-2.01/subst.c Wed May 14 13:05:11 1997 --- bash-2.01.1/subst.c Mon Aug 18 11:59:55 1997 *************** *** 3507,3511 **** 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. */ static int verify_substring_values (value, substr, vtype, e1p, e2p) --- 3507,3513 ---- 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. ! 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) *************** *** 3549,3553 **** if (*e1p >= len || *e1p < 0) ! return (0); if (t) --- 3551,3555 ---- if (*e1p >= len || *e1p < 0) ! return (-1); if (t) *************** *** 3673,3677 **** int quoted; { ! int e1, e2, vtype; char *temp, *val; SHELL_VAR *v; --- 3675,3679 ---- int quoted; { ! int e1, e2, vtype, r; char *temp, *val; SHELL_VAR *v; *************** *** 3686,3694 **** return ((char *)NULL); ! if (verify_substring_values (val, substr, vtype, &e1, &e2) == 0) { if (val && vtype == VT_ARRAYMEMBER) free (val); ! return (&expand_param_error); } --- 3688,3697 ---- return ((char *)NULL); ! r = verify_substring_values (val, substr, vtype, &e1, &e2); ! if (r <= 0) { if (val && vtype == VT_ARRAYMEMBER) free (val); ! return ((r == 0) ? &expand_param_error : (char *)NULL); } *************** *** 4507,4515 **** if (temp && *temp == '(') { temp1 = temp + 1; ! t_index = strlen (temp1) - 1; ! if (temp1[t_index] != ')') { #if 0 report_error ("%s: bad arithmetic substitution", temp); --- 4510,4521 ---- if (temp && *temp == '(') { + char *temp2; temp1 = temp + 1; ! temp2 = savestring (temp1); ! t_index = strlen (temp2) - 1; ! if (temp2[t_index] != ')') { + free (temp2); #if 0 report_error ("%s: bad arithmetic substitution", temp); *************** *** 4524,4531 **** /* Cut off ending `)' */ ! temp1[t_index] = '\0'; /* Expand variables found inside the expression. */ ! temp1 = maybe_expand_string (temp1, Q_DOUBLE_QUOTES, expand_string); /* No error messages. */ --- 4530,4538 ---- /* Cut off ending `)' */ ! temp2[t_index] = '\0'; /* Expand variables found inside the expression. */ ! temp1 = maybe_expand_string (temp2, Q_DOUBLE_QUOTES, expand_string); ! free (temp2); /* No error messages. */ diff -Nrc2 bash-2.01/support/config.guess bash-2.01.1/support/config.guess *** bash-2.01/support/config.guess Tue Mar 18 12:12:45 1997 --- bash-2.01.1/support/config.guess Thu Jul 17 12:17:28 1997 *************** *** 207,211 **** echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit 0 ;; ! sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit 0 ;; --- 207,211 ---- echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit 0 ;; ! sun3*:SunOS:*:*|sun:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit 0 ;; *************** *** 373,382 **** echo m68k-hp-bsd4.4 exit 0 ;; ! 9000/[3478]??: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 ;; esac HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` --- 373,385 ---- echo m68k-hp-bsd4.4 exit 0 ;; ! 9000/[34678]??:HP-UX:*:*) case "${UNAME_MACHINE}" in ! 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]*//'` diff -Nrc2 bash-2.01/test.c bash-2.01.1/test.c *** bash-2.01/test.c Fri Apr 11 17:40:11 1997 --- bash-2.01.1/test.c Mon Aug 18 12:28:36 1997 *************** *** 43,46 **** --- 43,51 ---- #endif + #include + #if !defined (errno) + extern int errno; + #endif /* !errno */ + #if !defined (_POSIX_VERSION) # include *************** *** 55,63 **** # define STRLEN(s) ((s)[0] ? ((s)[1] ? ((s)[2] ? strlen(s) : 2) : 1) : 0) #endif - - #include - #if !defined (errno) - extern int errno; - #endif /* !errno */ #if !defined (STREQ) --- 60,63 ---- diff -Nrc2 bash-2.01/tests/array.right bash-2.01.1/tests/array.right *** bash-2.01/tests/array.right Tue Mar 25 14:00:05 1997 --- bash-2.01.1/tests/array.right Fri Jul 18 14:26:44 1997 *************** *** 47,51 **** 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 f='([0]="" [1]="bdef" [2]="hello world" [3]="test" [4]="ninth element")' ./array.tests: unset: ps1: not an array variable --- 47,51 ---- declare -a b='([0]="this" [1]="is" [2]="a" [3]="test" [4]="" [5]="/etc/passwd")' declare -ar c='()' ! 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 *************** *** 57,61 **** 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 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")' --- 57,61 ---- declare -a b='([0]="this" [1]="is" [2]="a" [3]="test" [4]="" [5]="/etc/passwd")' declare -ar c='()' ! 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")' diff -Nrc2 bash-2.01/trap.c bash-2.01.1/trap.c *** bash-2.01/trap.c Wed May 14 13:08:03 1997 --- bash-2.01.1/trap.c Mon Aug 18 12:08:37 1997 *************** *** 24,27 **** --- 24,31 ---- #include + #if defined (HAVE_UNISTD_H) + # include + #endif + #include "bashtypes.h" #include "trap.h" *************** *** 29,36 **** #include "bashansi.h" - #if defined (HAVE_UNISTD_H) - # include - #endif - #include "shell.h" #include "signames.h" --- 33,36 ---- *************** *** 152,158 **** return ((sig >= 0 && sig <= NSIG) ? (int)sig : NO_SIG); for (sig = 0; sig <= NSIG; sig++) if (strcasecmp (string, signal_names[sig]) == 0 || ! strcasecmp (string, &(signal_names[sig])[3]) == 0) return ((int)sig); --- 152,160 ---- 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 || ! (STREQN (signal_names[sig], "SIG", 3) && ! strcasecmp (string, &(signal_names[sig])[3]) == 0)) return ((int)sig); *************** *** 299,302 **** --- 301,318 ---- else 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); } diff -Nrc2 bash-2.01/variables.c bash-2.01.1/variables.c *** bash-2.01/variables.c Wed May 14 13:08:38 1997 --- bash-2.01.1/variables.c Tue Jul 29 10:59:25 1997 *************** *** 908,912 **** --- 908,916 ---- { rseed = rseed * 1103515245 + 12345; + #if 0 return ((unsigned int)(rseed / 65536) % 32768); + #else + return ((unsigned int)(rseed % 32768)); + #endif } *************** *** 917,920 **** --- 921,925 ---- { rseed = seed; + last_random_value = 0; } *************** *** 937,941 **** /* Reset for command and process substitution. */ if (subshell_environment) ! sbrand ((int)(getpid() + NOW)); do --- 942,946 ---- /* Reset for command and process substitution. */ if (subshell_environment) ! sbrand (rseed + (int)(getpid() + NOW)); do *************** *** 1463,1466 **** --- 1468,1475 ---- 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,1512 **** --- 1518,1528 ---- 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) diff -Nrc2 bash-2.01/version.c bash-2.01.1/version.c *** bash-2.01/version.c Wed Sep 11 10:47:44 1996 --- bash-2.01.1/version.c Wed Jul 9 14:37:21 1997 *************** *** 64,67 **** printf ("GNU bash, version %s (%s)\n", shell_version_string (), MACHTYPE); if (extended) ! printf ("Copyright 1996 Free Software Foundation, Inc.\n"); } --- 64,67 ---- printf ("GNU bash, version %s (%s)\n", shell_version_string (), MACHTYPE); if (extended) ! printf ("Copyright 1997 Free Software Foundation, Inc.\n"); } diff -Nrc2 bash-2.01/y.tab.c bash-2.01.1/y.tab.c *** bash-2.01/y.tab.c Wed May 14 15:00:24 1997 --- bash-2.01.1/y.tab.c Thu Sep 4 10:59:28 1997 *************** *** 1,4 **** ! /* A Bison parser, made from ./parse.y by GNU Bison version 1.25 */ --- 1,4 ---- ! /* A Bison parser, made from /usr/homes/chet/src/bash/bash-2.01.1/parse.y by GNU Bison version 1.25 */ *************** *** 40,44 **** #define yacc_EOF 290 ! #line 21 "./parse.y" #include "config.h" --- 40,44 ---- #define yacc_EOF 290 ! #line 21 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" #include "config.h" *************** *** 190,194 **** static REDIRECTEE redir; ! #line 171 "./parse.y" typedef union { WORD_DESC *word; /* the word that we read. */ --- 190,194 ---- static REDIRECTEE redir; ! #line 171 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" typedef union { WORD_DESC *word; /* the word that we read. */ *************** *** 1072,1076 **** case 1: ! #line 215 "./parse.y" { /* Case of regular command. Discard the error --- 1072,1076 ---- case 1: ! #line 215 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { /* Case of regular command. Discard the error *************** *** 1083,1087 **** break;} case 2: ! #line 224 "./parse.y" { /* Case of regular command, but not a very --- 1083,1087 ---- break;} case 2: ! #line 224 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { /* Case of regular command, but not a very *************** *** 1092,1096 **** break;} case 3: ! #line 231 "./parse.y" { /* Error during parsing. Return NULL command. */ --- 1092,1096 ---- break;} case 3: ! #line 231 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { /* Error during parsing. Return NULL command. */ *************** *** 1109,1113 **** break;} case 4: ! #line 246 "./parse.y" { /* Case of EOF seen by itself. Do ignoreeof or --- 1109,1113 ---- break;} case 4: ! #line 246 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { /* Case of EOF seen by itself. Do ignoreeof or *************** *** 1119,1131 **** break;} case 5: ! #line 256 "./parse.y" { yyval.word_list = make_word_list (yyvsp[0].word, (WORD_LIST *)NULL); ; break;} case 6: ! #line 258 "./parse.y" { yyval.word_list = make_word_list (yyvsp[0].word, yyvsp[-1].word_list); ; break;} case 7: ! #line 262 "./parse.y" { redir.filename = yyvsp[0].word; --- 1119,1131 ---- break;} case 5: ! #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 "/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 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; *************** *** 1134,1138 **** break;} case 8: ! #line 267 "./parse.y" { redir.filename = yyvsp[0].word; --- 1134,1138 ---- break;} case 8: ! #line 267 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; *************** *** 1141,1145 **** break;} case 9: ! #line 272 "./parse.y" { redir.filename = yyvsp[0].word; --- 1141,1145 ---- break;} case 9: ! #line 272 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; *************** *** 1148,1152 **** break;} case 10: ! #line 277 "./parse.y" { redir.filename = yyvsp[0].word; --- 1148,1152 ---- break;} case 10: ! #line 277 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; *************** *** 1155,1159 **** break;} case 11: ! #line 282 "./parse.y" { redir.filename = yyvsp[0].word; --- 1155,1159 ---- break;} case 11: ! #line 282 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; *************** *** 1162,1166 **** break;} case 12: ! #line 287 "./parse.y" { redir.filename = yyvsp[0].word; --- 1162,1166 ---- break;} case 12: ! #line 287 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; *************** *** 1169,1173 **** break;} case 13: ! #line 292 "./parse.y" { redir.filename = yyvsp[0].word; --- 1169,1173 ---- break;} case 13: ! #line 292 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; *************** *** 1177,1181 **** break;} case 14: ! #line 298 "./parse.y" { redir.filename = yyvsp[0].word; --- 1177,1181 ---- break;} case 14: ! #line 298 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; *************** *** 1185,1189 **** break;} case 15: ! #line 304 "./parse.y" { redir.dest = yyvsp[0].number; --- 1185,1189 ---- break;} case 15: ! #line 304 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.dest = yyvsp[0].number; *************** *** 1192,1196 **** break;} case 16: ! #line 309 "./parse.y" { redir.dest = yyvsp[0].number; --- 1192,1196 ---- break;} case 16: ! #line 309 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.dest = yyvsp[0].number; *************** *** 1199,1203 **** break;} case 17: ! #line 314 "./parse.y" { redir.dest = yyvsp[0].number; --- 1199,1203 ---- break;} case 17: ! #line 314 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.dest = yyvsp[0].number; *************** *** 1206,1210 **** break;} case 18: ! #line 319 "./parse.y" { redir.dest = yyvsp[0].number; --- 1206,1210 ---- break;} case 18: ! #line 319 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.dest = yyvsp[0].number; *************** *** 1213,1217 **** break;} case 19: ! #line 324 "./parse.y" { redir.filename = yyvsp[0].word; --- 1213,1217 ---- break;} case 19: ! #line 324 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; *************** *** 1220,1224 **** break;} case 20: ! #line 329 "./parse.y" { redir.filename = yyvsp[0].word; --- 1220,1224 ---- break;} case 20: ! #line 329 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; *************** *** 1227,1231 **** break;} case 21: ! #line 334 "./parse.y" { redir.filename = yyvsp[0].word; --- 1227,1231 ---- break;} case 21: ! #line 334 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; *************** *** 1234,1238 **** break;} case 22: ! #line 339 "./parse.y" { redir.filename = yyvsp[0].word; --- 1234,1238 ---- break;} case 22: ! #line 339 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; *************** *** 1241,1245 **** break;} case 23: ! #line 344 "./parse.y" { redir.filename = yyvsp[0].word; --- 1241,1245 ---- break;} case 23: ! #line 344 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; *************** *** 1250,1254 **** break;} case 24: ! #line 351 "./parse.y" { redir.filename = yyvsp[0].word; --- 1250,1254 ---- break;} case 24: ! #line 351 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; *************** *** 1259,1263 **** break;} case 25: ! #line 358 "./parse.y" { redir.dest = 0L; --- 1259,1263 ---- break;} case 25: ! #line 358 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.dest = 0L; *************** *** 1266,1270 **** break;} case 26: ! #line 363 "./parse.y" { redir.dest = 0L; --- 1266,1270 ---- break;} case 26: ! #line 363 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.dest = 0L; *************** *** 1273,1277 **** break;} case 27: ! #line 368 "./parse.y" { redir.dest = 0L; --- 1273,1277 ---- break;} case 27: ! #line 368 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.dest = 0L; *************** *** 1280,1284 **** break;} case 28: ! #line 373 "./parse.y" { redir.dest = 0L; --- 1280,1284 ---- break;} case 28: ! #line 373 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.dest = 0L; *************** *** 1287,1291 **** break;} case 29: ! #line 378 "./parse.y" { redir.filename = yyvsp[0].word; --- 1287,1291 ---- break;} case 29: ! #line 378 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; *************** *** 1294,1298 **** break;} case 30: ! #line 383 "./parse.y" { redir.filename = yyvsp[0].word; --- 1294,1298 ---- break;} case 30: ! #line 383 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; *************** *** 1301,1305 **** break;} case 31: ! #line 388 "./parse.y" { redir.filename = yyvsp[0].word; --- 1301,1305 ---- break;} case 31: ! #line 388 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; *************** *** 1308,1312 **** break;} case 32: ! #line 393 "./parse.y" { redir.filename = yyvsp[0].word; --- 1308,1312 ---- break;} case 32: ! #line 393 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; *************** *** 1315,1319 **** break;} case 33: ! #line 398 "./parse.y" { redir.filename = yyvsp[0].word; --- 1315,1319 ---- break;} case 33: ! #line 398 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; *************** *** 1322,1338 **** break;} case 34: ! #line 405 "./parse.y" { yyval.element.word = yyvsp[0].word; yyval.element.redirect = 0; ; break;} case 35: ! #line 407 "./parse.y" { yyval.element.word = yyvsp[0].word; yyval.element.redirect = 0; ; break;} case 36: ! #line 409 "./parse.y" { yyval.element.redirect = yyvsp[0].redirect; yyval.element.word = 0; ; break;} case 37: ! #line 413 "./parse.y" { yyval.redirect = yyvsp[0].redirect; --- 1322,1338 ---- break;} case 34: ! #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 "/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 "/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 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.redirect = yyvsp[0].redirect; *************** *** 1340,1344 **** break;} case 38: ! #line 417 "./parse.y" { register REDIRECT *t; --- 1340,1344 ---- break;} case 38: ! #line 417 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { register REDIRECT *t; *************** *** 1351,1371 **** break;} case 39: ! #line 428 "./parse.y" { yyval.command = make_simple_command (yyvsp[0].element, (COMMAND *)NULL); ; break;} case 40: ! #line 430 "./parse.y" { yyval.command = make_simple_command (yyvsp[0].element, yyvsp[-1].command); ; break;} case 41: ! #line 434 "./parse.y" { yyval.command = clean_simple_command (yyvsp[0].command); ; break;} case 42: ! #line 436 "./parse.y" { yyval.command = yyvsp[0].command; ; break;} case 43: ! #line 438 "./parse.y" { COMMAND *tc; --- 1351,1371 ---- break;} case 39: ! #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 "/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 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = clean_simple_command (yyvsp[0].command); ; break;} case 42: ! #line 436 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = yyvsp[0].command; ; break;} case 43: ! #line 438 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { COMMAND *tc; *************** *** 1396,1460 **** break;} case 44: ! #line 467 "./parse.y" { yyval.command = yyvsp[0].command; ; break;} case 45: ! #line 469 "./parse.y" { yyval.command = yyvsp[0].command; ; break;} case 46: ! #line 471 "./parse.y" { yyval.command = make_while_command (yyvsp[-3].command, yyvsp[-1].command); ; break;} case 47: ! #line 473 "./parse.y" { yyval.command = make_until_command (yyvsp[-3].command, yyvsp[-1].command); ; break;} case 48: ! #line 475 "./parse.y" { yyval.command = yyvsp[0].command; ; break;} case 49: ! #line 477 "./parse.y" { yyval.command = yyvsp[0].command; ; break;} case 50: ! #line 479 "./parse.y" { yyval.command = yyvsp[0].command; ; break;} case 51: ! #line 481 "./parse.y" { yyval.command = yyvsp[0].command; ; break;} case 52: ! #line 483 "./parse.y" { yyval.command = yyvsp[0].command; ; break;} case 53: ! #line 487 "./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" { 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" { 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" { 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" { 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" { 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" { yyval.command = make_select_command (yyvsp[-4].word, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), yyvsp[-1].command); --- 1396,1460 ---- break;} case 44: ! #line 467 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = yyvsp[0].command; ; break;} case 45: ! #line 469 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = yyvsp[0].command; ; break;} case 46: ! #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 "/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 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = yyvsp[0].command; ; break;} case 49: ! #line 477 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = yyvsp[0].command; ; break;} case 50: ! #line 479 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = yyvsp[0].command; ; break;} case 51: ! #line 481 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = yyvsp[0].command; ; break;} case 52: ! #line 483 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = yyvsp[0].command; ; break;} case 53: ! #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 "/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 "/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 "/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 "/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 "/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 "/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); *************** *** 1462,1466 **** break;} case 60: ! #line 505 "./parse.y" { yyval.command = make_select_command (yyvsp[-4].word, add_string_to_list ("$@", (WORD_LIST *)NULL), yyvsp[-1].command); --- 1462,1466 ---- break;} case 60: ! #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); *************** *** 1468,1472 **** break;} case 61: ! #line 509 "./parse.y" { yyval.command = make_select_command (yyvsp[-5].word, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), yyvsp[-1].command); --- 1468,1472 ---- break;} case 61: ! #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); *************** *** 1474,1478 **** break;} case 62: ! #line 513 "./parse.y" { yyval.command = make_select_command (yyvsp[-5].word, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), yyvsp[-1].command); --- 1474,1478 ---- break;} case 62: ! #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); *************** *** 1480,1484 **** break;} case 63: ! #line 517 "./parse.y" { yyval.command = make_select_command (yyvsp[-8].word, (WORD_LIST *)reverse_list (yyvsp[-5].word_list), yyvsp[-1].command); --- 1480,1484 ---- break;} case 63: ! #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); *************** *** 1486,1490 **** break;} case 64: ! #line 521 "./parse.y" { yyval.command = make_select_command (yyvsp[-8].word, (WORD_LIST *)reverse_list (yyvsp[-5].word_list), yyvsp[-1].command); --- 1486,1490 ---- break;} case 64: ! #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); *************** *** 1492,1584 **** break;} case 65: ! #line 527 "./parse.y" { yyval.command = make_case_command (yyvsp[-4].word, (PATTERN_LIST *)NULL); ; break;} case 66: ! #line 529 "./parse.y" { yyval.command = make_case_command (yyvsp[-5].word, yyvsp[-2].pattern); ; break;} case 67: ! #line 531 "./parse.y" { yyval.command = make_case_command (yyvsp[-4].word, yyvsp[-1].pattern); ; break;} case 68: ! #line 535 "./parse.y" { yyval.command = make_function_def (yyvsp[-4].word, yyvsp[0].command, function_dstart, function_bstart); ; break;} case 69: ! #line 539 "./parse.y" { yyval.command = make_function_def (yyvsp[-4].word, yyvsp[0].command, function_dstart, function_bstart); ; break;} case 70: ! #line 542 "./parse.y" { yyval.command = make_function_def (yyvsp[-2].word, yyvsp[0].command, function_dstart, function_bstart); ; break;} case 71: ! #line 546 "./parse.y" { yyvsp[-1].command->flags |= CMD_WANT_SUBSHELL; yyval.command = yyvsp[-1].command; ; break;} case 72: ! #line 550 "./parse.y" { yyval.command = make_if_command (yyvsp[-3].command, yyvsp[-1].command, (COMMAND *)NULL); ; break;} case 73: ! #line 552 "./parse.y" { yyval.command = make_if_command (yyvsp[-5].command, yyvsp[-3].command, yyvsp[-1].command); ; break;} case 74: ! #line 554 "./parse.y" { yyval.command = make_if_command (yyvsp[-4].command, yyvsp[-2].command, yyvsp[-1].command); ; break;} case 75: ! #line 559 "./parse.y" { yyval.command = make_group_command (yyvsp[-1].command); ; break;} case 76: ! #line 563 "./parse.y" { yyval.command = make_if_command (yyvsp[-2].command, yyvsp[0].command, (COMMAND *)NULL); ; break;} case 77: ! #line 565 "./parse.y" { yyval.command = make_if_command (yyvsp[-4].command, yyvsp[-2].command, yyvsp[0].command); ; break;} case 78: ! #line 567 "./parse.y" { yyval.command = make_if_command (yyvsp[-3].command, yyvsp[-1].command, yyvsp[0].command); ; break;} case 80: ! #line 572 "./parse.y" { yyvsp[0].pattern->next = yyvsp[-1].pattern; yyval.pattern = yyvsp[0].pattern; ; break;} case 81: ! #line 576 "./parse.y" { yyval.pattern = make_pattern_list (yyvsp[-2].word_list, yyvsp[0].command); ; break;} case 82: ! #line 578 "./parse.y" { yyval.pattern = make_pattern_list (yyvsp[-2].word_list, (COMMAND *)NULL); ; break;} case 83: ! #line 580 "./parse.y" { yyval.pattern = make_pattern_list (yyvsp[-2].word_list, yyvsp[0].command); ; break;} case 84: ! #line 582 "./parse.y" { yyval.pattern = make_pattern_list (yyvsp[-2].word_list, (COMMAND *)NULL); ; break;} case 86: ! #line 587 "./parse.y" { yyvsp[-1].pattern->next = yyvsp[-2].pattern; yyval.pattern = yyvsp[-1].pattern; ; break;} case 87: ! #line 591 "./parse.y" { yyval.word_list = make_word_list (yyvsp[0].word, (WORD_LIST *)NULL); ; break;} case 88: ! #line 593 "./parse.y" { yyval.word_list = make_word_list (yyvsp[0].word, yyvsp[-2].word_list); ; break;} case 89: ! #line 602 "./parse.y" { yyval.command = yyvsp[0].command; --- 1492,1584 ---- break;} case 65: ! #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 "/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 "/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 "/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 "/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 "/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 "/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 "/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 "/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 "/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 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = make_group_command (yyvsp[-1].command); ; break;} case 76: ! #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 "/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 "/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 "/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 "/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 "/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 "/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 "/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 "/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 "/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 "/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 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = yyvsp[0].command; *************** *** 1588,1592 **** break;} case 91: ! #line 611 "./parse.y" { yyval.command = yyvsp[0].command; --- 1588,1592 ---- break;} case 91: ! #line 611 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = yyvsp[0].command; *************** *** 1594,1598 **** break;} case 93: ! #line 618 "./parse.y" { if (yyvsp[-2].command->type == cm_connection) --- 1594,1598 ---- break;} case 93: ! #line 618 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { if (yyvsp[-2].command->type == cm_connection) *************** *** 1603,1615 **** break;} case 95: ! #line 629 "./parse.y" { yyval.command = command_connect (yyvsp[-3].command, yyvsp[0].command, AND_AND); ; break;} case 96: ! #line 631 "./parse.y" { yyval.command = command_connect (yyvsp[-3].command, yyvsp[0].command, OR_OR); ; break;} case 97: ! #line 633 "./parse.y" { if (yyvsp[-3].command->type == cm_connection) --- 1603,1615 ---- break;} case 95: ! #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 "/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 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { if (yyvsp[-3].command->type == cm_connection) *************** *** 1620,1636 **** break;} case 98: ! #line 640 "./parse.y" { yyval.command = command_connect (yyvsp[-3].command, yyvsp[0].command, ';'); ; break;} case 99: ! #line 642 "./parse.y" { yyval.command = command_connect (yyvsp[-3].command, yyvsp[0].command, ';'); ; break;} case 100: ! #line 644 "./parse.y" { yyval.command = yyvsp[0].command; ; break;} case 106: ! #line 663 "./parse.y" { yyval.command = yyvsp[0].command; --- 1620,1636 ---- break;} case 98: ! #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 "/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 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = yyvsp[0].command; ; break;} case 106: ! #line 663 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = yyvsp[0].command; *************** *** 1640,1644 **** break;} case 107: ! #line 669 "./parse.y" { if (yyvsp[-1].command->type == cm_connection) --- 1640,1644 ---- break;} case 107: ! #line 669 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { if (yyvsp[-1].command->type == cm_connection) *************** *** 1651,1655 **** break;} case 108: ! #line 678 "./parse.y" { yyval.command = yyvsp[-1].command; --- 1651,1655 ---- break;} case 108: ! #line 678 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = yyvsp[-1].command; *************** *** 1659,1671 **** break;} case 109: ! #line 686 "./parse.y" { yyval.command = command_connect (yyvsp[-3].command, yyvsp[0].command, AND_AND); ; break;} case 110: ! #line 688 "./parse.y" { yyval.command = command_connect (yyvsp[-3].command, yyvsp[0].command, OR_OR); ; break;} case 111: ! #line 690 "./parse.y" { if (yyvsp[-2].command->type == cm_connection) --- 1659,1671 ---- break;} case 109: ! #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 "/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 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { if (yyvsp[-2].command->type == cm_connection) *************** *** 1676,1692 **** break;} case 112: ! #line 697 "./parse.y" { yyval.command = command_connect (yyvsp[-2].command, yyvsp[0].command, ';'); ; break;} case 113: ! #line 700 "./parse.y" { yyval.command = yyvsp[0].command; ; break;} case 114: ! #line 704 "./parse.y" { yyval.command = yyvsp[0].command; ; break;} case 115: ! #line 706 "./parse.y" { yyvsp[0].command->flags |= CMD_INVERT_RETURN; --- 1676,1692 ---- break;} case 112: ! #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 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = yyvsp[0].command; ; break;} case 114: ! #line 704 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = yyvsp[0].command; ; break;} case 115: ! #line 706 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyvsp[0].command->flags |= CMD_INVERT_RETURN; *************** *** 1695,1699 **** break;} case 116: ! #line 711 "./parse.y" { yyvsp[0].command->flags |= yyvsp[-1].number; --- 1695,1699 ---- break;} case 116: ! #line 711 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyvsp[0].command->flags |= yyvsp[-1].number; *************** *** 1702,1706 **** break;} case 117: ! #line 716 "./parse.y" { yyvsp[0].command->flags |= yyvsp[-2].number; --- 1702,1706 ---- break;} case 117: ! #line 716 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyvsp[0].command->flags |= yyvsp[-2].number; *************** *** 1709,1713 **** break;} case 118: ! #line 721 "./parse.y" { yyvsp[0].command->flags |= yyvsp[-1].number|CMD_INVERT_RETURN; --- 1709,1713 ---- break;} case 118: ! #line 721 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyvsp[0].command->flags |= yyvsp[-1].number|CMD_INVERT_RETURN; *************** *** 1716,1732 **** break;} case 119: ! #line 729 "./parse.y" { yyval.command = command_connect (yyvsp[-3].command, yyvsp[0].command, '|'); ; break;} case 120: ! #line 731 "./parse.y" { yyval.command = yyvsp[0].command; ; break;} case 121: ! #line 735 "./parse.y" { yyval.number = CMD_TIME_PIPELINE; ; break;} case 122: ! #line 737 "./parse.y" { yyval.number = CMD_TIME_PIPELINE|CMD_TIME_POSIX; ; break;} --- 1716,1732 ---- break;} case 119: ! #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 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = yyvsp[0].command; ; break;} case 121: ! #line 735 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.number = CMD_TIME_PIPELINE; ; break;} case 122: ! #line 737 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.number = CMD_TIME_PIPELINE|CMD_TIME_POSIX; ; break;} *************** *** 1929,1933 **** goto yynewstate; } ! #line 739 "./parse.y" --- 1929,1933 ---- goto yynewstate; } ! #line 739 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" *************** *** 3723,3727 **** #if defined (ARRAY_VARS) /* Identify possible compound array variable assignment. */ ! else if (character == '=') { peek_char = shell_getc (1); --- 3723,3727 ---- #if defined (ARRAY_VARS) /* Identify possible compound array variable assignment. */ ! else if (character == '=' && token_index > 0) { peek_char = shell_getc (1); *************** *** 4271,4274 **** --- 4271,4275 ---- /* Use the value of PWD because it is much more efficient. */ char t_string[PATH_MAX]; + int tlen; temp = get_string_value ("PWD"); *************** *** 4279,4287 **** { t_string[0] = '.'; ! t_string[1] = '\0'; } } else ! strcpy (t_string, temp); if (c == 'W') --- 4280,4294 ---- { t_string[0] = '.'; ! tlen = 1; } + else + tlen = strlen (t_string); } else ! { ! tlen = sizeof (t_string) - 1; ! strncpy (t_string, temp, tlen); ! } ! t_string[tlen] = '\0'; if (c == 'W') *************** *** 4292,4295 **** --- 4299,4304 ---- } 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));