From 0fdd7e94fff2e97c90ec123eadab60c5e69c950a Mon Sep 17 00:00:00 2001 From: Chet Ramey Date: Sat, 3 Dec 2011 14:01:33 -0500 Subject: [PATCH] bash-3.1 more stray file cleanup --- CWRU/POSIX.NOTES.old | 82 - array.c.diff | 125 - bash-getcwd-patch | 287 - bashline.c.diff | 130 - bashref.texi.diff | 120 - braces.c.diff | 25 - braces.c.diff2 | 16 - configure.debug | 28094 ------------------------------- cross-build/cygwin32.cache.old | 42 - d | 15 - d1 | 145 - d1a | 553 - d1b | 91 - display.c.diff | 155 - general.c.diff | 15 - jobs.c.diff | 81 - jobs.c.instrumented | 3699 ---- jobs.c.trace | 4028 ----- lib/readline/d | 270 - lib/readline/display.c.old | 2309 --- lib/readline/doc/Makefile.old | 76 - mbutil.c.diff | 23 - njobs.c | 3535 ---- parse.y.old | 4891 ------ pcomplete.c.diff | 20 - po.orig/LINGUAS | 2 - po.orig/Makefile.in.in | 357 - po.orig/Makevars | 41 - po.orig/Makevars.template | 41 - po.orig/POTFILES.in | 76 - po.orig/README | 1 - po.orig/Rules-builtins | 19 - po.orig/Rules-quot | 42 - po.orig/bash.pot | 4174 ----- po.orig/boldquot.sed | 10 - po.orig/builtins.pot | 2845 ---- po.orig/en@boldquot.gmo | Bin 120143 -> 0 bytes po.orig/en@boldquot.header | 25 - po.orig/en@boldquot.po | 4349 ----- po.orig/en@quot.gmo | Bin 118583 -> 0 bytes po.orig/en@quot.header | 22 - po.orig/en@quot.po | 4283 ----- po.orig/insert-header.sin | 23 - po.orig/quot.sed | 6 - po.orig/readline.po | 133 - po.orig/remove-potcdate.sin | 19 - shmbutil.h.diff | 30 - subst.c.diff | 108 - variables.c.diff | 68 - vi-glob-tilde.patch | 53 - vi_mode.c.diff | 79 - wifcontinued-test.c | 18 - 52 files changed, 65651 deletions(-) delete mode 100644 CWRU/POSIX.NOTES.old delete mode 100644 array.c.diff delete mode 100644 bash-getcwd-patch delete mode 100644 bashline.c.diff delete mode 100644 bashref.texi.diff delete mode 100644 braces.c.diff delete mode 100644 braces.c.diff2 delete mode 100755 configure.debug delete mode 100644 cross-build/cygwin32.cache.old delete mode 100644 d delete mode 100644 d1 delete mode 100644 d1a delete mode 100644 d1b delete mode 100644 display.c.diff delete mode 100644 general.c.diff delete mode 100644 jobs.c.diff delete mode 100644 jobs.c.instrumented delete mode 100644 jobs.c.trace delete mode 100644 lib/readline/d delete mode 100644 lib/readline/display.c.old delete mode 100644 lib/readline/doc/Makefile.old delete mode 100644 mbutil.c.diff delete mode 100644 njobs.c delete mode 100644 parse.y.old delete mode 100644 pcomplete.c.diff delete mode 100644 po.orig/LINGUAS delete mode 100644 po.orig/Makefile.in.in delete mode 100644 po.orig/Makevars delete mode 100644 po.orig/Makevars.template delete mode 100644 po.orig/POTFILES.in delete mode 100644 po.orig/README delete mode 100644 po.orig/Rules-builtins delete mode 100644 po.orig/Rules-quot delete mode 100644 po.orig/bash.pot delete mode 100644 po.orig/boldquot.sed delete mode 100644 po.orig/builtins.pot delete mode 100644 po.orig/en@boldquot.gmo delete mode 100644 po.orig/en@boldquot.header delete mode 100644 po.orig/en@boldquot.po delete mode 100644 po.orig/en@quot.gmo delete mode 100644 po.orig/en@quot.header delete mode 100644 po.orig/en@quot.po delete mode 100644 po.orig/insert-header.sin delete mode 100644 po.orig/quot.sed delete mode 100644 po.orig/readline.po delete mode 100644 po.orig/remove-potcdate.sin delete mode 100644 shmbutil.h.diff delete mode 100644 subst.c.diff delete mode 100644 variables.c.diff delete mode 100644 vi-glob-tilde.patch delete mode 100644 vi_mode.c.diff delete mode 100644 wifcontinued-test.c diff --git a/CWRU/POSIX.NOTES.old b/CWRU/POSIX.NOTES.old deleted file mode 100644 index 1707ab10c..000000000 --- a/CWRU/POSIX.NOTES.old +++ /dev/null @@ -1,82 +0,0 @@ -Starting bash with the `--posix' command-line option or executing -`set -o posix' while bash is running will cause bash to conform more -closely to the Posix.2 standard by changing the behavior to match that -specified by Posix.2 in areas where the bash default differs. - -The following list is what's changed when `posix mode' is in effect: - -1. When a command in the hash table no longer exists, bash will re-search - $PATH to find the new location. This is also available with - `shopt -s checkhash'. - -2. The >& redirection does not redirect stdout and stderr. - -3. The message printed by the job control code and builtins when a job - exits with a non-zero status is `Done(status)'. - -4. Reserved words may not be aliased. - -5. The Posix.2 PS1 and PS2 expansions of `!' -> history number and - `!!' -> `!' are enabled, and parameter expansion is performed on - the value regardless of the setting of the `promptvars' option. - -6. Interactive comments are enabled by default. (Note that bash has - them on by default anyway.) - -7. The Posix.2 startup files are executed ($ENV) rather than the normal - bash files. - -8. Tilde expansion is only performed on assignments preceding a command - name, rather than on all assignment statements on the line. - -9. The default history file is ~/.sh_history (default value of $HISTFILE). - -10. The output of `kill -l' prints all the signal names on a single line, - separated by spaces. - -11. Non-interactive shells exit if `file' in `. file' is not found. - -12. Redirection operators do not perform pathname expansion on the word - in the redirection unless the shell is interactive - -13. Function names must be valid shell identifiers. That is, they may not - contain characters other than letters, digits, and underscores, and - may not start with a digit. Declaring a function with an illegal name - causes a fatal syntax error in non-interactive shells. - -14. Posix.2 `special' builtins are found before shell functions during command - lookup. - -15. If a Posix.2 special builtin returns an error status, a non-interactive - shell exits. The fatal errors are those listed in the POSIX.2 standard, - and include things like passing incorrect options, redirection errors, - variable assignment errors for assignments preceding the command name, - and so on. - -16. The environment passed to executed commands is not sorted. Neither is - the output of `set'. This is not strictly Posix.2 behavior, but sh - does it this way. Ksh does not. It's not necessary to sort the - environment; no program should rely on it being sorted. - -17. If the `cd' builtin finds a directory to change to using $CDPATH, the - value it assigns to $PWD does not contain any symbolic links, as if - `cd -P' had been executed. - -18. A non-interactive shell exits with an error status if a variable - assignment error occurs when no command name follows the assignment - statements. A variable assignment error occurs, for example, when - trying to assign a value to a read-only variable. - -19. A non-interactive shell exits with an error status if the iteration - variable in a for statement or the selection variable in a select - statement is a read-only variable. - -20. Process substitution is not available. - -21. Assignment statements preceding POSIX.2 `special' builtins persist in - the shell environment after the builtin completes. - -There is other Posix.2 behavior that bash does not implement. Specifically: - -1. Assignment statements affect the execution environment of all builtins, - not just special ones. diff --git a/array.c.diff b/array.c.diff deleted file mode 100644 index 8834d311e..000000000 --- a/array.c.diff +++ /dev/null @@ -1,125 +0,0 @@ -*** ../bash-3.0/array.c Thu May 6 08:24:13 2004 ---- array.c Wed Aug 25 15:50:42 2004 -*************** -*** 108,112 **** - ARRAY_ELEMENT *ae, *new; - -! if (!a) - return((ARRAY *) NULL); - a1 = array_create(); ---- 108,112 ---- - ARRAY_ELEMENT *ae, *new; - -! if (a == 0) - return((ARRAY *) NULL); - a1 = array_create(); -*************** -*** 244,250 **** - register ARRAY_ELEMENT *ae, *new; - -! if (a == 0) - return 0; -! if (n <= 0) - return (a->num_elements); - ---- 244,250 ---- - register ARRAY_ELEMENT *ae, *new; - -! if (a == 0 || (array_empty(a) && s == 0)) - return 0; -! else if (n <= 0) - return (a->num_elements); - -*************** -*** 254,257 **** ---- 254,259 ---- - ADD_BEFORE(ae, new); - a->num_elements++; -+ if (array_num_elements(a) == 1) /* array was empty */ -+ return 1; - } - -*************** -*** 289,293 **** - char *t; - -! if (array == 0 || array->head == 0 || array_empty (array)) - return (ARRAY *)NULL; - for (a = element_forw(array->head); a != array->head; a = element_forw(a)) { ---- 291,295 ---- - char *t; - -! if (array == 0 || array_head(array) == 0 || array_empty(array)) - return (ARRAY *)NULL; - for (a = element_forw(array->head); a != array->head; a = element_forw(a)) { -*************** -*** 314,318 **** - char *ifs, sep[2]; - -! p = array_head (a); - if (p == 0 || array_empty (a) || start > array_max_index(a)) - return ((char *)NULL); ---- 316,320 ---- - char *ifs, sep[2]; - -! p = a ? array_head (a) : 0; - if (p == 0 || array_empty (a) || start > array_max_index(a)) - return ((char *)NULL); -*************** -*** 355,362 **** - char *t, *ifs, sifs[2]; - -! if (array_head (a) == 0 || array_empty (a)) - return ((char *)NULL); - -! a2 = array_copy (a); - for (e = element_forw(a2->head); e != a2->head; e = element_forw(e)) { - t = pat_subst(element_value(e), pat, rep, mflags); ---- 357,364 ---- - char *t, *ifs, sifs[2]; - -! if (a == 0 || array_head(a) == 0 || array_empty(a)) - return ((char *)NULL); - -! a2 = array_copy(a); - for (e = element_forw(a2->head); e != a2->head; e = element_forw(e)) { - t = pat_subst(element_value(e), pat, rep, mflags); -*************** -*** 428,432 **** - register ARRAY_ELEMENT *new, *ae; - -! if (!a) - return(-1); - new = array_create_element(i, v); ---- 430,434 ---- - register ARRAY_ELEMENT *new, *ae; - -! if (a == 0) - return(-1); - new = array_create_element(i, v); -*************** -*** 452,456 **** - array_dispose_element(new); - free(element_value(ae)); -! ae->value = savestring(v); - return(0); - } else if (element_index(ae) > i) { ---- 454,458 ---- - array_dispose_element(new); - free(element_value(ae)); -! ae->value = v ? savestring(v) : (char *)NULL; - return(0); - } else if (element_index(ae) > i) { -*************** -*** 474,478 **** - register ARRAY_ELEMENT *ae; - -! if (!a || array_empty(a)) - return((ARRAY_ELEMENT *) NULL); - for (ae = element_forw(a->head); ae != a->head; ae = element_forw(ae)) ---- 476,480 ---- - register ARRAY_ELEMENT *ae; - -! if (a == 0 || array_empty(a)) - return((ARRAY_ELEMENT *) NULL); - for (ae = element_forw(a->head); ae != a->head; ae = element_forw(ae)) diff --git a/bash-getcwd-patch b/bash-getcwd-patch deleted file mode 100644 index a64f10c8d..000000000 --- a/bash-getcwd-patch +++ /dev/null @@ -1,287 +0,0 @@ -*** ../bash-2.05b-patched/builtins/common.c Fri Jun 28 12:24:31 2002 ---- builtins/common.c Thu Sep 30 22:25:20 2004 -*************** -*** 455,464 **** - { - char *directory; - - if (no_symbolic_links) - { -! if (the_current_working_directory) -! free (the_current_working_directory); -! - the_current_working_directory = (char *)NULL; - } ---- 469,477 ---- - { - char *directory; -+ size_t dsize; - - if (no_symbolic_links) - { -! FREE (the_current_working_directory); - the_current_working_directory = (char *)NULL; - } -*************** -*** 466,480 **** - if (the_current_working_directory == 0) - { -! the_current_working_directory = (char *)xmalloc (PATH_MAX); -! the_current_working_directory[0] = '\0'; -! directory = getcwd (the_current_working_directory, PATH_MAX); -! if (directory == 0) - { -! fprintf (stderr, "%s: could not get current directory: %s: %s\n", - (for_whom && *for_whom) ? for_whom : get_name_for_error (), -! bash_getcwd_errstr, strerror (errno)); -! -! free (the_current_working_directory); -! the_current_working_directory = (char *)NULL; - return (char *)NULL; - } ---- 479,488 ---- - if (the_current_working_directory == 0) - { -! the_current_working_directory = getcwd (0, 0); -! if (the_current_working_directory == 0) - { -! fprintf (stderr, _("%s: error retrieving current directory: %s: %s\n"), - (for_whom && *for_whom) ? for_whom : get_name_for_error (), -! _(bash_getcwd_errstr), strerror (errno)); - return (char *)NULL; - } -*** ../bash-2.05b-patched/builtins/cd.def Mon Jul 15 14:51:39 2002 ---- builtins/cd.def Sun Nov 7 15:13:42 2004 -*************** -*** 122,126 **** - the_current_working_directory () */ - static char * -! resetpwd () - { - char *tdir; ---- 124,129 ---- - the_current_working_directory () */ - static char * -! resetpwd (caller) -! char *caller; - { - char *tdir; -*************** -*** 128,132 **** - FREE (the_current_working_directory); - the_current_working_directory = (char *)NULL; -! tdir = get_working_directory ("cd"); - return (tdir); - } ---- 131,135 ---- - FREE (the_current_working_directory); - the_current_working_directory = (char *)NULL; -! tdir = get_working_directory (caller); - return (tdir); - } -*************** -*** 333,336 **** ---- 340,349 ---- - directory = tcwd ? (verbatim_pwd ? sh_physpath (tcwd, 0) : tcwd) - : get_working_directory ("pwd"); -+ -+ /* Try again using getcwd() if canonicalization fails (for instance, if -+ the file system has changed state underneath bash). */ -+ if (tcwd && directory == 0) -+ directory = resetpwd ("pwd"); -+ - #undef tcwd - -*************** -*** 364,368 **** - { - char *t, *tdir; -! int err, canon_failed; - - tdir = (char *)NULL; ---- 379,383 ---- - { - char *t, *tdir; -! int err, canon_failed, r; - - tdir = (char *)NULL; -*************** -*** 399,403 **** - if (posixly_correct && nolinks == 0 && canon_failed) - { -! errno = ENOENT; - return (0); - } ---- 414,423 ---- - if (posixly_correct && nolinks == 0 && canon_failed) - { -! #if defined ENAMETOOLONG -! if (errno != ENOENT && errno != ENAMETOOLONG) -! #else -! if (errno != ENOENT) -! #endif -! errno = ENOTDIR; - return (0); - } -*************** -*** 409,418 **** - shell's idea of the_current_working_directory. */ - if (canon_failed) -- resetpwd (); -- else - { -! FREE (the_current_working_directory); -! the_current_working_directory = tdir; - } - - return (1); ---- 429,439 ---- - shell's idea of the_current_working_directory. */ - if (canon_failed) - { -! t = resetpwd ("cd"); -! if (t == 0) -! set_working_directory (tdir); - } -+ else -+ set_working_directory (tdir); - - return (1); -*************** -*** 425,429 **** - - err = errno; -- free (tdir); - - /* We're not in physical mode (nolinks == 0), but we failed to change to ---- 446,449 ---- -*************** -*** 432,445 **** - if (chdir (newdir) == 0) - { -! tdir = resetpwd (); -! FREE (tdir); - -! return (1); - } - else - { - errno = err; -! return (0); - } - } - ---- 452,471 ---- - if (chdir (newdir) == 0) - { -! t = resetpwd ("cd"); -! if (t == 0) -! set_working_directory (tdir); -! else -! free (t); - -! r = 1; - } - else - { - errno = err; -! r = 0; - } -+ -+ free (tdir); -+ return r; - } - - - -*** ../bash-2.05b-patched/aclocal.m4 Tue Jun 25 09:45:43 2002 ---- aclocal.m4 Sat Oct 9 15:03:28 2004 -*************** -*** 686,691 **** - - AC_DEFUN(BASH_FUNC_GETCWD, -! [AC_MSG_CHECKING([if getcwd() calls popen()]) -! AC_CACHE_VAL(bash_cv_getcwd_calls_popen, - [AC_TRY_RUN([ - #include ---- 686,691 ---- - - AC_DEFUN(BASH_FUNC_GETCWD, -! [AC_MSG_CHECKING([if getcwd() will dynamically allocate memory]) -! AC_CACHE_VAL(bash_cv_getcwd_malloc, - [AC_TRY_RUN([ - #include -*************** -*** 694,748 **** - #endif - -- #ifndef __STDC__ -- #ifndef const -- #define const -- #endif -- #endif -- -- int popen_called; -- -- FILE * -- popen(command, type) -- const char *command; -- const char *type; -- { -- popen_called = 1; -- return (FILE *)NULL; -- } -- -- FILE *_popen(command, type) -- const char *command; -- const char *type; -- { -- return (popen (command, type)); -- } -- -- int -- pclose(stream) -- FILE *stream; -- { -- return 0; -- } -- -- int -- _pclose(stream) -- FILE *stream; -- { -- return 0; -- } -- - main() - { -! char lbuf[32]; -! popen_called = 0; -! getcwd(lbuf, 32); -! exit (popen_called); - } -! ], bash_cv_getcwd_calls_popen=no, bash_cv_getcwd_calls_popen=yes, -! [AC_MSG_WARN(cannot check whether getcwd calls popen if cross compiling -- defaulting to no) -! bash_cv_getcwd_calls_popen=no] - )]) -! AC_MSG_RESULT($bash_cv_getcwd_calls_popen) -! if test $bash_cv_getcwd_calls_popen = yes; then - AC_DEFINE(GETCWD_BROKEN) - AC_LIBOBJ(getcwd) ---- 694,709 ---- - #endif - - main() - { -! char *xpwd; -! xpwd = getcwd(0, 0); -! exit (xpwd == 0); - } -! ], bash_cv_getcwd_malloc=yes, bash_cv_getcwd_malloc=no, -! [AC_MSG_WARN(cannot check whether getcwd allocates memory when cross-compiling -- defaulting to no) -! bash_cv_getcwd_malloc=no] - )]) -! AC_MSG_RESULT($bash_cv_getcwd_malloc) -! if test $bash_cv_getcwd_malloc = no; then - AC_DEFINE(GETCWD_BROKEN) - AC_LIBOBJ(getcwd) diff --git a/bashline.c.diff b/bashline.c.diff deleted file mode 100644 index 09305f650..000000000 --- a/bashline.c.diff +++ /dev/null @@ -1,130 +0,0 @@ -*** ../bash-3.0/bashline.c Mon Jul 5 23:22:12 2004 ---- bashline.c Thu Sep 2 16:00:12 2004 -*************** -*** 101,104 **** ---- 101,105 ---- - - /* Helper functions for Readline. */ -+ static int bash_directory_expansion __P((char **)); - static int bash_directory_completion_hook __P((char **)); - static int filename_completion_ignore __P((char **)); -*************** -*** 293,297 **** - at = strchr (rl_completer_word_break_characters, '@'); - if ((at == 0 && on_or_off == 0) || (at != 0 && on_or_off != 0)) -! return; - - /* We have something to do. Do it. */ ---- 294,298 ---- - at = strchr (rl_completer_word_break_characters, '@'); - if ((at == 0 && on_or_off == 0) || (at != 0 && on_or_off != 0)) -! return old_value; - - /* We have something to do. Do it. */ -*************** -*** 1407,1414 **** - if (*hint_text == '~') - { -! int l, tl, vl; - vl = strlen (val); - tl = strlen (hint_text); - l = vl - hint_len; /* # of chars added */ - temp = (char *)xmalloc (l + 2 + tl); - strcpy (temp, hint_text); ---- 1408,1424 ---- - if (*hint_text == '~') - { -! int l, tl, vl, dl; -! char *rd; - vl = strlen (val); - tl = strlen (hint_text); -+ #if 0 - l = vl - hint_len; /* # of chars added */ -+ #else -+ rd = savestring (filename_hint); -+ bash_directory_expansion (&rd); -+ dl = strlen (rd); -+ l = vl - dl; /* # of chars added */ -+ free (rd); -+ #endif - temp = (char *)xmalloc (l + 2 + tl); - strcpy (temp, hint_text); -*************** -*** 2188,2191 **** ---- 2198,2222 ---- - } - -+ /* Simulate the expansions that will be performed by -+ rl_filename_completion_function. This must be called with the address of -+ a pointer to malloc'd memory. */ -+ static int -+ bash_directory_expansion (dirname) -+ char **dirname; -+ { -+ char *d; -+ -+ d = savestring (*dirname); -+ -+ if (rl_directory_rewrite_hook) -+ (*rl_directory_rewrite_hook) (&d); -+ -+ if (rl_directory_completion_hook && (*rl_directory_completion_hook) (&d)) -+ { -+ free (*dirname); -+ *dirname = d; -+ } -+ } -+ - /* Handle symbolic link references and other directory name - expansions while hacking completion. */ -*************** -*** 2514,2518 **** - static int ind; - int glen; -! char *ret; - - if (state == 0) ---- 2545,2549 ---- - static int ind; - int glen; -! char *ret, *ttext; - - if (state == 0) -*************** -*** 2524,2538 **** - FREE (globtext); - - if (rl_explicit_arg) - { -! globorig = savestring (text); -! glen = strlen (text); - globtext = (char *)xmalloc (glen + 2); -! strcpy (globtext, text); - globtext[glen] = '*'; - globtext[glen+1] = '\0'; - } - else -! globtext = globorig = savestring (text); - - matches = shell_glob_filename (globtext); ---- 2555,2574 ---- - FREE (globtext); - -+ ttext = bash_tilde_expand (text, 0); -+ - if (rl_explicit_arg) - { -! globorig = savestring (ttext); -! glen = strlen (ttext); - globtext = (char *)xmalloc (glen + 2); -! strcpy (globtext, ttext); - globtext[glen] = '*'; - globtext[glen+1] = '\0'; - } - else -! globtext = globorig = savestring (ttext); -! -! if (ttext != text) -! free (ttext); - - matches = shell_glob_filename (globtext); diff --git a/bashref.texi.diff b/bashref.texi.diff deleted file mode 100644 index d7ba4bdaa..000000000 --- a/bashref.texi.diff +++ /dev/null @@ -1,120 +0,0 @@ -*** ../bash-3.0/doc/bashref.texi Sat Jun 26 14:26:07 2004 ---- doc/bashref.texi Fri Aug 27 12:33:46 2004 -*************** -*** 1257,1260 **** ---- 1257,1264 ---- - separate word. That is, @code{"$@@"} is equivalent to - @code{"$1" "$2" @dots{}}. -+ If the double-quoted expansion occurs within a word, the expansion of -+ the first parameter is joined with the beginning part of the original -+ word, and the expansion of the last parameter is joined with the last -+ part of the original word. - When there are no positional parameters, @code{"$@@"} and - @code{$@@} -*************** -*** 5202,5205 **** ---- 5206,5212 ---- - descriptor 0, 1, or 2, respectively, is checked. - -+ Unless otherwise specified, primaries that operate on files follow symbolic -+ links and operate on the target of the link, rather than the link itself. -+ - @table @code - @item -a @var{file} -*************** -*** 5535,5544 **** - @var{subscript} is @samp{@@} or @samp{*}, the word expands to all members - of the array @var{name}. These subscripts differ only when the word -! appears within double quotes. If the word is double-quoted, - @code{$@{name[*]@}} expands to a single word with - the value of each array member separated by the first character of the - @env{IFS} variable, and @code{$@{name[@@]@}} expands each element of - @var{name} to a separate word. When there are no array members, -! @code{$@{name[@@]@}} expands to nothing. This is analogous to the - expansion of the special parameters @samp{@@} and @samp{*}. - @code{$@{#name[}@var{subscript}@code{]@}} expands to the length of ---- 5542,5557 ---- - @var{subscript} is @samp{@@} or @samp{*}, the word expands to all members - of the array @var{name}. These subscripts differ only when the word -! appears within double quotes. -! If the word is double-quoted, - @code{$@{name[*]@}} expands to a single word with - the value of each array member separated by the first character of the - @env{IFS} variable, and @code{$@{name[@@]@}} expands each element of - @var{name} to a separate word. When there are no array members, -! @code{$@{name[@@]@}} expands to nothing. -! If the double-quoted expansion occurs within a word, the expansion of -! the first parameter is joined with the beginning part of the original -! word, and the expansion of the last parameter is joined with the last -! part of the original word. -! This is analogous to the - expansion of the special parameters @samp{@@} and @samp{*}. - @code{$@{#name[}@var{subscript}@code{]@}} expands to the length of -*************** -*** 5954,5958 **** - The @code{trap} builtin doesn't check the first argument for a possible - signal specification and revert the signal handling to the original -! disposition if it is. If users want to reset the handler for a given - signal to the original disposition, they should use @samp{-} as the - first argument. ---- 5967,5972 ---- - The @code{trap} builtin doesn't check the first argument for a possible - signal specification and revert the signal handling to the original -! disposition if it is, unless that argument consists solely of digits and -! is a valid signal number. If users want to reset the handler for a given - signal to the original disposition, they should use @samp{-} as the - first argument. -*************** -*** 5989,5992 **** ---- 6003,6024 ---- - does not refer to an existing directory, @code{cd} will fail instead of - falling back to @var{physical} mode. -+ -+ @item -+ When listing the history, the @code{fc} builtin does not include an -+ indication of whether or not a history entry has been modified. -+ -+ @item -+ The default editor used by @code{fc} is @code{ed}. -+ -+ @item -+ The @code{type} and @code{command} builtins will not report a non-executable -+ file as having been found, though the shell will attempt to execute such a -+ file if it is the only so-named file found in @code{$PATH}. -+ -+ @item -+ When the @code{xpg_echo} option is enabled, Bash does not attempt to interpret -+ any arguments to @code{echo} as options. Each argument is displayed, after -+ escape characters are converted. -+ - @end enumerate - -*************** -*** 6132,6144 **** - @btindex bg - @example -! bg [@var{jobspec}] - @end example -! Resume the suspended job @var{jobspec} in the background, as if it - had been started with @samp{&}. - If @var{jobspec} is not supplied, the current job is used. - The return status is zero unless it is run when job control is not -! enabled, or, when run with job control enabled, if @var{jobspec} was -! not found or @var{jobspec} specifies a job that was started without -! job control. - - @item fg ---- 6164,6176 ---- - @btindex bg - @example -! bg [@var{jobspec} @dots{}] - @end example -! Resume each suspended job @var{jobspec} in the background, as if it - had been started with @samp{&}. - If @var{jobspec} is not supplied, the current job is used. - The return status is zero unless it is run when job control is not -! enabled, or, when run with job control enabled, if the last -! @var{jobspec} was not found or the last @var{jobspec} specifies a job -! that was started without job control. - - @item fg diff --git a/braces.c.diff b/braces.c.diff deleted file mode 100644 index e036e182c..000000000 --- a/braces.c.diff +++ /dev/null @@ -1,25 +0,0 @@ -*** ../bash-3.0/braces.c Thu Dec 4 11:09:52 2003 ---- braces.c Wed Aug 4 14:34:33 2004 -*************** -*** 341,346 **** - if (lhs_t == ST_CHAR) - { -! lhs_v = lhs[0]; -! rhs_v = rhs[0]; - } - else ---- 341,346 ---- - if (lhs_t == ST_CHAR) - { -! lhs_v = (unsigned char)lhs[0]; -! rhs_v = (unsigned char)rhs[0]; - } - else -*************** -*** 403,406 **** ---- 403,407 ---- - pass_next = 1; - i++; -+ level++; - continue; - } diff --git a/braces.c.diff2 b/braces.c.diff2 deleted file mode 100644 index 75585514b..000000000 --- a/braces.c.diff2 +++ /dev/null @@ -1,16 +0,0 @@ -*** ../bash-3.0-patched/braces.c Wed Sep 8 11:07:53 2004 ---- braces.c Fri Sep 17 18:42:36 2004 -*************** -*** 403,407 **** - pass_next = 1; - i++; -! level++; - continue; - } ---- 403,408 ---- - pass_next = 1; - i++; -! if (quoted == 0) -! level++; - continue; - } diff --git a/configure.debug b/configure.debug deleted file mode 100755 index c5d6e6469..000000000 --- a/configure.debug +++ /dev/null @@ -1,28094 +0,0 @@ -#! /bin/sh -# From configure.in for Bash 3.1, version 3.175, from autoconf version AC_ACVERSION. -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.59 for bash 3.1-devel. -# -# Report bugs to . -# -# Copyright (C) 2003 Free Software Foundation, Inc. -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix -fi -DUALCASE=1; export DUALCASE # for MKS sh - -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - - -# Work around bugs in pre-3.0 UWIN ksh. -$as_unset ENV MAIL MAILPATH -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - - -# Name of the executable. -as_me=`$as_basename "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ - . : '\(.\)' 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - /^X\/\(\/\/\)$/{ s//\1/; q; } - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - - -# PATH needs CR, and LINENO needs CR and PATH. -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" || { - # Find who we are. Look in the path if we contain no path at all - # relative or not. - case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done - - ;; - esac - # We did not find ourselves, most probably we were run as `sh COMMAND' - # in which case we are not to be found in the path. - if test "x$as_myself" = x; then - as_myself=$0 - fi - if test ! -f "$as_myself"; then - { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for as_base in sh bash ksh sh5; do - case $as_dir in - /*) - if ("$as_dir/$as_base" -c ' - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } - CONFIG_SHELL=$as_dir/$as_base - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" ${1+"$@"} - fi;; - esac - done -done -;; - esac - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line before each line; the second 'sed' does the real - # work. The second script uses 'N' to pair each line-number line - # with the numbered line, and appends trailing '-' during - # substitution so that $LINENO is not a special case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=' <$as_myself | - sed ' - N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, - t loop - s,-$,, - s,^['$as_cr_digits']*\n,, - ' >$as_me.lineno && - chmod +x $as_me.lineno || - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensible to this). - . ./$as_me.lineno - # Exit status is that of the last command. - exit -} - - -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; -esac - -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s='cp -p' - else - as_ln_s='ln -s' - fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.file - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_executable_p="test -f" - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH - - -# Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -exec 6>&1 - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_config_libobj_dir=. -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} - -# Maximum number of lines to put in a shell here document. -# This variable seems obsolete. It should probably be removed, and -# only ac_max_sed_lines should be used. -: ${ac_max_here_lines=38} - -# Identity of this package. -PACKAGE_NAME='bash' -PACKAGE_TARNAME='bash' -PACKAGE_VERSION='3.1-devel' -PACKAGE_STRING='bash 3.1-devel' -PACKAGE_BUGREPORT='bug-bash@gnu.org' - -ac_unique_file="shell.h" -# Factoring default headers for most tests. -ac_includes_default="\ -#include -#if HAVE_SYS_TYPES_H -# include -#endif -#if HAVE_SYS_STAT_H -# include -#endif -#if STDC_HEADERS -# include -# include -#else -# if HAVE_STDLIB_H -# include -# endif -#endif -#if HAVE_STRING_H -# if !STDC_HEADERS && HAVE_MEMORY_H -# include -# endif -# include -#endif -#if HAVE_STRINGS_H -# include -#endif -#if HAVE_INTTYPES_H -# include -#else -# if HAVE_STDINT_H -# include -# endif -#endif -#if HAVE_UNISTD_H -# include -#endif" - -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os EMACS lispdir DEBUGGER_START_FILE TESTSCRIPT PURIFY MALLOC_TARGET MALLOC_SRC MALLOC_LIB MALLOC_LIBRARY MALLOC_LDFLAGS MALLOC_DEP htmldir HELPDIR HELPDIRDEFINE HELPINSTALL HELPSTRINGS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP SIGNAMES_H CC_FOR_BUILD STATIC_LD CFLAGS_FOR_BUILD CPPFLAGS_FOR_BUILD LDFLAGS_FOR_BUILD RL_VERSION RL_MAJOR RL_MINOR READLINE_LIB READLINE_DEP RL_LIBDIR RL_INCLUDEDIR RL_INCLUDE HISTORY_LIB HISTORY_DEP HIST_LIBDIR INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA AR RANLIB ac_ct_RANLIB YACC SET_MAKE MAKE_SHELL SIZE MKINSTALLDIRS USE_NLS MSGFMT GMSGFMT XGETTEXT MSGMERGE ALLOCA GLIBC21 LIBICONV LTLIBICONV INTLBISON BUILD_INCLUDED_LIBINTL USE_INCLUDED_LIBINTL CATOBJEXT DATADIRNAME INSTOBJEXT GENCAT INTLOBJS INTL_LIBTOOL_SUFFIX_PREFIX INTLLIBS LIBINTL LTLIBINTL POSUB LIBOBJS INTL_DEP INTL_INC LIBINTL_H SIGLIST_O TERMCAP_LIB TERMCAP_DEP JOBS_O SHOBJ_CC SHOBJ_CFLAGS SHOBJ_LD SHOBJ_LDFLAGS SHOBJ_XLDFLAGS SHOBJ_LIBS SHOBJ_STATUS PROFILE_FLAGS incdir BUILD_DIR ARFLAGS BASHVERS RELSTATUS DEBUG MALLOC_DEBUG LOCAL_LIBS LOCAL_CFLAGS LOCAL_LDFLAGS LOCAL_DEFS LTLIBOBJS' -ac_subst_files='' - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datadir='${prefix}/share' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -libdir='${exec_prefix}/lib' -includedir='${prefix}/include' -oldincludedir='/usr/include' -infodir='${prefix}/info' -mandir='${prefix}/man' - -ac_prev= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval "$ac_prev=\$ac_option" - ac_prev= - continue - fi - - ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_option in - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad | --data | --dat | --da) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ - | --da=*) - datadir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - eval "enable_$ac_feature=no" ;; - - -enable-* | --enable-*) - ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - case $ac_option in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; - esac - eval "enable_$ac_feature='$ac_optarg'" ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst \ - | --locals | --local | --loca | --loc | --lo) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* \ - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package| sed 's/-/_/g'` - case $ac_option in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; - esac - eval "with_$ac_package='$ac_optarg'" ;; - - -without-* | --without-*) - ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package | sed 's/-/_/g'` - eval "with_$ac_package=no" ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) { echo "$as_me: error: unrecognized option: $ac_option -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 - { (exit 1); exit 1; }; } - ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` - eval "$ac_envvar='$ac_optarg'" - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - { echo "$as_me: error: missing argument to $ac_option" >&2 - { (exit 1); exit 1; }; } -fi - -# Be sure to have absolute paths. -for ac_var in exec_prefix prefix -do - eval ac_val=$`echo $ac_var` - case $ac_val in - [\\/$]* | ?:[\\/]* | NONE | '' ) ;; - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; - esac -done - -# Be sure to have absolute paths. -for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ - localstatedir libdir includedir oldincludedir infodir mandir -do - eval ac_val=$`echo $ac_var` - case $ac_val in - [\\/$]* | ?:[\\/]* ) ;; - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; - esac -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used." >&2 - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then its parent. - ac_confdir=`(dirname "$0") 2>/dev/null || -$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$0" : 'X\(//\)[^/]' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$0" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r $srcdir/$ac_unique_file; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r $srcdir/$ac_unique_file; then - if test "$ac_srcdir_defaulted" = yes; then - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 - { (exit 1); exit 1; }; } - else - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 - { (exit 1); exit 1; }; } - fi -fi -(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || - { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 - { (exit 1); exit 1; }; } -srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` -ac_env_build_alias_set=${build_alias+set} -ac_env_build_alias_value=$build_alias -ac_cv_env_build_alias_set=${build_alias+set} -ac_cv_env_build_alias_value=$build_alias -ac_env_host_alias_set=${host_alias+set} -ac_env_host_alias_value=$host_alias -ac_cv_env_host_alias_set=${host_alias+set} -ac_cv_env_host_alias_value=$host_alias -ac_env_target_alias_set=${target_alias+set} -ac_env_target_alias_value=$target_alias -ac_cv_env_target_alias_set=${target_alias+set} -ac_cv_env_target_alias_value=$target_alias -ac_env_DEBUGGER_START_FILE_set=${DEBUGGER_START_FILE+set} -ac_env_DEBUGGER_START_FILE_value=$DEBUGGER_START_FILE -ac_cv_env_DEBUGGER_START_FILE_set=${DEBUGGER_START_FILE+set} -ac_cv_env_DEBUGGER_START_FILE_value=$DEBUGGER_START_FILE -ac_env_CC_set=${CC+set} -ac_env_CC_value=$CC -ac_cv_env_CC_set=${CC+set} -ac_cv_env_CC_value=$CC -ac_env_CFLAGS_set=${CFLAGS+set} -ac_env_CFLAGS_value=$CFLAGS -ac_cv_env_CFLAGS_set=${CFLAGS+set} -ac_cv_env_CFLAGS_value=$CFLAGS -ac_env_LDFLAGS_set=${LDFLAGS+set} -ac_env_LDFLAGS_value=$LDFLAGS -ac_cv_env_LDFLAGS_set=${LDFLAGS+set} -ac_cv_env_LDFLAGS_value=$LDFLAGS -ac_env_CPPFLAGS_set=${CPPFLAGS+set} -ac_env_CPPFLAGS_value=$CPPFLAGS -ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} -ac_cv_env_CPPFLAGS_value=$CPPFLAGS -ac_env_CPP_set=${CPP+set} -ac_env_CPP_value=$CPP -ac_cv_env_CPP_set=${CPP+set} -ac_cv_env_CPP_value=$CPP - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures bash 3.1-devel to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -_ACEOF - - cat <<_ACEOF -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --datadir=DIR read-only architecture-independent data [PREFIX/share] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --infodir=DIR info documentation [PREFIX/info] - --mandir=DIR man documentation [PREFIX/man] -_ACEOF - - cat <<\_ACEOF - -System types: - --build=BUILD configure for building on BUILD [guessed] - --host=HOST cross-compile to build programs to run on HOST [BUILD] -_ACEOF -fi - -if test -n "$ac_init_help"; then - case $ac_init_help in - short | recursive ) echo "Configuration of bash 3.1-devel:";; - esac - cat <<\_ACEOF - -Optional Features: - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-minimal-config a minimal sh-like configuration - --enable-alias enable shell aliases - --enable-arith-for-command - enable arithmetic for command - --enable-array-variables - include shell array variables - --enable-bang-history turn on csh-style history substitution - --enable-brace-expansion - include brace expansion - --enable-command-timing enable the time reserved word and command timing - --enable-cond-command enable the conditional command - --enable-cond-regexp enable extgended regular expression matching in - conditional commands - --enable-debugger enable support for bash debugger - --enable-directory-stack - enable builtins pushd/popd/dirs - --enable-disabled-builtins - allow disabled builtins to still be invoked - --enable-dparen-arithmetic - include ((...)) command - --enable-extended-glob include ksh-style extended pattern matching - --enable-help-builtin include the help builtin - --enable-history turn on command history - --enable-job-control enable job control features - --enable-multibyte enable multibyte characters if OS supports them - --enable-net-redirections - enable /dev/tcp/host/port redirection - --enable-process-substitution - enable process substitution - --enable-progcomp enable programmable completion and the complete - builtin - --enable-prompt-string-decoding - turn on escape character decoding in prompts - --enable-readline turn on command line editing - --enable-restricted enable a restricted shell - --enable-select include select command - --enable-separate-helpfiles - use external files for help builtin documentation - --enable-single-help-strings - store help documentation as a single string to ease - translation - --enable-usg-echo-default - a synonym for --enable-xpg-echo-default - --enable-xpg-echo-default - make the echo builtin expand escape sequences by - default - --enable-mem-scramble scramble memory on calls to malloc and free - --enable-profiling allow profiling with gprof - --enable-static-link link bash statically, for use as a root shell - --disable-largefile omit support for large files - --disable-nls do not use Native Language Support - --disable-rpath do not hardcode runtime library paths - -Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-lispdir override the default lisp directory - --with-afs if you are running AFS - --with-bash-malloc use the Bash version of malloc - --with-curses use the curses library instead of the termcap - library - --with-gnu-malloc synonym for --with-bash-malloc - --with-installed-readline - use a version of the readline library that is - already installed - --with-purecov configure to postprocess with pure coverage - --with-purify configure to postprocess with purify - --with-gnu-ld assume the C compiler uses GNU ld default=no - --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib - --without-libiconv-prefix don't search for libiconv in includedir and libdir - --with-included-gettext use the GNU gettext library included here - --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib - --without-libintl-prefix don't search for libintl in includedir and libdir - -Some influential environment variables: - DEBUGGER_START_FILE - location of bash debugger initialization file - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have - headers in a nonstandard directory - CPP C preprocessor - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -Report bugs to . -_ACEOF -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - ac_popdir=`pwd` - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d $ac_dir || continue - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac - -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac - - cd $ac_dir - # Check for guested configure; otherwise get Cygnus style configure. - if test -f $ac_srcdir/configure.gnu; then - echo - $SHELL $ac_srcdir/configure.gnu --help=recursive - elif test -f $ac_srcdir/configure; then - echo - $SHELL $ac_srcdir/configure --help=recursive - elif test -f $ac_srcdir/configure.ac || - test -f $ac_srcdir/configure.in; then - echo - $ac_configure --help - else - echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi - cd $ac_popdir - done -fi - -test -n "$ac_init_help" && exit 0 -if $ac_init_version; then - cat <<\_ACEOF -bash configure 3.1-devel -generated by GNU Autoconf 2.59 - -Copyright (C) 2003 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -_ACEOF - exit 0 -fi -exec 5>config.log -cat >&5 <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by bash $as_me 3.1-devel, which was -generated by GNU Autoconf 2.59. Invocation command line was - - $ $0 $@ - -_ACEOF -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -hostinfo = `(hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - echo "PATH: $as_dir" -done - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_sep= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) - ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; - 2) - ac_configure_args1="$ac_configure_args1 '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" - # Get rid of the leading space. - ac_sep=" " - ;; - esac - done -done -$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } -$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Be sure not to use single quotes in there, as some shells, -# such as our DU 5.0 friend, will then `close' the trap. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - cat <<\_ASBOX -## ---------------- ## -## Cache variables. ## -## ---------------- ## -_ASBOX - echo - # The following way of writing the cache mishandles newlines in values, -{ - (set) 2>&1 | - case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in - *ac_space=\ *) - sed -n \ - "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" - ;; - *) - sed -n \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" - ;; - esac; -} - echo - - cat <<\_ASBOX -## ----------------- ## -## Output variables. ## -## ----------------- ## -_ASBOX - echo - for ac_var in $ac_subst_vars - do - eval ac_val=$`echo $ac_var` - echo "$ac_var='"'"'$ac_val'"'"'" - done | sort - echo - - if test -n "$ac_subst_files"; then - cat <<\_ASBOX -## ------------- ## -## Output files. ## -## ------------- ## -_ASBOX - echo - for ac_var in $ac_subst_files - do - eval ac_val=$`echo $ac_var` - echo "$ac_var='"'"'$ac_val'"'"'" - done | sort - echo - fi - - if test -s confdefs.h; then - cat <<\_ASBOX -## ----------- ## -## confdefs.h. ## -## ----------- ## -_ASBOX - echo - sed "/^$/d" confdefs.h | sort - echo - fi - test "$ac_signal" != 0 && - echo "$as_me: caught signal $ac_signal" - echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core && - rm -rf conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status - ' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a newline. -echo >confdefs.h - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer explicitly selected file to automatically selected ones. -if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi -fi -for ac_site_file in $CONFIG_SITE; do - if test -r "$ac_site_file"; then - { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 -echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special - # files actually), so we avoid doing that. - if test -f "$cache_file"; then - { echo "$as_me:$LINENO: loading cache $cache_file" >&5 -echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . $cache_file;; - *) . ./$cache_file;; - esac - fi -else - { echo "$as_me:$LINENO: creating cache $cache_file" >&5 -echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in `(set) 2>&1 | - sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val="\$ac_cv_env_${ac_var}_value" - eval ac_new_val="\$ac_env_${ac_var}_value" - case $ac_old_set,$ac_new_set in - set,) - { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 -echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 -echo "$as_me: former value: $ac_old_val" >&2;} - { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 -echo "$as_me: current value: $ac_new_val" >&2;} - ac_cache_corrupted=: - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) - ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 -echo "$as_me: error: changes in the environment can compromise the build" >&2;} - { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 -echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} - { (exit 1); exit 1; }; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ac_aux_dir= -for ac_dir in ./support $srcdir/./support; do - if test -f $ac_dir/install-sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f $ac_dir/install.sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f $ac_dir/shtool; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in ./support $srcdir/./support" >&5 -echo "$as_me: error: cannot find install-sh or install.sh in ./support $srcdir/./support" >&2;} - { (exit 1); exit 1; }; } -fi -ac_config_guess="$SHELL $ac_aux_dir/config.guess" -ac_config_sub="$SHELL $ac_aux_dir/config.sub" -ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. - - ac_config_headers="$ac_config_headers config.h" - - -BASHVERS=3.1 -RELSTATUS=devel - -case "$RELSTATUS" in -alp*|bet*|dev*|rc*) DEBUG='-DDEBUG' MALLOC_DEBUG='-DMALLOC_DEBUG' ;; -*) DEBUG= MALLOC_DEBUG= ;; -esac - -# Make sure we can run config.sub. -$ac_config_sub sun4 >/dev/null 2>&1 || - { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5 -echo "$as_me: error: cannot run $ac_config_sub" >&2;} - { (exit 1); exit 1; }; } - -echo "$as_me:$LINENO: checking build system type" >&5 -echo $ECHO_N "checking build system type... $ECHO_C" >&6 -if test "${ac_cv_build+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_build_alias=$build_alias -test -z "$ac_cv_build_alias" && - ac_cv_build_alias=`$ac_config_guess` -test -z "$ac_cv_build_alias" && - { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 -echo "$as_me: error: cannot guess build type; you must specify one" >&2;} - { (exit 1); exit 1; }; } -ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5 -echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;} - { (exit 1); exit 1; }; } - -fi -echo "$as_me:$LINENO: result: $ac_cv_build" >&5 -echo "${ECHO_T}$ac_cv_build" >&6 -build=$ac_cv_build -build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - - -echo "$as_me:$LINENO: checking host system type" >&5 -echo $ECHO_N "checking host system type... $ECHO_C" >&6 -if test "${ac_cv_host+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_host_alias=$host_alias -test -z "$ac_cv_host_alias" && - ac_cv_host_alias=$ac_cv_build_alias -ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5 -echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} - { (exit 1); exit 1; }; } - -fi -echo "$as_me:$LINENO: result: $ac_cv_host" >&5 -echo "${ECHO_T}$ac_cv_host" >&6 -host=$ac_cv_host -host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - - - -opt_bash_malloc=yes -opt_purify=no -opt_purecov=no -opt_afs=no -opt_curses=no -opt_with_installed_readline=no - -#htmldir= - -case "${host_cpu}-${host_os}" in -alpha*-*) opt_bash_malloc=no ;; # alpha running osf/1 or linux -*[Cc]ray*-*) opt_bash_malloc=no ;; # Crays -*-osf1*) opt_bash_malloc=no ;; # other osf/1 machines -sparc-svr4*) opt_bash_malloc=no ;; # sparc SVR4, SVR4.2 -sparc-netbsd*) opt_bash_malloc=no ;; # needs 8-byte alignment -mips-irix6*) opt_bash_malloc=no ;; # needs 8-byte alignment -m68k-sysv) opt_bash_malloc=no ;; # fixes file descriptor leak in closedir -sparc-linux*) opt_bash_malloc=no ;; # sparc running linux; requires ELF -#*-freebsd*-gnu) opt_bash_malloc=no ;; # there's some undetermined problem here -#*-freebsd*) opt_bash_malloc=no ;; # they claim it's better; I disagree -*-openbsd*) opt_bash_malloc=no ;; # they claim it needs eight-bit alignment -*-aix*) opt_bash_malloc=no ;; # AIX machines -*-nextstep*) opt_bash_malloc=no ;; # NeXT machines running NeXTstep -*-macos*) opt_bash_malloc=no ;; # Apple MacOS X -*-rhapsody*) opt_bash_malloc=no ;; # Apple Rhapsody (MacOS X) -*-darwin*) opt_bash_malloc=no ;; # Apple Darwin (MacOS X) -*-dgux*) opt_bash_malloc=no ;; # DG/UX machines -*-qnx*) opt_bash_malloc=no ;; # QNX 4.2 -*-machten4) opt_bash_malloc=no ;; # MachTen 4.x -*-bsdi2.1|*-bsdi3.?) opt_bash_malloc=no ; : ${CC:=shlicc2} ;; # for loadable builtins -*-beos*) opt_bash_malloc=no ;; # they say it's suitable -*-cygwin*) opt_bash_malloc=no ;; # Cygnus's CYGWIN environment -*-opennt*|*-interix*) opt_bash_malloc=no ;; # Interix, now owned by Microsoft -esac - -# memory scrambling on free() -case "${host_os}" in -sco3.2v5*|sco3.2v4*) opt_memscramble=no ;; -*) opt_memscramble=yes ;; -esac - - -# Check whether --with-lispdir or --without-lispdir was given. -if test "${with_lispdir+set}" = set; then - withval="$with_lispdir" - lispdir="$withval" - echo "$as_me:$LINENO: checking where .elc files should go" >&5 -echo $ECHO_N "checking where .elc files should go... $ECHO_C" >&6 - echo "$as_me:$LINENO: result: $lispdir" >&5 -echo "${ECHO_T}$lispdir" >&6 -else - - # If set to t, that means we are running in a shell under Emacs. - # If you have an Emacs named "t", then use the full path. - test x"$EMACS" = xt && EMACS= - for ac_prog in emacs xemacs -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_EMACS+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$EMACS"; then - ac_cv_prog_EMACS="$EMACS" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_EMACS="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -EMACS=$ac_cv_prog_EMACS -if test -n "$EMACS"; then - echo "$as_me:$LINENO: result: $EMACS" >&5 -echo "${ECHO_T}$EMACS" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$EMACS" && break -done -test -n "$EMACS" || EMACS="no" - - if test $EMACS != "no"; then - if test x${lispdir+set} != xset; then - echo "$as_me:$LINENO: checking where .elc files should go" >&5 -echo $ECHO_N "checking where .elc files should go... $ECHO_C" >&6 -if test "${am_cv_lispdir+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - am_cv_lispdir=`$EMACS -batch -q -eval '(while load-path (princ (concat (car load-path) "\n")) (setq load-path (cdr load-path)))' | sed -n -e 's,/$,,' -e '/.*\/lib\/\(x\?emacs\/site-lisp\)$/{s,,${libdir}/\1,;p;q;}' -e '/.*\/share\/\(x\?emacs\/site-lisp\)$/{s,,${datadir}/\1,;p;q;}'` - if test -z "$am_cv_lispdir"; then - am_cv_lispdir='${datadir}/emacs/site-lisp' - fi - -fi -echo "$as_me:$LINENO: result: $am_cv_lispdir" >&5 -echo "${ECHO_T}$am_cv_lispdir" >&6 - lispdir="$am_cv_lispdir" - fi - fi - -fi; - - - - - -# Check whether --with-afs or --without-afs was given. -if test "${with_afs+set}" = set; then - withval="$with_afs" - opt_afs=$withval -fi; - -# Check whether --with-bash-malloc or --without-bash-malloc was given. -if test "${with_bash_malloc+set}" = set; then - withval="$with_bash_malloc" - opt_bash_malloc=$withval -fi; - -# Check whether --with-curses or --without-curses was given. -if test "${with_curses+set}" = set; then - withval="$with_curses" - opt_curses=$withval -fi; - -# Check whether --with-gnu-malloc or --without-gnu-malloc was given. -if test "${with_gnu_malloc+set}" = set; then - withval="$with_gnu_malloc" - opt_bash_malloc=$withval -fi; - -# Check whether --with-installed-readline or --without-installed-readline was given. -if test "${with_installed_readline+set}" = set; then - withval="$with_installed_readline" - opt_with_installed_readline=$withval -fi; - -# Check whether --with-purecov or --without-purecov was given. -if test "${with_purecov+set}" = set; then - withval="$with_purecov" - opt_purecov=$withval -fi; - -# Check whether --with-purify or --without-purify was given. -if test "${with_purify+set}" = set; then - withval="$with_purify" - opt_purify=$withval -fi; - -if test "$opt_bash_malloc" = yes; then - MALLOC_TARGET=malloc - MALLOC_SRC=malloc.c - - MALLOC_LIB='-lmalloc' - MALLOC_LIBRARY='$(ALLOC_LIBDIR)/libmalloc.a' - MALLOC_LDFLAGS='-L$(ALLOC_LIBDIR)' - MALLOC_DEP='$(MALLOC_LIBRARY)' - - cat >>confdefs.h <<\_ACEOF -#define USING_BASH_MALLOC 1 -_ACEOF - -else - MALLOC_LIB= - MALLOC_LIBRARY= - MALLOC_LDFLAGS= - MALLOC_DEP= -fi - -if test "$opt_purify" = yes; then - PURIFY="purify " - cat >>confdefs.h <<\_ACEOF -#define DISABLE_MALLOC_WRAPPERS 1 -_ACEOF - -else - PURIFY= -fi - -if test "$opt_purecov" = yes; then - PURIFY="${PURIFY}purecov" -fi - -if test "$opt_afs" = yes; then - cat >>confdefs.h <<\_ACEOF -#define AFS 1 -_ACEOF - -fi - -if test "$opt_curses" = yes; then - prefer_curses=yes -fi - -if test -z "${DEBUGGER_START_FILE}"; then - DEBUGGER_START_FILE=${ac_default_prefix}/lib/bashdb/bashdb-main.inc -fi - -opt_minimal_config=no - -opt_job_control=yes -opt_alias=yes -opt_readline=yes -opt_history=yes -opt_bang_history=yes -opt_dirstack=yes -opt_restricted=yes -opt_process_subst=yes -opt_prompt_decoding=yes -opt_select=yes -opt_help=yes -opt_array_variables=yes -opt_dparen_arith=yes -opt_extended_glob=yes -opt_brace_expansion=yes -opt_disabled_builtins=no -opt_command_timing=yes -opt_xpg_echo=no -opt_cond_command=yes -opt_cond_regexp=yes -opt_arith_for_command=yes -opt_net_redirs=yes -opt_progcomp=yes -opt_separate_help=no -opt_multibyte=yes -opt_debugger=yes -opt_single_longdoc_strings=yes - -opt_static_link=no -opt_profiling=no - -# Check whether --enable-minimal-config or --disable-minimal-config was given. -if test "${enable_minimal_config+set}" = set; then - enableval="$enable_minimal_config" - opt_minimal_config=$enableval -fi; - -if test $opt_minimal_config = yes; then - opt_job_control=no opt_alias=no opt_readline=no - opt_history=no opt_bang_history=no opt_dirstack=no - opt_restricted=no opt_process_subst=no opt_prompt_decoding=no - opt_select=no opt_help=no opt_array_variables=no opt_dparen_arith=no - opt_brace_expansion=no opt_disabled_builtins=no opt_command_timing=no - opt_extended_glob=no opt_cond_command=no opt_arith_for_command=no - opt_net_redirs=no opt_progcomp=no opt_separate_help=no - opt_multibyte=yes opt_cond_regexp=no -fi - -# Check whether --enable-alias or --disable-alias was given. -if test "${enable_alias+set}" = set; then - enableval="$enable_alias" - opt_alias=$enableval -fi; -# Check whether --enable-arith-for-command or --disable-arith-for-command was given. -if test "${enable_arith_for_command+set}" = set; then - enableval="$enable_arith_for_command" - opt_arith_for_command=$enableval -fi; -# Check whether --enable-array-variables or --disable-array-variables was given. -if test "${enable_array_variables+set}" = set; then - enableval="$enable_array_variables" - opt_array_variables=$enableval -fi; -# Check whether --enable-bang-history or --disable-bang-history was given. -if test "${enable_bang_history+set}" = set; then - enableval="$enable_bang_history" - opt_bang_history=$enableval -fi; -# Check whether --enable-brace-expansion or --disable-brace-expansion was given. -if test "${enable_brace_expansion+set}" = set; then - enableval="$enable_brace_expansion" - opt_brace_expansion=$enableval -fi; -# Check whether --enable-command-timing or --disable-command-timing was given. -if test "${enable_command_timing+set}" = set; then - enableval="$enable_command_timing" - opt_command_timing=$enableval -fi; -# Check whether --enable-cond-command or --disable-cond-command was given. -if test "${enable_cond_command+set}" = set; then - enableval="$enable_cond_command" - opt_cond_command=$enableval -fi; -# Check whether --enable-cond-regexp or --disable-cond-regexp was given. -if test "${enable_cond_regexp+set}" = set; then - enableval="$enable_cond_regexp" - opt_cond_regexp=$enableval -fi; -# Check whether --enable-debugger or --disable-debugger was given. -if test "${enable_debugger+set}" = set; then - enableval="$enable_debugger" - opt_debugger=$enableval -fi; -# Check whether --enable-directory-stack or --disable-directory-stack was given. -if test "${enable_directory_stack+set}" = set; then - enableval="$enable_directory_stack" - opt_dirstack=$enableval -fi; -# Check whether --enable-disabled-builtins or --disable-disabled-builtins was given. -if test "${enable_disabled_builtins+set}" = set; then - enableval="$enable_disabled_builtins" - opt_disabled_builtins=$enableval -fi; -# Check whether --enable-dparen-arithmetic or --disable-dparen-arithmetic was given. -if test "${enable_dparen_arithmetic+set}" = set; then - enableval="$enable_dparen_arithmetic" - opt_dparen_arith=$enableval -fi; -# Check whether --enable-extended-glob or --disable-extended-glob was given. -if test "${enable_extended_glob+set}" = set; then - enableval="$enable_extended_glob" - opt_extended_glob=$enableval -fi; -# Check whether --enable-help-builtin or --disable-help-builtin was given. -if test "${enable_help_builtin+set}" = set; then - enableval="$enable_help_builtin" - opt_help=$enableval -fi; -# Check whether --enable-history or --disable-history was given. -if test "${enable_history+set}" = set; then - enableval="$enable_history" - opt_history=$enableval -fi; -# Check whether --enable-job-control or --disable-job-control was given. -if test "${enable_job_control+set}" = set; then - enableval="$enable_job_control" - opt_job_control=$enableval -fi; -# Check whether --enable-multibyte or --disable-multibyte was given. -if test "${enable_multibyte+set}" = set; then - enableval="$enable_multibyte" - opt_multibyte=$enableval -fi; -# Check whether --enable-net-redirections or --disable-net-redirections was given. -if test "${enable_net_redirections+set}" = set; then - enableval="$enable_net_redirections" - opt_net_redirs=$enableval -fi; -# Check whether --enable-process-substitution or --disable-process-substitution was given. -if test "${enable_process_substitution+set}" = set; then - enableval="$enable_process_substitution" - opt_process_subst=$enableval -fi; -# Check whether --enable-progcomp or --disable-progcomp was given. -if test "${enable_progcomp+set}" = set; then - enableval="$enable_progcomp" - opt_progcomp=$enableval -fi; -# Check whether --enable-prompt-string-decoding or --disable-prompt-string-decoding was given. -if test "${enable_prompt_string_decoding+set}" = set; then - enableval="$enable_prompt_string_decoding" - opt_prompt_decoding=$enableval -fi; -# Check whether --enable-readline or --disable-readline was given. -if test "${enable_readline+set}" = set; then - enableval="$enable_readline" - opt_readline=$enableval -fi; -# Check whether --enable-restricted or --disable-restricted was given. -if test "${enable_restricted+set}" = set; then - enableval="$enable_restricted" - opt_restricted=$enableval -fi; -# Check whether --enable-select or --disable-select was given. -if test "${enable_select+set}" = set; then - enableval="$enable_select" - opt_select=$enableval -fi; -# Check whether --enable-separate-helpfiles or --disable-separate-helpfiles was given. -if test "${enable_separate_helpfiles+set}" = set; then - enableval="$enable_separate_helpfiles" - opt_separate_help=$enableval -fi; -# Check whether --enable-single-help-strings or --disable-single-help-strings was given. -if test "${enable_single_help_strings+set}" = set; then - enableval="$enable_single_help_strings" - opt_single_longdoc_strings=$enableval -fi; -# Check whether --enable-usg-echo-default or --disable-usg-echo-default was given. -if test "${enable_usg_echo_default+set}" = set; then - enableval="$enable_usg_echo_default" - opt_xpg_echo=$enableval -fi; -# Check whether --enable-xpg-echo-default or --disable-xpg-echo-default was given. -if test "${enable_xpg_echo_default+set}" = set; then - enableval="$enable_xpg_echo_default" - opt_xpg_echo=$enableval -fi; - -# Check whether --enable-mem-scramble or --disable-mem-scramble was given. -if test "${enable_mem_scramble+set}" = set; then - enableval="$enable_mem_scramble" - opt_memscramble=$enableval -fi; -# Check whether --enable-profiling or --disable-profiling was given. -if test "${enable_profiling+set}" = set; then - enableval="$enable_profiling" - opt_profiling=$enableval -fi; -# Check whether --enable-static-link or --disable-static-link was given. -if test "${enable_static_link+set}" = set; then - enableval="$enable_static_link" - opt_static_link=$enableval -fi; - - - -if test $opt_alias = yes; then -cat >>confdefs.h <<\_ACEOF -#define ALIAS 1 -_ACEOF - -fi -if test $opt_dirstack = yes; then -cat >>confdefs.h <<\_ACEOF -#define PUSHD_AND_POPD 1 -_ACEOF - -fi -if test $opt_restricted = yes; then -cat >>confdefs.h <<\_ACEOF -#define RESTRICTED_SHELL 1 -_ACEOF - -fi -if test $opt_process_subst = yes; then -cat >>confdefs.h <<\_ACEOF -#define PROCESS_SUBSTITUTION 1 -_ACEOF - -fi -if test $opt_prompt_decoding = yes; then -cat >>confdefs.h <<\_ACEOF -#define PROMPT_STRING_DECODE 1 -_ACEOF - -fi -if test $opt_select = yes; then -cat >>confdefs.h <<\_ACEOF -#define SELECT_COMMAND 1 -_ACEOF - -fi -if test $opt_help = yes; then -cat >>confdefs.h <<\_ACEOF -#define HELP_BUILTIN 1 -_ACEOF - -fi -if test $opt_array_variables = yes; then -cat >>confdefs.h <<\_ACEOF -#define ARRAY_VARS 1 -_ACEOF - -fi -if test $opt_dparen_arith = yes; then -cat >>confdefs.h <<\_ACEOF -#define DPAREN_ARITHMETIC 1 -_ACEOF - -fi -if test $opt_brace_expansion = yes; then -cat >>confdefs.h <<\_ACEOF -#define BRACE_EXPANSION 1 -_ACEOF - -fi -if test $opt_disabled_builtins = yes; then -cat >>confdefs.h <<\_ACEOF -#define DISABLED_BUILTINS 1 -_ACEOF - -fi -if test $opt_command_timing = yes; then -cat >>confdefs.h <<\_ACEOF -#define COMMAND_TIMING 1 -_ACEOF - -fi -if test $opt_xpg_echo = yes ; then -cat >>confdefs.h <<\_ACEOF -#define DEFAULT_ECHO_TO_XPG 1 -_ACEOF - -fi -if test $opt_extended_glob = yes ; then -cat >>confdefs.h <<\_ACEOF -#define EXTENDED_GLOB 1 -_ACEOF - -fi -if test $opt_cond_command = yes ; then -cat >>confdefs.h <<\_ACEOF -#define COND_COMMAND 1 -_ACEOF - -fi -if test $opt_cond_regexp = yes ; then -cat >>confdefs.h <<\_ACEOF -#define COND_REGEXP 1 -_ACEOF - -fi -if test $opt_arith_for_command = yes; then -cat >>confdefs.h <<\_ACEOF -#define ARITH_FOR_COMMAND 1 -_ACEOF - -fi -if test $opt_net_redirs = yes; then -cat >>confdefs.h <<\_ACEOF -#define NETWORK_REDIRECTIONS 1 -_ACEOF - -fi -if test $opt_progcomp = yes; then -cat >>confdefs.h <<\_ACEOF -#define PROGRAMMABLE_COMPLETION 1 -_ACEOF - -fi -if test $opt_multibyte = no; then -cat >>confdefs.h <<\_ACEOF -#define NO_MULTIBYTE_SUPPORT 1 -_ACEOF - -fi -if test $opt_debugger = yes; then -cat >>confdefs.h <<\_ACEOF -#define DEBUGGER 1 -_ACEOF - -fi - -if test $opt_memscramble = yes; then -cat >>confdefs.h <<\_ACEOF -#define MEMSCRAMBLE 1 -_ACEOF - -fi - -if test "$opt_minimal_config" = yes; then - TESTSCRIPT=run-minimal -else - TESTSCRIPT=run-all -fi - -HELPDIR= HELPDIRDEFINE= HELPINSTALL= -if test "$opt_separate_help" != no; then - if test "$opt_separate_help" = "yes" ; then - HELPDIR='${datadir}/bash' - else - HELPDIR=$opt_separate_help - fi - HELPDIRDEFINE='-H ${HELPDIR}' - HELPINSTALL='install-help' -fi -HELPSTRINGS= -if test "$opt_single_longdoc_strings" != "yes"; then - HELPSTRINGS='-S' -fi - - - - - - - - - - - - - - - - - - -echo "" -echo "Beginning configuration for bash-$BASHVERS-$RELSTATUS for ${host_cpu}-${host_vendor}-${host_os}" -echo "" - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - CC=$ac_ct_CC -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - CC=$ac_ct_CC -else - CC="$ac_cv_prog_CC" -fi - -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$ac_ct_CC" && break -done - - CC=$ac_ct_CC -fi - -fi - - -test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&5 -echo "$as_me: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } - -# Provide some information about the compiler. -echo "$as_me:$LINENO:" \ - "checking for C compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` -{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 - (eval $ac_compiler --version &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 - (eval $ac_compiler -v &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 - (eval $ac_compiler -V &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 -echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 -ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` -if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 - (eval $ac_link_default) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # Find the output, starting from the most likely. This scheme is -# not robust to junk in `.', hence go to wildcards (a.*) only as a last -# resort. - -# Be careful to initialize this variable, since it used to be cached. -# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. -ac_cv_exeext= -# b.out is created by i960 compilers. -for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) - ;; - conftest.$ac_ext ) - # This is the source file. - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - # FIXME: I believe we export ac_cv_exeext for Libtool, - # but it would be cool to find out if it's true. Does anybody - # maintain Libtool? --akim. - export ac_cv_exeext - break;; - * ) - break;; - esac -done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { echo "$as_me:$LINENO: error: C compiler cannot create executables -See \`config.log' for more details." >&5 -echo "$as_me: error: C compiler cannot create executables -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; } -fi - -ac_exeext=$ac_cv_exeext -echo "$as_me:$LINENO: result: $ac_file" >&5 -echo "${ECHO_T}$ac_file" >&6 - -# Check the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -echo "$as_me:$LINENO: checking whether the C compiler works" >&5 -echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 -# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 -# If not cross compiling, check that we can run a simple program. -if test "$cross_compiling" != yes; then - if { ac_try='./$ac_file' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { echo "$as_me:$LINENO: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } - fi - fi -fi -echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - -rm -f a.out a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -# Check the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 -echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 -echo "$as_me:$LINENO: result: $cross_compiling" >&5 -echo "${ECHO_T}$cross_compiling" >&6 - -echo "$as_me:$LINENO: checking for suffix of executables" >&5 -echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - export ac_cv_exeext - break;; - * ) break;; - esac -done -else - { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f conftest$ac_cv_exeext -echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 -echo "${ECHO_T}$ac_cv_exeext" >&6 - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -echo "$as_me:$LINENO: checking for suffix of object files" >&5 -echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 -if test "${ac_cv_objext+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 -echo "${ECHO_T}$ac_cv_objext" >&6 -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 -if test "${ac_cv_c_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_compiler_gnu=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_compiler_gnu=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 -GCC=`test $ac_compiler_gnu = yes && echo yes` -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -CFLAGS="-g" -echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_g=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_prog_cc_g=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 -echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_prog_cc_stdc=no -ac_save_CC=$CC -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std1 is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std1. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -# Don't try gcc -ansi; that turns off useful extensions and -# breaks some systems' header files. -# AIX -qlanglvl=ansi -# Ultrix and OSF/1 -std1 -# HP-UX 10.20 and later -Ae -# HP-UX older versions -Aa -D_HPUX_SOURCE -# SVR4 -Xc -D__EXTENSIONS__ -for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_stdc=$ac_arg -break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext -done -rm -f conftest.$ac_ext conftest.$ac_objext -CC=$ac_save_CC - -fi - -case "x$ac_cv_prog_cc_stdc" in - x|xno) - echo "$as_me:$LINENO: result: none needed" >&5 -echo "${ECHO_T}none needed" >&6 ;; - *) - echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 - CC="$CC $ac_cv_prog_cc_stdc" ;; -esac - -# Some people use a C++ compiler to compile C. Since we use `exit', -# in C++ we need to declare it. In case someone uses the same compiler -# for both compiling C and C++ we need to have the C++ compiler decide -# the declaration of exit, since it's the most demanding environment. -cat >conftest.$ac_ext <<_ACEOF -#ifndef __cplusplus - choke me -#endif -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - for ac_declaration in \ - '' \ - 'extern "C" void std::exit (int) throw (); using std::exit;' \ - 'extern "C" void std::exit (int); using std::exit;' \ - 'extern "C" void exit (int) throw ();' \ - 'extern "C" void exit (int);' \ - 'void exit (int);' -do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -#include -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -continue -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -done -rm -f conftest* -if test -n "$ac_declaration"; then - echo '#ifdef __cplusplus' >>confdefs.h - echo $ac_declaration >>confdefs.h - echo '#endif' >>confdefs.h -fi - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - - - echo "$as_me:$LINENO: checking for strerror in -lcposix" >&5 -echo $ECHO_N "checking for strerror in -lcposix... $ECHO_C" >&6 -if test "${ac_cv_lib_cposix_strerror+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcposix $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char strerror (); -int -main () -{ -strerror (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_cposix_strerror=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_cposix_strerror=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_cposix_strerror" >&5 -echo "${ECHO_T}$ac_cv_lib_cposix_strerror" >&6 -if test $ac_cv_lib_cposix_strerror = yes; then - LIBS="$LIBS -lcposix" -fi - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 -echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -echo "$as_me:$LINENO: result: $CPP" >&5 -echo "${ECHO_T}$CPP" >&6 -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - : -else - { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&5 -echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -echo "$as_me:$LINENO: checking for egrep" >&5 -echo $ECHO_N "checking for egrep... $ECHO_C" >&6 -if test "${ac_cv_prog_egrep+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if echo a | (grep -E '(a|b)') >/dev/null 2>&1 - then ac_cv_prog_egrep='grep -E' - else ac_cv_prog_egrep='egrep' - fi -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 -echo "${ECHO_T}$ac_cv_prog_egrep" >&6 - EGREP=$ac_cv_prog_egrep - - -echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 -if test "${ac_cv_header_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_header_stdc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_header_stdc=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then - : -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - exit(2); - exit (0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_header_stdc=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6 -if test $ac_cv_header_stdc = yes; then - -cat >>confdefs.h <<\_ACEOF -#define STDC_HEADERS 1 -_ACEOF - -fi - -# On IRIX 5.3, sys/types and inttypes.h are conflicting. - - - - - - - - - -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_Header=no" -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -if test "${ac_cv_header_minix_config_h+set}" = set; then - echo "$as_me:$LINENO: checking for minix/config.h" >&5 -echo $ECHO_N "checking for minix/config.h... $ECHO_C" >&6 -if test "${ac_cv_header_minix_config_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5 -echo "${ECHO_T}$ac_cv_header_minix_config_h" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking minix/config.h usability" >&5 -echo $ECHO_N "checking minix/config.h usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking minix/config.h presence" >&5 -echo $ECHO_N "checking minix/config.h presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: minix/config.h: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: minix/config.h: present but cannot be compiled" >&5 -echo "$as_me: WARNING: minix/config.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: minix/config.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: minix/config.h: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: minix/config.h: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: minix/config.h: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: minix/config.h: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: minix/config.h: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: minix/config.h: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: minix/config.h: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: minix/config.h: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX -## ------------------------------- ## -## Report this to bug-bash@gnu.org ## -## ------------------------------- ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for minix/config.h" >&5 -echo $ECHO_N "checking for minix/config.h... $ECHO_C" >&6 -if test "${ac_cv_header_minix_config_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_header_minix_config_h=$ac_header_preproc -fi -echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5 -echo "${ECHO_T}$ac_cv_header_minix_config_h" >&6 - -fi -if test $ac_cv_header_minix_config_h = yes; then - MINIX=yes -else - MINIX= -fi - - -if test "$MINIX" = yes; then - -cat >>confdefs.h <<\_ACEOF -#define _POSIX_SOURCE 1 -_ACEOF - - -cat >>confdefs.h <<\_ACEOF -#define _POSIX_1_SOURCE 2 -_ACEOF - - -cat >>confdefs.h <<\_ACEOF -#define _MINIX 1 -_ACEOF - -fi - - - -case $host_os in - *cygwin* ) CYGWIN=yes;; - * ) CYGWIN=no;; -esac - - -case $host_os in - *mingw32* ) MINGW32=yes;; - * ) MINGW32=no;; -esac - - -# Check whether --enable-largefile or --disable-largefile was given. -if test "${enable_largefile+set}" = set; then - enableval="$enable_largefile" - -fi; -if test "$enable_largefile" != no; then - - echo "$as_me:$LINENO: checking for special C compiler options needed for large files" >&5 -echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6 -if test "${ac_cv_sys_largefile_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_sys_largefile_CC=no - if test "$GCC" != yes; then - ac_save_CC=$CC - while :; do - # IRIX 6.2 and later do not support large files by default, - # so use the C compiler's -n32 option if that helps. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int -main () -{ - - ; - return 0; -} -_ACEOF - rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext - CC="$CC -n32" - rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_sys_largefile_CC=' -n32'; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext - break - done - CC=$ac_save_CC - rm -f conftest.$ac_ext - fi -fi -echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_CC" >&5 -echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6 - if test "$ac_cv_sys_largefile_CC" != no; then - CC=$CC$ac_cv_sys_largefile_CC - fi - - echo "$as_me:$LINENO: checking for _FILE_OFFSET_BITS value needed for large files" >&5 -echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6 -if test "${ac_cv_sys_file_offset_bits+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - while :; do - ac_cv_sys_file_offset_bits=no - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#define _FILE_OFFSET_BITS 64 -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_sys_file_offset_bits=64; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - break -done -fi -echo "$as_me:$LINENO: result: $ac_cv_sys_file_offset_bits" >&5 -echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6 -if test "$ac_cv_sys_file_offset_bits" != no; then - -cat >>confdefs.h <<_ACEOF -#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits -_ACEOF - -fi -rm -f conftest* - echo "$as_me:$LINENO: checking for _LARGE_FILES value needed for large files" >&5 -echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6 -if test "${ac_cv_sys_large_files+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - while :; do - ac_cv_sys_large_files=no - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#define _LARGE_FILES 1 -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_sys_large_files=1; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - break -done -fi -echo "$as_me:$LINENO: result: $ac_cv_sys_large_files" >&5 -echo "${ECHO_T}$ac_cv_sys_large_files" >&6 -if test "$ac_cv_sys_large_files" != no; then - -cat >>confdefs.h <<_ACEOF -#define _LARGE_FILES $ac_cv_sys_large_files -_ACEOF - -fi -rm -f conftest* -fi - - - -SIGNAMES_H=lsignames.h - - - -if test "x$cross_compiling" = "xyes"; then - case "${host}" in - *-cygwin*) - cross_cache=${srcdir}/cross-build/cygwin32.cache - SIGNAMES_H='$(srcdir)/cross-build/win32sig.h' - ;; - i[3456]86-*-beos*) - cross_cache=${srcdir}/cross-build/x86-beos.cache - SIGNAMES_H='${srcdir}/cross-build/beos-sig.h' - ;; - *) echo "configure: cross-compiling for $host is not supported" >&2 - ;; - esac - if test -n "${cross_cache}" && test -r "${cross_cache}"; then - echo "loading cross-build cache file ${cross_cache}" - . ${cross_cache} - fi - unset cross_cache -fi - - -if test -z "$CC_FOR_BUILD"; then - if test "x$cross_compiling" = "xno"; then - CC_FOR_BUILD='$(CC)' - else - CC_FOR_BUILD=gcc - fi -fi - - - -test -z "$CFLAGS" && CFLAGS=-g auto_cflags=1 - -test -n "$GCC" && test -n "$auto_cflags" && CFLAGS="$CFLAGS -O2" - -if test "$opt_profiling" = "yes"; then - PROFILE_FLAGS=-pg - case "$host_os" in - solaris2*) ;; - *) opt_static_link=yes ;; - esac - DEBUG= MALLOC_DEBUG= -fi - -if test "$opt_static_link" = yes; then - # if we're using gcc, add `-static' to LDFLAGS, except on Solaris >= 2 - if test -n "$GCC" || test "$ac_cv_c_compiler_gnu" = "yes"; then - STATIC_LD="-static" - case "$host_os" in - solaris2*) ;; - *) LDFLAGS="$LDFLAGS -static" ;; # XXX experimental - esac - fi -fi - -if test "X$cross_compiling" = "Xno"; then - CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-"$CPPFLAGS"} - LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-'$(LDFLAGS)'} -else - CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-""} - LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-""} -fi - -test -z "$CFLAGS_FOR_BUILD" && CFLAGS_FOR_BUILD="-g" - - - - - - - - - - -if test $ac_cv_c_compiler_gnu = yes; then - echo "$as_me:$LINENO: checking whether $CC needs -traditional" >&5 -echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6 -if test "${ac_cv_prog_gcc_traditional+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_pattern="Autoconf.*'x'" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -Autoconf TIOCGETP -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "$ac_pattern" >/dev/null 2>&1; then - ac_cv_prog_gcc_traditional=yes -else - ac_cv_prog_gcc_traditional=no -fi -rm -f conftest* - - - if test $ac_cv_prog_gcc_traditional = no; then - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -Autoconf TCGETA -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "$ac_pattern" >/dev/null 2>&1; then - ac_cv_prog_gcc_traditional=yes -fi -rm -f conftest* - - fi -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_gcc_traditional" >&5 -echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6 - if test $ac_cv_prog_gcc_traditional = yes; then - CC="$CC -traditional" - fi -fi - - - -if test "$opt_readline" = yes && test "$opt_with_installed_readline" != "no" -then - # If the user specified --with-installed-readline=PREFIX and PREFIX - # is not `yes', set ac_cv_rl_prefix to PREFIX - test $opt_with_installed_readline != "yes" && ac_cv_rl_prefix=$opt_with_installed_readline - - -if test "X$bash_cv_termcap_lib" = "X"; then -_bash_needmsg=yes -else -echo "$as_me:$LINENO: checking which library has the termcap functions" >&5 -echo $ECHO_N "checking which library has the termcap functions... $ECHO_C" >&6 -_bash_needmsg= -fi -if test "${bash_cv_termcap_lib+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - echo "$as_me:$LINENO: checking for tgetent" >&5 -echo $ECHO_N "checking for tgetent... $ECHO_C" >&6 -if test "${ac_cv_func_tgetent+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define tgetent to an innocuous variant, in case declares tgetent. - For example, HP-UX 11i declares gettimeofday. */ -#define tgetent innocuous_tgetent - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char tgetent (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef tgetent - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char tgetent (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_tgetent) || defined (__stub___tgetent) -choke me -#else -char (*f) () = tgetent; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != tgetent; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_tgetent=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_tgetent=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_tgetent" >&5 -echo "${ECHO_T}$ac_cv_func_tgetent" >&6 -if test $ac_cv_func_tgetent = yes; then - bash_cv_termcap_lib=libc -else - echo "$as_me:$LINENO: checking for tgetent in -ltermcap" >&5 -echo $ECHO_N "checking for tgetent in -ltermcap... $ECHO_C" >&6 -if test "${ac_cv_lib_termcap_tgetent+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ltermcap $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char tgetent (); -int -main () -{ -tgetent (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_termcap_tgetent=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_termcap_tgetent=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_termcap_tgetent" >&5 -echo "${ECHO_T}$ac_cv_lib_termcap_tgetent" >&6 -if test $ac_cv_lib_termcap_tgetent = yes; then - bash_cv_termcap_lib=libtermcap -else - echo "$as_me:$LINENO: checking for tgetent in -ltinfo" >&5 -echo $ECHO_N "checking for tgetent in -ltinfo... $ECHO_C" >&6 -if test "${ac_cv_lib_tinfo_tgetent+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ltinfo $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char tgetent (); -int -main () -{ -tgetent (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_tinfo_tgetent=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_tinfo_tgetent=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_tinfo_tgetent" >&5 -echo "${ECHO_T}$ac_cv_lib_tinfo_tgetent" >&6 -if test $ac_cv_lib_tinfo_tgetent = yes; then - bash_cv_termcap_lib=libtinfo -else - echo "$as_me:$LINENO: checking for tgetent in -lcurses" >&5 -echo $ECHO_N "checking for tgetent in -lcurses... $ECHO_C" >&6 -if test "${ac_cv_lib_curses_tgetent+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcurses $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char tgetent (); -int -main () -{ -tgetent (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_curses_tgetent=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_curses_tgetent=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_curses_tgetent" >&5 -echo "${ECHO_T}$ac_cv_lib_curses_tgetent" >&6 -if test $ac_cv_lib_curses_tgetent = yes; then - bash_cv_termcap_lib=libcurses -else - echo "$as_me:$LINENO: checking for tgetent in -lncurses" >&5 -echo $ECHO_N "checking for tgetent in -lncurses... $ECHO_C" >&6 -if test "${ac_cv_lib_ncurses_tgetent+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lncurses $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char tgetent (); -int -main () -{ -tgetent (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_ncurses_tgetent=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_ncurses_tgetent=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_ncurses_tgetent" >&5 -echo "${ECHO_T}$ac_cv_lib_ncurses_tgetent" >&6 -if test $ac_cv_lib_ncurses_tgetent = yes; then - bash_cv_termcap_lib=libncurses -else - bash_cv_termcap_lib=gnutermcap -fi - -fi - -fi - -fi - -fi - -fi - -if test "X$_bash_needmsg" = "Xyes"; then -echo "$as_me:$LINENO: checking which library has the termcap functions" >&5 -echo $ECHO_N "checking which library has the termcap functions... $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: using $bash_cv_termcap_lib" >&5 -echo "${ECHO_T}using $bash_cv_termcap_lib" >&6 -if test $bash_cv_termcap_lib = gnutermcap && test -z "$prefer_curses"; then -LDFLAGS="$LDFLAGS -L./lib/termcap" -TERMCAP_LIB="./lib/termcap/libtermcap.a" -TERMCAP_DEP="./lib/termcap/libtermcap.a" -elif test $bash_cv_termcap_lib = libtermcap && test -z "$prefer_curses"; then -TERMCAP_LIB=-ltermcap -TERMCAP_DEP= -elif test $bash_cv_termcap_lib = libtinfo; then -TERMCAP_LIB=-ltinfo -TERMCAP_DEP= -elif test $bash_cv_termcap_lib = libncurses; then -TERMCAP_LIB=-lncurses -TERMCAP_DEP= -elif test $bash_cv_termcap_lib = libc; then -TERMCAP_LIB= -TERMCAP_DEP= -else -TERMCAP_LIB=-lcurses -TERMCAP_DEP= -fi - - - - -echo "$as_me:$LINENO: checking version of installed readline library" >&5 -echo $ECHO_N "checking version of installed readline library... $ECHO_C" >&6 - -# What a pain in the ass this is. - -# save cpp and ld options -_save_CFLAGS="$CFLAGS" -_save_LDFLAGS="$LDFLAGS" -_save_LIBS="$LIBS" - -# Don't set ac_cv_rl_prefix if the caller has already assigned a value. This -# allows the caller to do something like $_rl_prefix=$withval if the user -# specifies --with-installed-readline=PREFIX as an argument to configure - -if test -z "$ac_cv_rl_prefix"; then -test "x$prefix" = xNONE && ac_cv_rl_prefix=$ac_default_prefix || ac_cv_rl_prefix=${prefix} -fi - -eval ac_cv_rl_includedir=${ac_cv_rl_prefix}/include -eval ac_cv_rl_libdir=${ac_cv_rl_prefix}/lib - -LIBS="$LIBS -lreadline ${TERMCAP_LIB}" -CFLAGS="$CFLAGS -I${ac_cv_rl_includedir}" -LDFLAGS="$LDFLAGS -L${ac_cv_rl_libdir}" - -if test "${ac_cv_rl_version+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - ac_cv_rl_version='4.2' -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include - -main() -{ - FILE *fp; - fp = fopen("conftest.rlv", "w"); - if (fp == 0) exit(1); - fprintf(fp, "%s\n", rl_library_version ? rl_library_version : "0.0"); - fclose(fp); - exit(0); -} - -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_rl_version=`cat conftest.rlv` -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_rl_version='0.0' -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi - - -CFLAGS="$_save_CFLAGS" -LDFLAGS="$_save_LDFLAGS" -LIBS="$_save_LIBS" - -RL_MAJOR=0 -RL_MINOR=0 - -# ( -case "$ac_cv_rl_version" in -2*|3*|4*|5*|6*|7*|8*|9*) - RL_MAJOR=`echo $ac_cv_rl_version | sed 's:\..*$::'` - RL_MINOR=`echo $ac_cv_rl_version | sed -e 's:^.*\.::' -e 's:[a-zA-Z]*$::'` - ;; -esac - -# ((( -case $RL_MAJOR in -[0-9][0-9]) _RL_MAJOR=$RL_MAJOR ;; -[0-9]) _RL_MAJOR=0$RL_MAJOR ;; -*) _RL_MAJOR=00 ;; -esac - -# ((( -case $RL_MINOR in -[0-9][0-9]) _RL_MINOR=$RL_MINOR ;; -[0-9]) _RL_MINOR=0$RL_MINOR ;; -*) _RL_MINOR=00 ;; -esac - -RL_VERSION="0x${_RL_MAJOR}${_RL_MINOR}" - -# Readline versions greater than 4.2 have these defines in readline.h - -if test $ac_cv_rl_version = '0.0' ; then - { echo "$as_me:$LINENO: WARNING: Could not test version of installed readline library." >&5 -echo "$as_me: WARNING: Could not test version of installed readline library." >&2;} -elif test $RL_MAJOR -gt 4 || { test $RL_MAJOR = 4 && test $RL_MINOR -gt 2 ; } ; then - # set these for use by the caller - RL_PREFIX=$ac_cv_rl_prefix - RL_LIBDIR=$ac_cv_rl_libdir - RL_INCLUDEDIR=$ac_cv_rl_includedir - echo "$as_me:$LINENO: result: $ac_cv_rl_version" >&5 -echo "${ECHO_T}$ac_cv_rl_version" >&6 -else - - -cat >>confdefs.h <<_ACEOF -#define RL_READLINE_VERSION $RL_VERSION -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define RL_VERSION_MAJOR $RL_MAJOR -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define RL_VERSION_MINOR $RL_MINOR -_ACEOF - - - - - - -# set these for use by the caller -RL_PREFIX=$ac_cv_rl_prefix -RL_LIBDIR=$ac_cv_rl_libdir -RL_INCLUDEDIR=$ac_cv_rl_includedir - -echo "$as_me:$LINENO: result: $ac_cv_rl_version" >&5 -echo "${ECHO_T}$ac_cv_rl_version" >&6 - -fi - - - case "$ac_cv_rl_version" in - 5*|6*|7*|8*|9*) ;; - *) opt_with_installed_readline=no - { echo "$as_me:$LINENO: WARNING: installed readline library is too old to be linked with bash" >&5 -echo "$as_me: WARNING: installed readline library is too old to be linked with bash" >&2;} - { echo "$as_me:$LINENO: WARNING: using private bash version" >&5 -echo "$as_me: WARNING: using private bash version" >&2;} - ;; - esac -fi - -if test $opt_readline = yes; then - cat >>confdefs.h <<\_ACEOF -#define READLINE 1 -_ACEOF - - if test "$opt_with_installed_readline" != "no" ; then - case "$opt_with_installed_readline" in - yes) RL_INCLUDE= ;; - *) case "$RL_INCLUDEDIR" in - /usr/include) ;; - *) RL_INCLUDE='-I${RL_INCLUDEDIR}' ;; - esac - ;; - esac - READLINE_DEP= - READLINE_LIB=-lreadline - else - RL_LIBDIR='$(dot)/$(LIBSUBDIR)/readline' - READLINE_DEP='$(READLINE_LIBRARY)' - # section for OS versions that ship an older version of - # readline as a standard dynamic library and don't allow a - # static version specified as -llibname to override the - # dynamic version - case "${host_os}" in - darwin8*) READLINE_LIB='${READLINE_LIBRARY}' ;; - *) READLINE_LIB=-lreadline ;; - esac - fi -else - RL_LIBDIR='$(dot)/$(LIBSUBDIR)/readline' - READLINE_LIB= READLINE_DEP= -fi -if test $opt_history = yes || test $opt_bang_history = yes; then - if test $opt_history = yes; then - cat >>confdefs.h <<\_ACEOF -#define HISTORY 1 -_ACEOF - - fi - if test $opt_bang_history = yes; then - cat >>confdefs.h <<\_ACEOF -#define BANG_HISTORY 1 -_ACEOF - - fi - if test "$opt_with_installed_readline" != "no"; then - HIST_LIBDIR=$RL_LIBDIR - HISTORY_DEP= - HISTORY_LIB=-lhistory - case "$opt_with_installed_readline" in - yes) RL_INCLUDE= ;; - *) case "$RL_INCLUDEDIR" in - /usr/include) ;; - *) RL_INCLUDE='-I${RL_INCLUDEDIR}' ;; - esac - ;; - esac - else - HIST_LIBDIR='$(dot)/$(LIBSUBDIR)/readline' - HISTORY_DEP='$(HISTORY_LIBRARY)' - # section for OS versions that ship an older version of - # readline as a standard dynamic library and don't allow a - # static version specified as -llibname to override the - # dynamic version - case "${host_os}" in - darwin8*) HISTORY_LIB='${HISTORY_LIBRARY}' ;; - *) HISTORY_LIB=-lhistory ;; - esac - fi -else - HIST_LIBDIR='$(dot)/$(LIBSUBDIR)/readline' - HISTORY_LIB= HISTORY_DEP= -fi - - - - - - - - - - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# OS/2's system install, which has a completely different semantic -# ./install, which can be erroneously created by make from ./install.sh. -echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 -if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in - ./ | .// | /cC/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - done - done - ;; -esac -done - - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. We don't cache a - # path for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the path is relative. - INSTALL=$ac_install_sh - fi -fi -echo "$as_me:$LINENO: result: $INSTALL" >&5 -echo "${ECHO_T}$INSTALL" >&6 - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -# Extract the first word of "ar", so it can be a program name with args. -set dummy ar; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_AR+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AR="" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" -fi -fi -AR=$ac_cv_prog_AR -if test -n "$AR"; then - echo "$as_me:$LINENO: result: $AR" >&5 -echo "${ECHO_T}$AR" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -test -n "$ARFLAGS" || ARFLAGS="cr" -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - echo "$as_me:$LINENO: result: $RANLIB" >&5 -echo "${ECHO_T}$RANLIB" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 -echo "${ECHO_T}$ac_ct_RANLIB" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - RANLIB=$ac_ct_RANLIB -else - RANLIB="$ac_cv_prog_RANLIB" -fi - -for ac_prog in 'bison -y' byacc -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_YACC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$YACC"; then - ac_cv_prog_YACC="$YACC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_YACC="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -YACC=$ac_cv_prog_YACC -if test -n "$YACC"; then - echo "$as_me:$LINENO: result: $YACC" >&5 -echo "${ECHO_T}$YACC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$YACC" && break -done -test -n "$YACC" || YACC="yacc" - -echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 -set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.make <<\_ACEOF -all: - @echo 'ac_maketemp="$(MAKE)"' -_ACEOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. -eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` -if test -n "$ac_maketemp"; then - eval ac_cv_prog_make_${ac_make}_set=yes -else - eval ac_cv_prog_make_${ac_make}_set=no -fi -rm -f conftest.make -fi -if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - SET_MAKE= -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - SET_MAKE="MAKE=${MAKE-make}" -fi - - -case "$host_os" in -opennt*|interix*) MAKE_SHELL="$INTERIX_ROOT/bin/sh" ;; -*) MAKE_SHELL=/bin/sh ;; -esac - - -if test x$SIZE = x; then - if test x$ac_tool_prefix = x; then - SIZE=size - else - SIZE=${ac_tool_prefix}size - save_IFS=$IFS ; IFS=: - size_found=0 - for dir in $PATH; do - if test -x $dir/$SIZE ; then - size_found=1 - break - fi - done - if test $size_found -eq 0; then - SIZE=: - fi - IFS=$save_IFS - fi -fi - - -cat >>confdefs.h <<\_ACEOF -#define _GNU_SOURCE 1 -_ACEOF - - -echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 -echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6 -if test "${ac_cv_c_const+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -/* FIXME: Include the comments suggested by Paul. */ -#ifndef __cplusplus - /* Ultrix mips cc rejects this. */ - typedef int charset[2]; - const charset x; - /* SunOS 4.1.1 cc rejects this. */ - char const *const *ccp; - char **p; - /* NEC SVR4.0.2 mips cc rejects this. */ - struct point {int x, y;}; - static struct point const zero = {0,0}; - /* AIX XL C 1.02.0.0 rejects this. - It does not let you subtract one const X* pointer from another in - an arm of an if-expression whose if-part is not a constant - expression */ - const char *g = "string"; - ccp = &g + (g ? g-g : 0); - /* HPUX 7.0 cc rejects these. */ - ++ccp; - p = (char**) ccp; - ccp = (char const *const *) p; - { /* SCO 3.2v4 cc rejects this. */ - char *t; - char const *s = 0 ? (char *) 0 : (char const *) 0; - - *t++ = 0; - } - { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ - int x[] = {25, 17}; - const int *foo = &x[0]; - ++foo; - } - { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ - typedef const int *iptr; - iptr p = 0; - ++p; - } - { /* AIX XL C 1.02.0.0 rejects this saying - "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ - struct s { int j; const int *ap[3]; }; - struct s *b; b->j = 5; - } - { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ - const int foo = 10; - } -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_c_const=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_c_const=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 -echo "${ECHO_T}$ac_cv_c_const" >&6 -if test $ac_cv_c_const = no; then - -cat >>confdefs.h <<\_ACEOF -#define const -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for inline" >&5 -echo $ECHO_N "checking for inline... $ECHO_C" >&6 -if test "${ac_cv_c_inline+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_c_inline=no -for ac_kw in inline __inline__ __inline; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifndef __cplusplus -typedef int foo_t; -static $ac_kw foo_t static_foo () {return 0; } -$ac_kw foo_t foo () {return 0; } -#endif - -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_c_inline=$ac_kw; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -done - -fi -echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5 -echo "${ECHO_T}$ac_cv_c_inline" >&6 - - -case $ac_cv_c_inline in - inline | yes) ;; - *) - case $ac_cv_c_inline in - no) ac_val=;; - *) ac_val=$ac_cv_c_inline;; - esac - cat >>confdefs.h <<_ACEOF -#ifndef __cplusplus -#define inline $ac_val -#endif -_ACEOF - ;; -esac - -echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5 -echo $ECHO_N "checking whether byte ordering is bigendian... $ECHO_C" >&6 -if test "${ac_cv_c_bigendian+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # See if sys/param.h defines the BYTE_ORDER macro. -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include - -int -main () -{ -#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN - bogus endian macros -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - # It does; now see whether it defined to BIG_ENDIAN or not. -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include - -int -main () -{ -#if BYTE_ORDER != BIG_ENDIAN - not big endian -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_c_bigendian=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_c_bigendian=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -# It does not; compile a test program. -if test "$cross_compiling" = yes; then - # try to guess the endianness by grepping values into an object file - ac_cv_c_bigendian=unknown - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -short ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; -short ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; -void _ascii () { char *s = (char *) ascii_mm; s = (char *) ascii_ii; } -short ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; -short ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; -void _ebcdic () { char *s = (char *) ebcdic_mm; s = (char *) ebcdic_ii; } -int -main () -{ - _ascii (); _ebcdic (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - if grep BIGenDianSyS conftest.$ac_objext >/dev/null ; then - ac_cv_c_bigendian=yes -fi -if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then - if test "$ac_cv_c_bigendian" = unknown; then - ac_cv_c_bigendian=no - else - # finding both strings is unlikely to happen, but who knows? - ac_cv_c_bigendian=unknown - fi -fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -int -main () -{ - /* Are we little or big endian? From Harbison&Steele. */ - union - { - long l; - char c[sizeof (long)]; - } u; - u.l = 1; - exit (u.c[sizeof (long) - 1] == 1); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_c_bigendian=no -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_c_bigendian=yes -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5 -echo "${ECHO_T}$ac_cv_c_bigendian" >&6 -case $ac_cv_c_bigendian in - yes) - -cat >>confdefs.h <<\_ACEOF -#define WORDS_BIGENDIAN 1 -_ACEOF - ;; - no) - ;; - *) - { { echo "$as_me:$LINENO: error: unknown endianness -presetting ac_cv_c_bigendian=no (or yes) will help" >&5 -echo "$as_me: error: unknown endianness -presetting ac_cv_c_bigendian=no (or yes) will help" >&2;} - { (exit 1); exit 1; }; } ;; -esac - -echo "$as_me:$LINENO: checking for preprocessor stringizing operator" >&5 -echo $ECHO_N "checking for preprocessor stringizing operator... $ECHO_C" >&6 -if test "${ac_cv_c_stringize+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#define x(y) #y - -char *s = x(teststring); -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "#teststring" >/dev/null 2>&1; then - ac_cv_c_stringize=no -else - ac_cv_c_stringize=yes -fi -rm -f conftest* - -fi -echo "$as_me:$LINENO: result: $ac_cv_c_stringize" >&5 -echo "${ECHO_T}$ac_cv_c_stringize" >&6 -if test $ac_cv_c_stringize = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_STRINGIZE 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for working long double with more range or precision than double" >&5 -echo $ECHO_N "checking for working long double with more range or precision than double... $ECHO_C" >&6 -if test "${ac_cv_c_long_double+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - long double foo = 0.0; -int -main () -{ -static int test_array [1 - 2 * !(/* Using '|' rather than '||' catches a GCC 2.95.2 x86 bug. */ - (DBL_MAX < LDBL_MAX) | (LDBL_EPSILON < DBL_EPSILON) - | (DBL_MAX_EXP < LDBL_MAX_EXP) | (DBL_MANT_DIG < LDBL_MANT_DIG))]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_c_long_double=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_c_long_double=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_c_long_double" >&5 -echo "${ECHO_T}$ac_cv_c_long_double" >&6 -if test $ac_cv_c_long_double = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_LONG_DOUBLE 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for function prototypes" >&5 -echo $ECHO_N "checking for function prototypes... $ECHO_C" >&6 -if test "$ac_cv_prog_cc_stdc" != no; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - -cat >>confdefs.h <<\_ACEOF -#define PROTOTYPES 1 -_ACEOF - - -cat >>confdefs.h <<\_ACEOF -#define __PROTOTYPES 1 -_ACEOF - -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - -echo "$as_me:$LINENO: checking whether char is unsigned" >&5 -echo $ECHO_N "checking whether char is unsigned... $ECHO_C" >&6 -if test "${ac_cv_c_char_unsigned+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((char) -1) < 0)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_c_char_unsigned=no -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_c_char_unsigned=yes -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_c_char_unsigned" >&5 -echo "${ECHO_T}$ac_cv_c_char_unsigned" >&6 -if test $ac_cv_c_char_unsigned = yes && test "$GCC" != yes; then - cat >>confdefs.h <<\_ACEOF -#define __CHAR_UNSIGNED__ 1 -_ACEOF - -fi - - - - MKINSTALLDIRS= - if test -n "$ac_aux_dir"; then - case "$ac_aux_dir" in - /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;; - *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;; - esac - fi - if test -z "$MKINSTALLDIRS"; then - MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" - fi - - - - echo "$as_me:$LINENO: checking whether NLS is requested" >&5 -echo $ECHO_N "checking whether NLS is requested... $ECHO_C" >&6 - # Check whether --enable-nls or --disable-nls was given. -if test "${enable_nls+set}" = set; then - enableval="$enable_nls" - USE_NLS=$enableval -else - USE_NLS=yes -fi; - echo "$as_me:$LINENO: result: $USE_NLS" >&5 -echo "${ECHO_T}$USE_NLS" >&6 - - - - - - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Find out how to test for executable files. Don't use a zero-byte file, -# as systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - ac_executable_p="test -x" -else - ac_executable_p="test -f" -fi -rm -f conf$$.file - -# Extract the first word of "msgfmt", so it can be a program name with args. -set dummy msgfmt; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_MSGFMT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case "$MSGFMT" in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$ac_save_IFS" - test -z "$ac_dir" && ac_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then - if $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 && - (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" - test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" - ;; -esac -fi -MSGFMT="$ac_cv_path_MSGFMT" -if test "$MSGFMT" != ":"; then - echo "$as_me:$LINENO: result: $MSGFMT" >&5 -echo "${ECHO_T}$MSGFMT" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - # Extract the first word of "gmsgfmt", so it can be a program name with args. -set dummy gmsgfmt; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_GMSGFMT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $GMSGFMT in - [\\/]* | ?:[\\/]*) - ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" - ;; -esac -fi -GMSGFMT=$ac_cv_path_GMSGFMT - -if test -n "$GMSGFMT"; then - echo "$as_me:$LINENO: result: $GMSGFMT" >&5 -echo "${ECHO_T}$GMSGFMT" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Find out how to test for executable files. Don't use a zero-byte file, -# as systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - ac_executable_p="test -x" -else - ac_executable_p="test -f" -fi -rm -f conf$$.file - -# Extract the first word of "xgettext", so it can be a program name with args. -set dummy xgettext; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_XGETTEXT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case "$XGETTEXT" in - [\\/]* | ?:[\\/]*) - ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$ac_save_IFS" - test -z "$ac_dir" && ac_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then - if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && - (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" - test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" - ;; -esac -fi -XGETTEXT="$ac_cv_path_XGETTEXT" -if test "$XGETTEXT" != ":"; then - echo "$as_me:$LINENO: result: $XGETTEXT" >&5 -echo "${ECHO_T}$XGETTEXT" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - rm -f messages.po - - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Find out how to test for executable files. Don't use a zero-byte file, -# as systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - ac_executable_p="test -x" -else - ac_executable_p="test -f" -fi -rm -f conf$$.file - -# Extract the first word of "msgmerge", so it can be a program name with args. -set dummy msgmerge; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_MSGMERGE+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case "$MSGMERGE" in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$ac_save_IFS" - test -z "$ac_dir" && ac_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then - if $ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1; then - ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" - test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" - ;; -esac -fi -MSGMERGE="$ac_cv_path_MSGMERGE" -if test "$MSGMERGE" != ":"; then - echo "$as_me:$LINENO: result: $MSGMERGE" >&5 -echo "${ECHO_T}$MSGMERGE" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - - if test "$GMSGFMT" != ":"; then - if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 && - (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - : ; - else - GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'` - echo "$as_me:$LINENO: result: found $GMSGFMT program is not GNU msgfmt; ignore it" >&5 -echo "${ECHO_T}found $GMSGFMT program is not GNU msgfmt; ignore it" >&6 - GMSGFMT=":" - fi - fi - - if test "$XGETTEXT" != ":"; then - if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && - (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - : ; - else - echo "$as_me:$LINENO: result: found xgettext program is not GNU xgettext; ignore it" >&5 -echo "${ECHO_T}found xgettext program is not GNU xgettext; ignore it" >&6 - XGETTEXT=":" - fi - rm -f messages.po - fi - - ac_config_commands="$ac_config_commands default-1" - - -echo "$as_me:$LINENO: checking for off_t" >&5 -echo $ECHO_N "checking for off_t... $ECHO_C" >&6 -if test "${ac_cv_type_off_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((off_t *) 0) - return 0; -if (sizeof (off_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_off_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_off_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5 -echo "${ECHO_T}$ac_cv_type_off_t" >&6 -if test $ac_cv_type_off_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define off_t long -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for size_t" >&5 -echo $ECHO_N "checking for size_t... $ECHO_C" >&6 -if test "${ac_cv_type_size_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((size_t *) 0) - return 0; -if (sizeof (size_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_size_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_size_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 -echo "${ECHO_T}$ac_cv_type_size_t" >&6 -if test $ac_cv_type_size_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define size_t unsigned -_ACEOF - -fi - -# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works -# for constant arguments. Useless! -echo "$as_me:$LINENO: checking for working alloca.h" >&5 -echo $ECHO_N "checking for working alloca.h... $ECHO_C" >&6 -if test "${ac_cv_working_alloca_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -int -main () -{ -char *p = (char *) alloca (2 * sizeof (int)); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_working_alloca_h=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_working_alloca_h=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5 -echo "${ECHO_T}$ac_cv_working_alloca_h" >&6 -if test $ac_cv_working_alloca_h = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_ALLOCA_H 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for alloca" >&5 -echo $ECHO_N "checking for alloca... $ECHO_C" >&6 -if test "${ac_cv_func_alloca_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __GNUC__ -# define alloca __builtin_alloca -#else -# ifdef _MSC_VER -# include -# define alloca _alloca -# else -# if HAVE_ALLOCA_H -# include -# else -# ifdef _AIX - #pragma alloca -# else -# ifndef alloca /* predefined by HP cc +Olibcalls */ -char *alloca (); -# endif -# endif -# endif -# endif -#endif - -int -main () -{ -char *p = (char *) alloca (1); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_alloca_works=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_alloca_works=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5 -echo "${ECHO_T}$ac_cv_func_alloca_works" >&6 - -if test $ac_cv_func_alloca_works = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_ALLOCA 1 -_ACEOF - -else - # The SVR3 libPW and SVR4 libucb both contain incompatible functions -# that cause trouble. Some versions do not even contain alloca or -# contain a buggy version. If you still want to use their alloca, -# use ar to extract alloca.o from them instead of compiling alloca.c. - -ALLOCA=alloca.$ac_objext - -cat >>confdefs.h <<\_ACEOF -#define C_ALLOCA 1 -_ACEOF - - -echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5 -echo $ECHO_N "checking whether \`alloca.c' needs Cray hooks... $ECHO_C" >&6 -if test "${ac_cv_os_cray+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#if defined(CRAY) && ! defined(CRAY2) -webecray -#else -wenotbecray -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "webecray" >/dev/null 2>&1; then - ac_cv_os_cray=yes -else - ac_cv_os_cray=no -fi -rm -f conftest* - -fi -echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5 -echo "${ECHO_T}$ac_cv_os_cray" >&6 -if test $ac_cv_os_cray = yes; then - for ac_func in _getb67 GETB67 getb67; do - as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != $ac_func; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_var=no" -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - -cat >>confdefs.h <<_ACEOF -#define CRAY_STACKSEG_END $ac_func -_ACEOF - - break -fi - - done -fi - -echo "$as_me:$LINENO: checking stack direction for C alloca" >&5 -echo $ECHO_N "checking stack direction for C alloca... $ECHO_C" >&6 -if test "${ac_cv_c_stack_direction+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - ac_cv_c_stack_direction=0 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -int -find_stack_direction () -{ - static char *addr = 0; - auto char dummy; - if (addr == 0) - { - addr = &dummy; - return find_stack_direction (); - } - else - return (&dummy > addr) ? 1 : -1; -} - -int -main () -{ - exit (find_stack_direction () < 0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_c_stack_direction=1 -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_c_stack_direction=-1 -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5 -echo "${ECHO_T}$ac_cv_c_stack_direction" >&6 - -cat >>confdefs.h <<_ACEOF -#define STACK_DIRECTION $ac_cv_c_stack_direction -_ACEOF - - -fi - - - -for ac_header in stdlib.h unistd.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX -## ------------------------------- ## -## Report this to bug-bash@gnu.org ## -## ------------------------------- ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -for ac_func in getpagesize -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != $ac_func; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_var=no" -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -echo "$as_me:$LINENO: checking for working mmap" >&5 -echo $ECHO_N "checking for working mmap... $ECHO_C" >&6 -if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - ac_cv_func_mmap_fixed_mapped=no -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -/* malloc might have been renamed as rpl_malloc. */ -#undef malloc - -/* Thanks to Mike Haertel and Jim Avera for this test. - Here is a matrix of mmap possibilities: - mmap private not fixed - mmap private fixed at somewhere currently unmapped - mmap private fixed at somewhere already mapped - mmap shared not fixed - mmap shared fixed at somewhere currently unmapped - mmap shared fixed at somewhere already mapped - For private mappings, we should verify that changes cannot be read() - back from the file, nor mmap's back from the file at a different - address. (There have been systems where private was not correctly - implemented like the infamous i386 svr4.0, and systems where the - VM page cache was not coherent with the file system buffer cache - like early versions of FreeBSD and possibly contemporary NetBSD.) - For shared mappings, we should conversely verify that changes get - propagated back to all the places they're supposed to be. - - Grep wants private fixed already mapped. - The main things grep needs to know about mmap are: - * does it exist and is it safe to write into the mmap'd area - * how to use it (BSD variants) */ - -#include -#include - -#if !STDC_HEADERS && !HAVE_STDLIB_H -char *malloc (); -#endif - -/* This mess was copied from the GNU getpagesize.h. */ -#if !HAVE_GETPAGESIZE -/* Assume that all systems that can run configure have sys/param.h. */ -# if !HAVE_SYS_PARAM_H -# define HAVE_SYS_PARAM_H 1 -# endif - -# ifdef _SC_PAGESIZE -# define getpagesize() sysconf(_SC_PAGESIZE) -# else /* no _SC_PAGESIZE */ -# if HAVE_SYS_PARAM_H -# include -# ifdef EXEC_PAGESIZE -# define getpagesize() EXEC_PAGESIZE -# else /* no EXEC_PAGESIZE */ -# ifdef NBPG -# define getpagesize() NBPG * CLSIZE -# ifndef CLSIZE -# define CLSIZE 1 -# endif /* no CLSIZE */ -# else /* no NBPG */ -# ifdef NBPC -# define getpagesize() NBPC -# else /* no NBPC */ -# ifdef PAGESIZE -# define getpagesize() PAGESIZE -# endif /* PAGESIZE */ -# endif /* no NBPC */ -# endif /* no NBPG */ -# endif /* no EXEC_PAGESIZE */ -# else /* no HAVE_SYS_PARAM_H */ -# define getpagesize() 8192 /* punt totally */ -# endif /* no HAVE_SYS_PARAM_H */ -# endif /* no _SC_PAGESIZE */ - -#endif /* no HAVE_GETPAGESIZE */ - -int -main () -{ - char *data, *data2, *data3; - int i, pagesize; - int fd; - - pagesize = getpagesize (); - - /* First, make a file with some known garbage in it. */ - data = (char *) malloc (pagesize); - if (!data) - exit (1); - for (i = 0; i < pagesize; ++i) - *(data + i) = rand (); - umask (0); - fd = creat ("conftest.mmap", 0600); - if (fd < 0) - exit (1); - if (write (fd, data, pagesize) != pagesize) - exit (1); - close (fd); - - /* Next, try to mmap the file at a fixed address which already has - something else allocated at it. If we can, also make sure that - we see the same garbage. */ - fd = open ("conftest.mmap", O_RDWR); - if (fd < 0) - exit (1); - data2 = (char *) malloc (2 * pagesize); - if (!data2) - exit (1); - data2 += (pagesize - ((long) data2 & (pagesize - 1))) & (pagesize - 1); - if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_FIXED, fd, 0L)) - exit (1); - for (i = 0; i < pagesize; ++i) - if (*(data + i) != *(data2 + i)) - exit (1); - - /* Finally, make sure that changes to the mapped area do not - percolate back to the file as seen by read(). (This is a bug on - some variants of i386 svr4.0.) */ - for (i = 0; i < pagesize; ++i) - *(data2 + i) = *(data2 + i) + 1; - data3 = (char *) malloc (pagesize); - if (!data3) - exit (1); - if (read (fd, data3, pagesize) != pagesize) - exit (1); - for (i = 0; i < pagesize; ++i) - if (*(data + i) != *(data3 + i)) - exit (1); - close (fd); - exit (0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_mmap_fixed_mapped=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_func_mmap_fixed_mapped=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_func_mmap_fixed_mapped" >&5 -echo "${ECHO_T}$ac_cv_func_mmap_fixed_mapped" >&6 -if test $ac_cv_func_mmap_fixed_mapped = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_MMAP 1 -_ACEOF - -fi -rm -f conftest.mmap - - - echo "$as_me:$LINENO: checking whether we are using the GNU C Library 2.1 or newer" >&5 -echo $ECHO_N "checking whether we are using the GNU C Library 2.1 or newer... $ECHO_C" >&6 -if test "${ac_cv_gnu_library_2_1+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#ifdef __GNU_LIBRARY__ - #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) - Lucky GNU user - #endif -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "Lucky GNU user" >/dev/null 2>&1; then - ac_cv_gnu_library_2_1=yes -else - ac_cv_gnu_library_2_1=no -fi -rm -f conftest* - - - -fi -echo "$as_me:$LINENO: result: $ac_cv_gnu_library_2_1" >&5 -echo "${ECHO_T}$ac_cv_gnu_library_2_1" >&6 - - GLIBC21="$ac_cv_gnu_library_2_1" - - - - - echo "$as_me:$LINENO: checking whether integer division by zero raises SIGFPE" >&5 -echo $ECHO_N "checking whether integer division by zero raises SIGFPE... $ECHO_C" >&6 -if test "${gt_cv_int_divbyzero_sigfpe+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - if test "$cross_compiling" = yes; then - - # Guess based on the CPU. - case "$host_cpu" in - alpha* | i3456786 | m68k | s390*) - gt_cv_int_divbyzero_sigfpe="guessing yes";; - *) - gt_cv_int_divbyzero_sigfpe="guessing no";; - esac - -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include - -static void -#ifdef __cplusplus -sigfpe_handler (int sig) -#else -sigfpe_handler (sig) int sig; -#endif -{ - /* Exit with code 0 if SIGFPE, with code 1 if any other signal. */ - exit (sig != SIGFPE); -} - -int x = 1; -int y = 0; -int z; -int nan; - -int main () -{ - signal (SIGFPE, sigfpe_handler); -/* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP. */ -#if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP) - signal (SIGTRAP, sigfpe_handler); -#endif -/* Linux/SPARC yields signal SIGILL. */ -#if defined (__sparc__) && defined (__linux__) - signal (SIGILL, sigfpe_handler); -#endif - - z = x / y; - nan = y / y; - exit (1); -} - -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - gt_cv_int_divbyzero_sigfpe=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -gt_cv_int_divbyzero_sigfpe=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi - -fi -echo "$as_me:$LINENO: result: $gt_cv_int_divbyzero_sigfpe" >&5 -echo "${ECHO_T}$gt_cv_int_divbyzero_sigfpe" >&6 - case "$gt_cv_int_divbyzero_sigfpe" in - *yes) value=1;; - *) value=0;; - esac - -cat >>confdefs.h <<_ACEOF -#define INTDIV0_RAISES_SIGFPE $value -_ACEOF - - - - echo "$as_me:$LINENO: checking for inttypes.h" >&5 -echo $ECHO_N "checking for inttypes.h... $ECHO_C" >&6 -if test "${jm_ac_cv_header_inttypes_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -int -main () -{ -uintmax_t i = (uintmax_t) -1; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - jm_ac_cv_header_inttypes_h=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -jm_ac_cv_header_inttypes_h=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $jm_ac_cv_header_inttypes_h" >&5 -echo "${ECHO_T}$jm_ac_cv_header_inttypes_h" >&6 - if test $jm_ac_cv_header_inttypes_h = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_INTTYPES_H_WITH_UINTMAX 1 -_ACEOF - - fi - - - echo "$as_me:$LINENO: checking for stdint.h" >&5 -echo $ECHO_N "checking for stdint.h... $ECHO_C" >&6 -if test "${jm_ac_cv_header_stdint_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -int -main () -{ -uintmax_t i = (uintmax_t) -1; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - jm_ac_cv_header_stdint_h=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -jm_ac_cv_header_stdint_h=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $jm_ac_cv_header_stdint_h" >&5 -echo "${ECHO_T}$jm_ac_cv_header_stdint_h" >&6 - if test $jm_ac_cv_header_stdint_h = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_STDINT_H_WITH_UINTMAX 1 -_ACEOF - - fi - - - echo "$as_me:$LINENO: checking for unsigned long long" >&5 -echo $ECHO_N "checking for unsigned long long... $ECHO_C" >&6 -if test "${ac_cv_type_unsigned_long_long+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -unsigned long long ull = 1; int i = 63; -int -main () -{ -unsigned long long ullmax = (unsigned long long) -1; - return ull << i | ull >> i | ullmax / ull | ullmax % ull; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_unsigned_long_long=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_unsigned_long_long=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_unsigned_long_long" >&5 -echo "${ECHO_T}$ac_cv_type_unsigned_long_long" >&6 - if test $ac_cv_type_unsigned_long_long = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_UNSIGNED_LONG_LONG 1 -_ACEOF - - fi - - - - - if test $jm_ac_cv_header_inttypes_h = no && test $jm_ac_cv_header_stdint_h = no; then - - test $ac_cv_type_unsigned_long_long = yes \ - && ac_type='unsigned long long' \ - || ac_type='unsigned long' - -cat >>confdefs.h <<_ACEOF -#define uintmax_t $ac_type -_ACEOF - - else - -cat >>confdefs.h <<\_ACEOF -#define HAVE_UINTMAX_T 1 -_ACEOF - - fi - - - echo "$as_me:$LINENO: checking for inttypes.h" >&5 -echo $ECHO_N "checking for inttypes.h... $ECHO_C" >&6 -if test "${gt_cv_header_inttypes_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - gt_cv_header_inttypes_h=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -gt_cv_header_inttypes_h=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -echo "$as_me:$LINENO: result: $gt_cv_header_inttypes_h" >&5 -echo "${ECHO_T}$gt_cv_header_inttypes_h" >&6 - if test $gt_cv_header_inttypes_h = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_INTTYPES_H 1 -_ACEOF - - fi - - - - if test $gt_cv_header_inttypes_h = yes; then - echo "$as_me:$LINENO: checking whether the inttypes.h PRIxNN macros are broken" >&5 -echo $ECHO_N "checking whether the inttypes.h PRIxNN macros are broken... $ECHO_C" >&6 -if test "${gt_cv_inttypes_pri_broken+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#ifdef PRId32 -char *p = PRId32; -#endif - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - gt_cv_inttypes_pri_broken=no -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -gt_cv_inttypes_pri_broken=yes -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -echo "$as_me:$LINENO: result: $gt_cv_inttypes_pri_broken" >&5 -echo "${ECHO_T}$gt_cv_inttypes_pri_broken" >&6 - fi - if test "$gt_cv_inttypes_pri_broken" = yes; then - -cat >>confdefs.h <<_ACEOF -#define PRI_MACROS_BROKEN 1 -_ACEOF - - fi - - - if test "X$prefix" = "XNONE"; then - acl_final_prefix="$ac_default_prefix" - else - acl_final_prefix="$prefix" - fi - if test "X$exec_prefix" = "XNONE"; then - acl_final_exec_prefix='${prefix}' - else - acl_final_exec_prefix="$exec_prefix" - fi - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" - prefix="$acl_save_prefix" - - -# Check whether --with-gnu-ld or --without-gnu-ld was given. -if test "${with_gnu_ld+set}" = set; then - withval="$with_gnu_ld" - test "$withval" = no || with_gnu_ld=yes -else - with_gnu_ld=no -fi; -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - echo "$as_me:$LINENO: checking for ld used by GCC" >&5 -echo $ECHO_N "checking for ld used by GCC... $ECHO_C" >&6 - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [\\/]* | [A-Za-z]:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' - # Canonicalize the path of ld - ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - echo "$as_me:$LINENO: checking for GNU ld" >&5 -echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 -else - echo "$as_me:$LINENO: checking for non-GNU ld" >&5 -echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 -fi -if test "${acl_cv_path_LD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -z "$LD"; then - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - acl_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some GNU ld's only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then - test "$with_gnu_ld" != no && break - else - test "$with_gnu_ld" != yes && break - fi - fi - done - IFS="$ac_save_ifs" -else - acl_cv_path_LD="$LD" # Let the user override the test with a path. -fi -fi - -LD="$acl_cv_path_LD" -if test -n "$LD"; then - echo "$as_me:$LINENO: result: $LD" >&5 -echo "${ECHO_T}$LD" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi -test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 -echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} - { (exit 1); exit 1; }; } -echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 -echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 -if test "${acl_cv_prog_gnu_ld+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # I'd rather use --version here, but apparently some GNU ld's only accept -v. -if $LD -v 2>&1 &5; then - acl_cv_prog_gnu_ld=yes -else - acl_cv_prog_gnu_ld=no -fi -fi -echo "$as_me:$LINENO: result: $acl_cv_prog_gnu_ld" >&5 -echo "${ECHO_T}$acl_cv_prog_gnu_ld" >&6 -with_gnu_ld=$acl_cv_prog_gnu_ld - - - - echo "$as_me:$LINENO: checking for shared library run path origin" >&5 -echo $ECHO_N "checking for shared library run path origin... $ECHO_C" >&6 -if test "${acl_cv_rpath+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ - ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh - . ./conftest.sh - rm -f ./conftest.sh - acl_cv_rpath=done - -fi -echo "$as_me:$LINENO: result: $acl_cv_rpath" >&5 -echo "${ECHO_T}$acl_cv_rpath" >&6 - wl="$acl_cv_wl" - libext="$acl_cv_libext" - shlibext="$acl_cv_shlibext" - hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" - hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" - hardcode_direct="$acl_cv_hardcode_direct" - hardcode_minus_L="$acl_cv_hardcode_minus_L" - # Check whether --enable-rpath or --disable-rpath was given. -if test "${enable_rpath+set}" = set; then - enableval="$enable_rpath" - : -else - enable_rpath=yes -fi; - - - - - - - - use_additional=yes - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - -# Check whether --with-libiconv-prefix or --without-libiconv-prefix was given. -if test "${with_libiconv_prefix+set}" = set; then - withval="$with_libiconv_prefix" - - if test "X$withval" = "Xno"; then - use_additional=no - else - if test "X$withval" = "X"; then - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - else - additional_includedir="$withval/include" - additional_libdir="$withval/lib" - fi - fi - -fi; - LIBICONV= - LTLIBICONV= - INCICONV= - rpathdirs= - ltrpathdirs= - names_already_handled= - names_next_round='iconv ' - while test -n "$names_next_round"; do - names_this_round="$names_next_round" - names_next_round= - for name in $names_this_round; do - already_handled= - for n in $names_already_handled; do - if test "$n" = "$name"; then - already_handled=yes - break - fi - done - if test -z "$already_handled"; then - names_already_handled="$names_already_handled $name" - uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` - eval value=\"\$HAVE_LIB$uppername\" - if test -n "$value"; then - if test "$value" = yes; then - eval value=\"\$LIB$uppername\" - test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value" - eval value=\"\$LTLIB$uppername\" - test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value" - else - : - fi - else - found_dir= - found_la= - found_so= - found_a= - if test $use_additional = yes; then - if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then - found_dir="$additional_libdir" - found_so="$additional_libdir/lib$name.$shlibext" - if test -f "$additional_libdir/lib$name.la"; then - found_la="$additional_libdir/lib$name.la" - fi - else - if test -f "$additional_libdir/lib$name.$libext"; then - found_dir="$additional_libdir" - found_a="$additional_libdir/lib$name.$libext" - if test -f "$additional_libdir/lib$name.la"; then - found_la="$additional_libdir/lib$name.la" - fi - fi - fi - fi - if test "X$found_dir" = "X"; then - for x in $LDFLAGS $LTLIBICONV; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - case "$x" in - -L*) - dir=`echo "X$x" | sed -e 's/^X-L//'` - if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then - found_dir="$dir" - found_so="$dir/lib$name.$shlibext" - if test -f "$dir/lib$name.la"; then - found_la="$dir/lib$name.la" - fi - else - if test -f "$dir/lib$name.$libext"; then - found_dir="$dir" - found_a="$dir/lib$name.$libext" - if test -f "$dir/lib$name.la"; then - found_la="$dir/lib$name.la" - fi - fi - fi - ;; - esac - if test "X$found_dir" != "X"; then - break - fi - done - fi - if test "X$found_dir" != "X"; then - LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name" - if test "X$found_so" != "X"; then - if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then - LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" - else - haveit= - for x in $ltrpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - ltrpathdirs="$ltrpathdirs $found_dir" - fi - if test "$hardcode_direct" = yes; then - LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" - else - if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then - LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" - haveit= - for x in $rpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - rpathdirs="$rpathdirs $found_dir" - fi - else - haveit= - for x in $LDFLAGS $LIBICONV; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-L$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" - fi - if test "$hardcode_minus_L" != no; then - LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" - else - LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" - fi - fi - fi - fi - else - if test "X$found_a" != "X"; then - LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a" - else - LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name" - fi - fi - additional_includedir= - case "$found_dir" in - */lib | */lib/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` - additional_includedir="$basedir/include" - ;; - esac - if test "X$additional_includedir" != "X"; then - if test "X$additional_includedir" != "X/usr/include"; then - haveit= - if test "X$additional_includedir" = "X/usr/local/include"; then - if test -n "$GCC"; then - case $host_os in - linux*) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - for x in $CPPFLAGS $INCICONV; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-I$additional_includedir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_includedir"; then - INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir" - fi - fi - fi - fi - fi - if test -n "$found_la"; then - save_libdir="$libdir" - case "$found_la" in - */* | *\\*) . "$found_la" ;; - *) . "./$found_la" ;; - esac - libdir="$save_libdir" - for dep in $dependency_libs; do - case "$dep" in - -L*) - additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` - if test "X$additional_libdir" != "X/usr/lib"; then - haveit= - if test "X$additional_libdir" = "X/usr/local/lib"; then - if test -n "$GCC"; then - case $host_os in - linux*) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - haveit= - for x in $LDFLAGS $LIBICONV; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir" - fi - fi - haveit= - for x in $LDFLAGS $LTLIBICONV; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir" - fi - fi - fi - fi - ;; - -R*) - dir=`echo "X$dep" | sed -e 's/^X-R//'` - if test "$enable_rpath" != no; then - haveit= - for x in $rpathdirs; do - if test "X$x" = "X$dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - rpathdirs="$rpathdirs $dir" - fi - haveit= - for x in $ltrpathdirs; do - if test "X$x" = "X$dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - ltrpathdirs="$ltrpathdirs $dir" - fi - fi - ;; - -l*) - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` - ;; - *.la) - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` - ;; - *) - LIBICONV="${LIBICONV}${LIBICONV:+ }$dep" - LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep" - ;; - esac - done - fi - else - LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" - LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name" - fi - fi - fi - done - done - if test "X$rpathdirs" != "X"; then - if test -n "$hardcode_libdir_separator"; then - alldirs= - for found_dir in $rpathdirs; do - alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" - done - acl_save_libdir="$libdir" - libdir="$alldirs" - eval flag=\"$hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" - else - for found_dir in $rpathdirs; do - acl_save_libdir="$libdir" - libdir="$found_dir" - eval flag=\"$hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" - done - fi - fi - if test "X$ltrpathdirs" != "X"; then - for found_dir in $ltrpathdirs; do - LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir" - done - fi - - - - - - - - - - - - - - -for ac_header in argz.h limits.h locale.h nl_types.h malloc.h stddef.h \ -stdlib.h string.h unistd.h sys/param.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX -## ------------------------------- ## -## Report this to bug-bash@gnu.org ## -## ------------------------------- ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - - - - - - - - - - - - - - - - - - - - -for ac_func in feof_unlocked fgets_unlocked getc_unlocked getcwd getegid \ -geteuid getgid getuid mempcpy munmap putenv setenv setlocale stpcpy \ -strcasecmp strdup strtoul tsearch __argz_count __argz_stringify __argz_next \ -__fsetlocking -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != $ac_func; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_var=no" -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - - - - - - - am_save_CPPFLAGS="$CPPFLAGS" - - for element in $INCICONV; do - haveit= - for x in $CPPFLAGS; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X$element"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" - fi - done - - - echo "$as_me:$LINENO: checking for iconv" >&5 -echo $ECHO_N "checking for iconv... $ECHO_C" >&6 -if test "${am_cv_func_iconv+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - am_cv_func_iconv="no, consider installing GNU libiconv" - am_cv_lib_iconv=no - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -int -main () -{ -iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - am_cv_func_iconv=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test "$am_cv_func_iconv" != yes; then - am_save_LIBS="$LIBS" - LIBS="$LIBS $LIBICONV" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -int -main () -{ -iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - am_cv_lib_iconv=yes - am_cv_func_iconv=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LIBS="$am_save_LIBS" - fi - -fi -echo "$as_me:$LINENO: result: $am_cv_func_iconv" >&5 -echo "${ECHO_T}$am_cv_func_iconv" >&6 - if test "$am_cv_func_iconv" = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_ICONV 1 -_ACEOF - - fi - if test "$am_cv_lib_iconv" = yes; then - echo "$as_me:$LINENO: checking how to link with libiconv" >&5 -echo $ECHO_N "checking how to link with libiconv... $ECHO_C" >&6 - echo "$as_me:$LINENO: result: $LIBICONV" >&5 -echo "${ECHO_T}$LIBICONV" >&6 - else - CPPFLAGS="$am_save_CPPFLAGS" - LIBICONV= - LTLIBICONV= - fi - - - - if test "$am_cv_func_iconv" = yes; then - echo "$as_me:$LINENO: checking for iconv declaration" >&5 -echo $ECHO_N "checking for iconv declaration... $ECHO_C" >&6 - if test "${am_cv_proto_iconv+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -extern -#ifdef __cplusplus -"C" -#endif -#if defined(__STDC__) || defined(__cplusplus) -size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); -#else -size_t iconv(); -#endif - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - am_cv_proto_iconv_arg1="" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -am_cv_proto_iconv_arg1="const" -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);" -fi - - am_cv_proto_iconv=`echo "$am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` - echo "$as_me:$LINENO: result: ${ac_t:- - }$am_cv_proto_iconv" >&5 -echo "${ECHO_T}${ac_t:- - }$am_cv_proto_iconv" >&6 - -cat >>confdefs.h <<_ACEOF -#define ICONV_CONST $am_cv_proto_iconv_arg1 -_ACEOF - - fi - - - echo "$as_me:$LINENO: checking for nl_langinfo and CODESET" >&5 -echo $ECHO_N "checking for nl_langinfo and CODESET... $ECHO_C" >&6 -if test "${am_cv_langinfo_codeset+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -int -main () -{ -char* cs = nl_langinfo(CODESET); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - am_cv_langinfo_codeset=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -am_cv_langinfo_codeset=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi -echo "$as_me:$LINENO: result: $am_cv_langinfo_codeset" >&5 -echo "${ECHO_T}$am_cv_langinfo_codeset" >&6 - if test $am_cv_langinfo_codeset = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_LANGINFO_CODESET 1 -_ACEOF - - fi - - if test $ac_cv_header_locale_h = yes; then - - echo "$as_me:$LINENO: checking for LC_MESSAGES" >&5 -echo $ECHO_N "checking for LC_MESSAGES... $ECHO_C" >&6 -if test "${am_cv_val_LC_MESSAGES+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -int -main () -{ -return LC_MESSAGES - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - am_cv_val_LC_MESSAGES=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -am_cv_val_LC_MESSAGES=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $am_cv_val_LC_MESSAGES" >&5 -echo "${ECHO_T}$am_cv_val_LC_MESSAGES" >&6 - if test $am_cv_val_LC_MESSAGES = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_LC_MESSAGES 1 -_ACEOF - - fi - - fi - - for ac_prog in bison -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_INTLBISON+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$INTLBISON"; then - ac_cv_prog_INTLBISON="$INTLBISON" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_INTLBISON="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -INTLBISON=$ac_cv_prog_INTLBISON -if test -n "$INTLBISON"; then - echo "$as_me:$LINENO: result: $INTLBISON" >&5 -echo "${ECHO_T}$INTLBISON" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$INTLBISON" && break -done - - if test -z "$INTLBISON"; then - ac_verc_fail=yes - else - echo "$as_me:$LINENO: checking version of bison" >&5 -echo $ECHO_N "checking version of bison... $ECHO_C" >&6 - ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` - case $ac_prog_version in - '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; - 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) - ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; - *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; - esac - echo "$as_me:$LINENO: result: $ac_prog_version" >&5 -echo "${ECHO_T}$ac_prog_version" >&6 - fi - if test $ac_verc_fail = yes; then - INTLBISON=: - fi - - - - - - - - - - - - - - - - - echo "$as_me:$LINENO: checking whether NLS is requested" >&5 -echo $ECHO_N "checking whether NLS is requested... $ECHO_C" >&6 - # Check whether --enable-nls or --disable-nls was given. -if test "${enable_nls+set}" = set; then - enableval="$enable_nls" - USE_NLS=$enableval -else - USE_NLS=yes -fi; - echo "$as_me:$LINENO: result: $USE_NLS" >&5 -echo "${ECHO_T}$USE_NLS" >&6 - - - - - BUILD_INCLUDED_LIBINTL=no - USE_INCLUDED_LIBINTL=no - - LIBINTL= - LTLIBINTL= - POSUB= - - if test "$USE_NLS" = "yes"; then - gt_use_preinstalled_gnugettext=no - - echo "$as_me:$LINENO: checking whether included gettext is requested" >&5 -echo $ECHO_N "checking whether included gettext is requested... $ECHO_C" >&6 - -# Check whether --with-included-gettext or --without-included-gettext was given. -if test "${with_included_gettext+set}" = set; then - withval="$with_included_gettext" - nls_cv_force_use_gnu_gettext=$withval -else - nls_cv_force_use_gnu_gettext=no -fi; - echo "$as_me:$LINENO: result: $nls_cv_force_use_gnu_gettext" >&5 -echo "${ECHO_T}$nls_cv_force_use_gnu_gettext" >&6 - - nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" - if test "$nls_cv_force_use_gnu_gettext" != "yes"; then - - - - - - - echo "$as_me:$LINENO: checking for GNU gettext in libc" >&5 -echo $ECHO_N "checking for GNU gettext in libc... $ECHO_C" >&6 -if test "${gt_cv_func_gnugettext2_libc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -extern int _nl_msg_cat_cntr; -extern int *_nl_domain_bindings; -int -main () -{ -bindtextdomain ("", ""); -return (int) gettext ("") + (int) ngettext ("", "", 0) + _nl_msg_cat_cntr + *_nl_domain_bindings - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - gt_cv_func_gnugettext2_libc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -gt_cv_func_gnugettext2_libc=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $gt_cv_func_gnugettext2_libc" >&5 -echo "${ECHO_T}$gt_cv_func_gnugettext2_libc" >&6 - - if test "$gt_cv_func_gnugettext2_libc" != "yes"; then - - - - use_additional=yes - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - -# Check whether --with-libintl-prefix or --without-libintl-prefix was given. -if test "${with_libintl_prefix+set}" = set; then - withval="$with_libintl_prefix" - - if test "X$withval" = "Xno"; then - use_additional=no - else - if test "X$withval" = "X"; then - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - else - additional_includedir="$withval/include" - additional_libdir="$withval/lib" - fi - fi - -fi; - LIBINTL= - LTLIBINTL= - INCINTL= - rpathdirs= - ltrpathdirs= - names_already_handled= - names_next_round='intl ' - while test -n "$names_next_round"; do - names_this_round="$names_next_round" - names_next_round= - for name in $names_this_round; do - already_handled= - for n in $names_already_handled; do - if test "$n" = "$name"; then - already_handled=yes - break - fi - done - if test -z "$already_handled"; then - names_already_handled="$names_already_handled $name" - uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` - eval value=\"\$HAVE_LIB$uppername\" - if test -n "$value"; then - if test "$value" = yes; then - eval value=\"\$LIB$uppername\" - test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value" - eval value=\"\$LTLIB$uppername\" - test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value" - else - : - fi - else - found_dir= - found_la= - found_so= - found_a= - if test $use_additional = yes; then - if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then - found_dir="$additional_libdir" - found_so="$additional_libdir/lib$name.$shlibext" - if test -f "$additional_libdir/lib$name.la"; then - found_la="$additional_libdir/lib$name.la" - fi - else - if test -f "$additional_libdir/lib$name.$libext"; then - found_dir="$additional_libdir" - found_a="$additional_libdir/lib$name.$libext" - if test -f "$additional_libdir/lib$name.la"; then - found_la="$additional_libdir/lib$name.la" - fi - fi - fi - fi - if test "X$found_dir" = "X"; then - for x in $LDFLAGS $LTLIBINTL; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - case "$x" in - -L*) - dir=`echo "X$x" | sed -e 's/^X-L//'` - if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then - found_dir="$dir" - found_so="$dir/lib$name.$shlibext" - if test -f "$dir/lib$name.la"; then - found_la="$dir/lib$name.la" - fi - else - if test -f "$dir/lib$name.$libext"; then - found_dir="$dir" - found_a="$dir/lib$name.$libext" - if test -f "$dir/lib$name.la"; then - found_la="$dir/lib$name.la" - fi - fi - fi - ;; - esac - if test "X$found_dir" != "X"; then - break - fi - done - fi - if test "X$found_dir" != "X"; then - LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name" - if test "X$found_so" != "X"; then - if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then - LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" - else - haveit= - for x in $ltrpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - ltrpathdirs="$ltrpathdirs $found_dir" - fi - if test "$hardcode_direct" = yes; then - LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" - else - if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then - LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" - haveit= - for x in $rpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - rpathdirs="$rpathdirs $found_dir" - fi - else - haveit= - for x in $LDFLAGS $LIBINTL; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-L$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir" - fi - if test "$hardcode_minus_L" != no; then - LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" - else - LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" - fi - fi - fi - fi - else - if test "X$found_a" != "X"; then - LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a" - else - LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name" - fi - fi - additional_includedir= - case "$found_dir" in - */lib | */lib/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` - additional_includedir="$basedir/include" - ;; - esac - if test "X$additional_includedir" != "X"; then - if test "X$additional_includedir" != "X/usr/include"; then - haveit= - if test "X$additional_includedir" = "X/usr/local/include"; then - if test -n "$GCC"; then - case $host_os in - linux*) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - for x in $CPPFLAGS $INCINTL; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-I$additional_includedir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_includedir"; then - INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir" - fi - fi - fi - fi - fi - if test -n "$found_la"; then - save_libdir="$libdir" - case "$found_la" in - */* | *\\*) . "$found_la" ;; - *) . "./$found_la" ;; - esac - libdir="$save_libdir" - for dep in $dependency_libs; do - case "$dep" in - -L*) - additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` - if test "X$additional_libdir" != "X/usr/lib"; then - haveit= - if test "X$additional_libdir" = "X/usr/local/lib"; then - if test -n "$GCC"; then - case $host_os in - linux*) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - haveit= - for x in $LDFLAGS $LIBINTL; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir" - fi - fi - haveit= - for x in $LDFLAGS $LTLIBINTL; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir" - fi - fi - fi - fi - ;; - -R*) - dir=`echo "X$dep" | sed -e 's/^X-R//'` - if test "$enable_rpath" != no; then - haveit= - for x in $rpathdirs; do - if test "X$x" = "X$dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - rpathdirs="$rpathdirs $dir" - fi - haveit= - for x in $ltrpathdirs; do - if test "X$x" = "X$dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - ltrpathdirs="$ltrpathdirs $dir" - fi - fi - ;; - -l*) - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` - ;; - *.la) - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` - ;; - *) - LIBINTL="${LIBINTL}${LIBINTL:+ }$dep" - LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep" - ;; - esac - done - fi - else - LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" - LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name" - fi - fi - fi - done - done - if test "X$rpathdirs" != "X"; then - if test -n "$hardcode_libdir_separator"; then - alldirs= - for found_dir in $rpathdirs; do - alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" - done - acl_save_libdir="$libdir" - libdir="$alldirs" - eval flag=\"$hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" - else - for found_dir in $rpathdirs; do - acl_save_libdir="$libdir" - libdir="$found_dir" - eval flag=\"$hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" - done - fi - fi - if test "X$ltrpathdirs" != "X"; then - for found_dir in $ltrpathdirs; do - LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir" - done - fi - - echo "$as_me:$LINENO: checking for GNU gettext in libintl" >&5 -echo $ECHO_N "checking for GNU gettext in libintl... $ECHO_C" >&6 -if test "${gt_cv_func_gnugettext2_libintl+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gt_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $INCINTL" - gt_save_LIBS="$LIBS" - LIBS="$LIBS $LIBINTL" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -extern int _nl_msg_cat_cntr; -extern -#ifdef __cplusplus -"C" -#endif -const char *_nl_expand_alias (); -int -main () -{ -bindtextdomain ("", ""); -return (int) gettext ("") + (int) ngettext ("", "", 0) + _nl_msg_cat_cntr + *_nl_expand_alias (0) - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - gt_cv_func_gnugettext2_libintl=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -gt_cv_func_gnugettext2_libintl=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test "$gt_cv_func_gnugettext2_libintl" != yes && test -n "$LIBICONV"; then - LIBS="$LIBS $LIBICONV" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -extern int _nl_msg_cat_cntr; -extern -#ifdef __cplusplus -"C" -#endif -const char *_nl_expand_alias (); -int -main () -{ -bindtextdomain ("", ""); -return (int) gettext ("") + (int) ngettext ("", "", 0) + _nl_msg_cat_cntr + *_nl_expand_alias (0) - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - LIBINTL="$LIBINTL $LIBICONV" - LTLIBINTL="$LTLIBINTL $LTLIBICONV" - gt_cv_func_gnugettext2_libintl=yes - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - CPPFLAGS="$gt_save_CPPFLAGS" - LIBS="$gt_save_LIBS" -fi -echo "$as_me:$LINENO: result: $gt_cv_func_gnugettext2_libintl" >&5 -echo "${ECHO_T}$gt_cv_func_gnugettext2_libintl" >&6 - fi - - if test "$gt_cv_func_gnugettext2_libc" = "yes" \ - || { test "$gt_cv_func_gnugettext2_libintl" = "yes" \ - && test "$PACKAGE" != gettext-runtime \ - && test "$PACKAGE" != gettext-tools; }; then - gt_use_preinstalled_gnugettext=yes - else - LIBINTL= - LTLIBINTL= - INCINTL= - fi - - - if test "$gt_use_preinstalled_gnugettext" != "yes"; then - nls_cv_use_gnu_gettext=yes - fi - fi - - if test "$nls_cv_use_gnu_gettext" = "yes"; then - BUILD_INCLUDED_LIBINTL=yes - USE_INCLUDED_LIBINTL=yes - LIBINTL="lib/intl/libintl.a $LIBICONV" - LTLIBINTL="lib/intl/libintl.a $LTLIBICONV" - LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` - fi - - if test "$gt_use_preinstalled_gnugettext" = "yes" \ - || test "$nls_cv_use_gnu_gettext" = "yes"; then - CATOBJEXT=.gmo - fi - - - if test "$gt_use_preinstalled_gnugettext" = "yes" \ - || test "$nls_cv_use_gnu_gettext" = "yes"; then - -cat >>confdefs.h <<\_ACEOF -#define ENABLE_NLS 1 -_ACEOF - - else - USE_NLS=no - fi - fi - - echo "$as_me:$LINENO: checking whether to use NLS" >&5 -echo $ECHO_N "checking whether to use NLS... $ECHO_C" >&6 - echo "$as_me:$LINENO: result: $USE_NLS" >&5 -echo "${ECHO_T}$USE_NLS" >&6 - if test "$USE_NLS" = "yes"; then - echo "$as_me:$LINENO: checking where the gettext function comes from" >&5 -echo $ECHO_N "checking where the gettext function comes from... $ECHO_C" >&6 - if test "$gt_use_preinstalled_gnugettext" = "yes"; then - if test "$gt_cv_func_gnugettext2_libintl" = "yes"; then - gt_source="external libintl" - else - gt_source="libc" - fi - else - gt_source="included intl directory" - fi - echo "$as_me:$LINENO: result: $gt_source" >&5 -echo "${ECHO_T}$gt_source" >&6 - fi - - if test "$USE_NLS" = "yes"; then - - if test "$gt_use_preinstalled_gnugettext" = "yes"; then - if test "$gt_cv_func_gnugettext2_libintl" = "yes"; then - echo "$as_me:$LINENO: checking how to link with libintl" >&5 -echo $ECHO_N "checking how to link with libintl... $ECHO_C" >&6 - echo "$as_me:$LINENO: result: $LIBINTL" >&5 -echo "${ECHO_T}$LIBINTL" >&6 - - for element in $INCINTL; do - haveit= - for x in $CPPFLAGS; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X$element"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" - fi - done - - fi - - -cat >>confdefs.h <<\_ACEOF -#define HAVE_GETTEXT 1 -_ACEOF - - -cat >>confdefs.h <<\_ACEOF -#define HAVE_DCGETTEXT 1 -_ACEOF - - fi - - POSUB=po - fi - - - if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then - BUILD_INCLUDED_LIBINTL=yes - fi - - - - - - nls_cv_header_intl= - nls_cv_header_libgt= - - DATADIRNAME=share - - - INSTOBJEXT=.mo - - - GENCAT=gencat - - - if test "$USE_INCLUDED_LIBINTL" = yes; then - INTLOBJS="\$(GETTOBJS)" - fi - - - INTL_LIBTOOL_SUFFIX_PREFIX= - - - - INTLLIBS="$LIBINTL" - - - - - - - - - - - - -ac_header_dirent=no -for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do - as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_hdr that defines DIR" >&5 -echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include <$ac_hdr> - -int -main () -{ -if ((DIR *) 0) -return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_Header=no" -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 -_ACEOF - -ac_header_dirent=$ac_hdr; break -fi - -done -# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. -if test $ac_header_dirent = dirent.h; then - echo "$as_me:$LINENO: checking for library containing opendir" >&5 -echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6 -if test "${ac_cv_search_opendir+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_func_search_save_LIBS=$LIBS -ac_cv_search_opendir=no -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char opendir (); -int -main () -{ -opendir (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_search_opendir="none required" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test "$ac_cv_search_opendir" = no; then - for ac_lib in dir; do - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char opendir (); -int -main () -{ -opendir (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_search_opendir="-l$ac_lib" -break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - done -fi -LIBS=$ac_func_search_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 -echo "${ECHO_T}$ac_cv_search_opendir" >&6 -if test "$ac_cv_search_opendir" != no; then - test "$ac_cv_search_opendir" = "none required" || LIBS="$ac_cv_search_opendir $LIBS" - -fi - -else - echo "$as_me:$LINENO: checking for library containing opendir" >&5 -echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6 -if test "${ac_cv_search_opendir+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_func_search_save_LIBS=$LIBS -ac_cv_search_opendir=no -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char opendir (); -int -main () -{ -opendir (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_search_opendir="none required" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test "$ac_cv_search_opendir" = no; then - for ac_lib in x; do - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char opendir (); -int -main () -{ -opendir (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_search_opendir="-l$ac_lib" -break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - done -fi -LIBS=$ac_func_search_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 -echo "${ECHO_T}$ac_cv_search_opendir" >&6 -if test "$ac_cv_search_opendir" != no; then - test "$ac_cv_search_opendir" = "none required" || LIBS="$ac_cv_search_opendir $LIBS" - -fi - -fi - -echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5 -echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6 -if test "${ac_cv_header_time+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include - -int -main () -{ -if ((struct tm *) 0) -return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_header_time=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_header_time=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5 -echo "${ECHO_T}$ac_cv_header_time" >&6 -if test $ac_cv_header_time = yes; then - -cat >>confdefs.h <<\_ACEOF -#define TIME_WITH_SYS_TIME 1 -_ACEOF - -fi - - - - -for ac_header in inttypes.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX -## ------------------------------- ## -## Report this to bug-bash@gnu.org ## -## ------------------------------- ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - - - - - - - - - - - - - - - - - - -for ac_header in unistd.h stdlib.h stdarg.h varargs.h limits.h string.h \ - memory.h locale.h termcap.h termio.h termios.h dlfcn.h \ - stddef.h stdint.h netdb.h grp.h strings.h regex.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX -## ------------------------------- ## -## Report this to bug-bash@gnu.org ## -## ------------------------------- ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - - - - - - - - - - -for ac_header in sys/pte.h sys/stream.h sys/select.h sys/file.h \ - sys/resource.h sys/param.h sys/socket.h sys/stat.h \ - sys/time.h sys/times.h sys/types.h sys/wait.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX -## ------------------------------- ## -## Report this to bug-bash@gnu.org ## -## ------------------------------- ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - -for ac_header in netinet/in.h arpa/inet.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX -## ------------------------------- ## -## Report this to bug-bash@gnu.org ## -## ------------------------------- ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -echo "$as_me:$LINENO: checking for sys/ptem.h" >&5 -echo $ECHO_N "checking for sys/ptem.h... $ECHO_C" >&6 -if test "${ac_cv_header_sys_ptem_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#if HAVE_SYS_STREAM_H -# include -#endif - - -#include -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_header_sys_ptem_h=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_header_sys_ptem_h=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_header_sys_ptem_h" >&5 -echo "${ECHO_T}$ac_cv_header_sys_ptem_h" >&6 - - - -# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works -# for constant arguments. Useless! -echo "$as_me:$LINENO: checking for working alloca.h" >&5 -echo $ECHO_N "checking for working alloca.h... $ECHO_C" >&6 -if test "${ac_cv_working_alloca_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -int -main () -{ -char *p = (char *) alloca (2 * sizeof (int)); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_working_alloca_h=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_working_alloca_h=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5 -echo "${ECHO_T}$ac_cv_working_alloca_h" >&6 -if test $ac_cv_working_alloca_h = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_ALLOCA_H 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for alloca" >&5 -echo $ECHO_N "checking for alloca... $ECHO_C" >&6 -if test "${ac_cv_func_alloca_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __GNUC__ -# define alloca __builtin_alloca -#else -# ifdef _MSC_VER -# include -# define alloca _alloca -# else -# if HAVE_ALLOCA_H -# include -# else -# ifdef _AIX - #pragma alloca -# else -# ifndef alloca /* predefined by HP cc +Olibcalls */ -char *alloca (); -# endif -# endif -# endif -# endif -#endif - -int -main () -{ -char *p = (char *) alloca (1); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_alloca_works=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_alloca_works=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5 -echo "${ECHO_T}$ac_cv_func_alloca_works" >&6 - -if test $ac_cv_func_alloca_works = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_ALLOCA 1 -_ACEOF - -else - # The SVR3 libPW and SVR4 libucb both contain incompatible functions -# that cause trouble. Some versions do not even contain alloca or -# contain a buggy version. If you still want to use their alloca, -# use ar to extract alloca.o from them instead of compiling alloca.c. - -ALLOCA=alloca.$ac_objext - -cat >>confdefs.h <<\_ACEOF -#define C_ALLOCA 1 -_ACEOF - - -echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5 -echo $ECHO_N "checking whether \`alloca.c' needs Cray hooks... $ECHO_C" >&6 -if test "${ac_cv_os_cray+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#if defined(CRAY) && ! defined(CRAY2) -webecray -#else -wenotbecray -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "webecray" >/dev/null 2>&1; then - ac_cv_os_cray=yes -else - ac_cv_os_cray=no -fi -rm -f conftest* - -fi -echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5 -echo "${ECHO_T}$ac_cv_os_cray" >&6 -if test $ac_cv_os_cray = yes; then - for ac_func in _getb67 GETB67 getb67; do - as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != $ac_func; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_var=no" -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - -cat >>confdefs.h <<_ACEOF -#define CRAY_STACKSEG_END $ac_func -_ACEOF - - break -fi - - done -fi - -echo "$as_me:$LINENO: checking stack direction for C alloca" >&5 -echo $ECHO_N "checking stack direction for C alloca... $ECHO_C" >&6 -if test "${ac_cv_c_stack_direction+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - ac_cv_c_stack_direction=0 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -int -find_stack_direction () -{ - static char *addr = 0; - auto char dummy; - if (addr == 0) - { - addr = &dummy; - return find_stack_direction (); - } - else - return (&dummy > addr) ? 1 : -1; -} - -int -main () -{ - exit (find_stack_direction () < 0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_c_stack_direction=1 -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_c_stack_direction=-1 -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5 -echo "${ECHO_T}$ac_cv_c_stack_direction" >&6 - -cat >>confdefs.h <<_ACEOF -#define STACK_DIRECTION $ac_cv_c_stack_direction -_ACEOF - - -fi - -echo "$as_me:$LINENO: checking whether getpgrp requires zero arguments" >&5 -echo $ECHO_N "checking whether getpgrp requires zero arguments... $ECHO_C" >&6 -if test "${ac_cv_func_getpgrp_void+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # Use it with a single arg. -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -getpgrp (0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_getpgrp_void=no -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_getpgrp_void=yes -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -echo "$as_me:$LINENO: result: $ac_cv_func_getpgrp_void" >&5 -echo "${ECHO_T}$ac_cv_func_getpgrp_void" >&6 -if test $ac_cv_func_getpgrp_void = yes; then - -cat >>confdefs.h <<\_ACEOF -#define GETPGRP_VOID 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking whether setvbuf arguments are reversed" >&5 -echo $ECHO_N "checking whether setvbuf arguments are reversed... $ECHO_C" >&6 -if test "${ac_cv_func_setvbuf_reversed+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_func_setvbuf_reversed=no - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -# if PROTOTYPES - int (setvbuf) (FILE *, int, char *, size_t); -# endif -int -main () -{ -char buf; return setvbuf (stdout, _IOLBF, &buf, 1); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -# if PROTOTYPES - int (setvbuf) (FILE *, int, char *, size_t); -# endif -int -main () -{ -char buf; return setvbuf (stdout, &buf, _IOLBF, 1); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - # It compiles and links either way, so it must not be declared - # with a prototype and most likely this is a K&R C compiler. - # Try running it. - if test "$cross_compiling" = yes; then - : # Assume setvbuf is not reversed when cross-compiling. -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -int -main () -{ -/* This call has the arguments reversed. - A reversed system may check and see that the address of buf - is not _IOLBF, _IONBF, or _IOFBF, and return nonzero. */ - char buf; - if (setvbuf (stdout, _IOLBF, &buf, 1) != 0) - exit (1); - putchar ('\r'); - exit (0); /* Non-reversed systems SEGV here. */ - ; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_setvbuf_reversed=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -rm -f core *.core -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi - ac_cv_func_setvbuf_reversed=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_setvbuf_reversed" >&5 -echo "${ECHO_T}$ac_cv_func_setvbuf_reversed" >&6 -if test $ac_cv_func_setvbuf_reversed = yes; then - -cat >>confdefs.h <<\_ACEOF -#define SETVBUF_REVERSED 1 -_ACEOF - -fi - - -for ac_func in vprintf -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != $ac_func; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_var=no" -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -echo "$as_me:$LINENO: checking for _doprnt" >&5 -echo $ECHO_N "checking for _doprnt... $ECHO_C" >&6 -if test "${ac_cv_func__doprnt+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define _doprnt to an innocuous variant, in case declares _doprnt. - For example, HP-UX 11i declares gettimeofday. */ -#define _doprnt innocuous__doprnt - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char _doprnt (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef _doprnt - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char _doprnt (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub__doprnt) || defined (__stub____doprnt) -choke me -#else -char (*f) () = _doprnt; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != _doprnt; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func__doprnt=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func__doprnt=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func__doprnt" >&5 -echo "${ECHO_T}$ac_cv_func__doprnt" >&6 -if test $ac_cv_func__doprnt = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_DOPRNT 1 -_ACEOF - -fi - -fi -done - - -echo "$as_me:$LINENO: checking for working strcoll" >&5 -echo $ECHO_N "checking for working strcoll... $ECHO_C" >&6 -if test "${ac_cv_func_strcoll_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - ac_cv_func_strcoll_works=no -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -exit (strcoll ("abc", "def") >= 0 || - strcoll ("ABC", "DEF") >= 0 || - strcoll ("123", "456") >= 0) - ; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_strcoll_works=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_func_strcoll_works=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_func_strcoll_works" >&5 -echo "${ECHO_T}$ac_cv_func_strcoll_works" >&6 -if test $ac_cv_func_strcoll_works = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_STRCOLL 1 -_ACEOF - -fi - - - -if test "$ac_cv_func_alloca_works" = "no" && test "$opt_bash_malloc" = "no"; then - MALLOC_TARGET=alloca - MALLOC_SRC=alloca.c - - MALLOC_LIB='-lmalloc' - MALLOC_LIBRARY='$(ALLOC_LIBDIR)/libmalloc.a' - MALLOC_LDFLAGS='-L$(ALLOC_LIBDIR)' - MALLOC_DEP='$(MALLOC_LIBRARY)' -fi - -if test "$ac_cv_func_vprintf" = no; then - echo "$as_me:$LINENO: checking for declaration of vprintf in stdio.h" >&5 -echo $ECHO_N "checking for declaration of vprintf in stdio.h... $ECHO_C" >&6 - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "[int[ ]*vprintf[^a-zA-Z0-9]]" >/dev/null 2>&1; then - ac_cv_func_vprintf=yes -fi -rm -f conftest* - - echo "$as_me:$LINENO: result: $ac_cv_func_vprintf" >&5 -echo "${ECHO_T}$ac_cv_func_vprintf" >&6 - if test $ac_cv_func_vprintf = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_VPRINTF 1 -_ACEOF - - fi -fi - -if test "$ac_cv_func_vprintf" = no && test "$ac_cv_func__doprnt" = "yes"; then - case $LIBOBJS in - "vprint.$ac_objext" | \ - *" vprint.$ac_objext" | \ - "vprint.$ac_objext "* | \ - *" vprint.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS vprint.$ac_objext" ;; -esac - -fi - -echo "$as_me:$LINENO: checking return type of signal handlers" >&5 -echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6 -if test "${ac_cv_type_signal+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#ifdef signal -# undef signal -#endif -#ifdef __cplusplus -extern "C" void (*signal (int, void (*)(int)))(int); -#else -void (*signal ()) (); -#endif - -int -main () -{ -int i; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_signal=void -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_signal=int -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5 -echo "${ECHO_T}$ac_cv_type_signal" >&6 - -cat >>confdefs.h <<_ACEOF -#define RETSIGTYPE $ac_cv_type_signal -_ACEOF - - - -echo "$as_me:$LINENO: checking for __setostype" >&5 -echo $ECHO_N "checking for __setostype... $ECHO_C" >&6 -if test "${ac_cv_func___setostype+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define __setostype to an innocuous variant, in case declares __setostype. - For example, HP-UX 11i declares gettimeofday. */ -#define __setostype innocuous___setostype - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char __setostype (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef __setostype - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char __setostype (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub___setostype) || defined (__stub_____setostype) -choke me -#else -char (*f) () = __setostype; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != __setostype; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func___setostype=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func___setostype=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func___setostype" >&5 -echo "${ECHO_T}$ac_cv_func___setostype" >&6 -if test $ac_cv_func___setostype = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_SETOSTYPE 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for wait3" >&5 -echo $ECHO_N "checking for wait3... $ECHO_C" >&6 -if test "${ac_cv_func_wait3+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define wait3 to an innocuous variant, in case declares wait3. - For example, HP-UX 11i declares gettimeofday. */ -#define wait3 innocuous_wait3 - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char wait3 (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef wait3 - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char wait3 (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_wait3) || defined (__stub___wait3) -choke me -#else -char (*f) () = wait3; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != wait3; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_wait3=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_wait3=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_wait3" >&5 -echo "${ECHO_T}$ac_cv_func_wait3" >&6 -if test $ac_cv_func_wait3 = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_WAIT3 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for isinf" >&5 -echo $ECHO_N "checking for isinf... $ECHO_C" >&6 -if test "${ac_cv_func_isinf+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define isinf to an innocuous variant, in case declares isinf. - For example, HP-UX 11i declares gettimeofday. */ -#define isinf innocuous_isinf - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char isinf (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef isinf - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char isinf (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_isinf) || defined (__stub___isinf) -choke me -#else -char (*f) () = isinf; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != isinf; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_isinf=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_isinf=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_isinf" >&5 -echo "${ECHO_T}$ac_cv_func_isinf" >&6 -if test $ac_cv_func_isinf = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_ISINF_IN_LIBC 1 -_ACEOF - -fi - - -echo "$as_me:$LINENO: checking for mkfifo" >&5 -echo $ECHO_N "checking for mkfifo... $ECHO_C" >&6 -if test "${ac_cv_func_mkfifo+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define mkfifo to an innocuous variant, in case declares mkfifo. - For example, HP-UX 11i declares gettimeofday. */ -#define mkfifo innocuous_mkfifo - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char mkfifo (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef mkfifo - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char mkfifo (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_mkfifo) || defined (__stub___mkfifo) -choke me -#else -char (*f) () = mkfifo; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != mkfifo; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_mkfifo=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_mkfifo=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_mkfifo" >&5 -echo "${ECHO_T}$ac_cv_func_mkfifo" >&6 -if test $ac_cv_func_mkfifo = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_MKFIFO 1 -_ACEOF - -else - cat >>confdefs.h <<\_ACEOF -#define MKFIFO_MISSING 1 -_ACEOF - -fi - - - - - - - - - - - - - - - - - - - -for ac_func in dup2 select getdtablesize getgroups gethostname \ - setdtablesize getpagesize killpg lstat getpeername sbrk \ - getrlimit getrusage gettimeofday waitpid tcgetpgrp \ - readlink -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != $ac_func; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_var=no" -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - -for ac_func in rename -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != $ac_func; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_var=no" -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -else - case $LIBOBJS in - "$ac_func.$ac_objext" | \ - *" $ac_func.$ac_objext" | \ - "$ac_func.$ac_objext "* | \ - *" $ac_func.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext" ;; -esac - -fi -done - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -for ac_func in bcopy bzero confstr sysconf pathconf setenv putenv unsetenv \ - setlinebuf setvbuf setlocale strchr tcgetattr uname \ - ulimit tzset siginterrupt memmove ttyname times raise \ - getaddrinfo gethostbyname getservbyname getservent inet_aton \ - vsnprintf snprintf vasprintf asprintf fnmatch regcomp regexec -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != $ac_func; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_var=no" -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - - - - - - -for ac_func in isascii isblank isgraph isprint isspace isxdigit -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != $ac_func; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_var=no" -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - - - - - - - - -for ac_func in getcwd strcasecmp strerror strftime strpbrk memset strstr strnlen -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != $ac_func; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_var=no" -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -else - case $LIBOBJS in - "$ac_func.$ac_objext" | \ - *" $ac_func.$ac_objext" | \ - "$ac_func.$ac_objext "* | \ - *" $ac_func.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext" ;; -esac - -fi -done - - - - - - - - - -for ac_func in strtod strtol strtoul strtoll strtoull strtoimax strtoumax -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != $ac_func; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_var=no" -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -else - case $LIBOBJS in - "$ac_func.$ac_objext" | \ - *" $ac_func.$ac_objext" | \ - "$ac_func.$ac_objext "* | \ - *" $ac_func.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext" ;; -esac - -fi -done - - - -echo "$as_me:$LINENO: checking whether confstr is declared" >&5 -echo $ECHO_N "checking whether confstr is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_confstr+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -#ifndef confstr - char *p = (char *) confstr; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_have_decl_confstr=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_have_decl_confstr=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_confstr" >&5 -echo "${ECHO_T}$ac_cv_have_decl_confstr" >&6 -if test $ac_cv_have_decl_confstr = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_CONFSTR 1 -_ACEOF - - -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_CONFSTR 0 -_ACEOF - - -fi - - -echo "$as_me:$LINENO: checking whether printf is declared" >&5 -echo $ECHO_N "checking whether printf is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_printf+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -#ifndef printf - char *p = (char *) printf; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_have_decl_printf=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_have_decl_printf=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_printf" >&5 -echo "${ECHO_T}$ac_cv_have_decl_printf" >&6 -if test $ac_cv_have_decl_printf = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_PRINTF 1 -_ACEOF - - -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_PRINTF 0 -_ACEOF - - -fi - - -echo "$as_me:$LINENO: checking whether sbrk is declared" >&5 -echo $ECHO_N "checking whether sbrk is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_sbrk+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -#ifndef sbrk - char *p = (char *) sbrk; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_have_decl_sbrk=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_have_decl_sbrk=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_sbrk" >&5 -echo "${ECHO_T}$ac_cv_have_decl_sbrk" >&6 -if test $ac_cv_have_decl_sbrk = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_SBRK 1 -_ACEOF - - -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_SBRK 0 -_ACEOF - - -fi - - -echo "$as_me:$LINENO: checking whether strcpy is declared" >&5 -echo $ECHO_N "checking whether strcpy is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_strcpy+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -#ifndef strcpy - char *p = (char *) strcpy; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_have_decl_strcpy=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_have_decl_strcpy=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_strcpy" >&5 -echo "${ECHO_T}$ac_cv_have_decl_strcpy" >&6 -if test $ac_cv_have_decl_strcpy = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_STRCPY 1 -_ACEOF - - -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_STRCPY 0 -_ACEOF - - -fi - - -echo "$as_me:$LINENO: checking whether strsignal is declared" >&5 -echo $ECHO_N "checking whether strsignal is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_strsignal+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -#ifndef strsignal - char *p = (char *) strsignal; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_have_decl_strsignal=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_have_decl_strsignal=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_strsignal" >&5 -echo "${ECHO_T}$ac_cv_have_decl_strsignal" >&6 -if test $ac_cv_have_decl_strsignal = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_STRSIGNAL 1 -_ACEOF - - -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_STRSIGNAL 0 -_ACEOF - - -fi - - - -echo "$as_me:$LINENO: checking whether strtold is declared" >&5 -echo $ECHO_N "checking whether strtold is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_strtold+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -#ifndef strtold - char *p = (char *) strtold; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_have_decl_strtold=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_have_decl_strtold=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_strtold" >&5 -echo "${ECHO_T}$ac_cv_have_decl_strtold" >&6 -if test $ac_cv_have_decl_strtold = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_STRTOLD 1 -_ACEOF - - - echo "$as_me:$LINENO: checking for broken strtold" >&5 -echo $ECHO_N "checking for broken strtold... $ECHO_C" >&6 - if test "${bash_cv_strtold_broken+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -int -main () -{ -int main() { long double r; char *foo, bar; r = strtold(foo, &bar);} - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_strtold_broken=no -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -bash_cv_strtold_broken=yes -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - - -fi - - echo "$as_me:$LINENO: result: $bash_cv_strtold_broken" >&5 -echo "${ECHO_T}$bash_cv_strtold_broken" >&6 - if test "$bash_cv_strtold_broken" = "yes" ; then - cat >>confdefs.h <<\_ACEOF -#define STRTOLD_BROKEN 1 -_ACEOF - - fi - -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_STRTOLD 0 -_ACEOF - - -fi - - - - - - - -echo "$as_me:$LINENO: checking for declaration of strtoimax" >&5 -echo $ECHO_N "checking for declaration of strtoimax... $ECHO_C" >&6 -if test "${bash_cv_decl_strtoimax+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#if STDC_HEADERS -# include -#endif -#if HAVE_INTTYPES_H -# include -#endif - -int -main () -{ -return !strtoimax; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_decl_strtoimax=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -bash_cv_decl_strtoimax=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $bash_cv_decl_strtoimax" >&5 -echo "${ECHO_T}$bash_cv_decl_strtoimax" >&6 -bash_tr_func=HAVE_DECL_`echo strtoimax | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` -if test $bash_cv_decl_strtoimax = yes; then - cat >>confdefs.h <<_ACEOF -#define $bash_tr_func 1 -_ACEOF - -else - cat >>confdefs.h <<_ACEOF -#define $bash_tr_func 0 -_ACEOF - -fi - - - - -echo "$as_me:$LINENO: checking for declaration of strtol" >&5 -echo $ECHO_N "checking for declaration of strtol... $ECHO_C" >&6 -if test "${bash_cv_decl_strtol+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#if STDC_HEADERS -# include -#endif -#if HAVE_INTTYPES_H -# include -#endif - -int -main () -{ -return !strtol; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_decl_strtol=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -bash_cv_decl_strtol=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $bash_cv_decl_strtol" >&5 -echo "${ECHO_T}$bash_cv_decl_strtol" >&6 -bash_tr_func=HAVE_DECL_`echo strtol | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` -if test $bash_cv_decl_strtol = yes; then - cat >>confdefs.h <<_ACEOF -#define $bash_tr_func 1 -_ACEOF - -else - cat >>confdefs.h <<_ACEOF -#define $bash_tr_func 0 -_ACEOF - -fi - - - - -echo "$as_me:$LINENO: checking for declaration of strtoll" >&5 -echo $ECHO_N "checking for declaration of strtoll... $ECHO_C" >&6 -if test "${bash_cv_decl_strtoll+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#if STDC_HEADERS -# include -#endif -#if HAVE_INTTYPES_H -# include -#endif - -int -main () -{ -return !strtoll; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_decl_strtoll=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -bash_cv_decl_strtoll=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $bash_cv_decl_strtoll" >&5 -echo "${ECHO_T}$bash_cv_decl_strtoll" >&6 -bash_tr_func=HAVE_DECL_`echo strtoll | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` -if test $bash_cv_decl_strtoll = yes; then - cat >>confdefs.h <<_ACEOF -#define $bash_tr_func 1 -_ACEOF - -else - cat >>confdefs.h <<_ACEOF -#define $bash_tr_func 0 -_ACEOF - -fi - - - - -echo "$as_me:$LINENO: checking for declaration of strtoul" >&5 -echo $ECHO_N "checking for declaration of strtoul... $ECHO_C" >&6 -if test "${bash_cv_decl_strtoul+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#if STDC_HEADERS -# include -#endif -#if HAVE_INTTYPES_H -# include -#endif - -int -main () -{ -return !strtoul; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_decl_strtoul=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -bash_cv_decl_strtoul=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $bash_cv_decl_strtoul" >&5 -echo "${ECHO_T}$bash_cv_decl_strtoul" >&6 -bash_tr_func=HAVE_DECL_`echo strtoul | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` -if test $bash_cv_decl_strtoul = yes; then - cat >>confdefs.h <<_ACEOF -#define $bash_tr_func 1 -_ACEOF - -else - cat >>confdefs.h <<_ACEOF -#define $bash_tr_func 0 -_ACEOF - -fi - - - - -echo "$as_me:$LINENO: checking for declaration of strtoull" >&5 -echo $ECHO_N "checking for declaration of strtoull... $ECHO_C" >&6 -if test "${bash_cv_decl_strtoull+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#if STDC_HEADERS -# include -#endif -#if HAVE_INTTYPES_H -# include -#endif - -int -main () -{ -return !strtoull; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_decl_strtoull=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -bash_cv_decl_strtoull=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $bash_cv_decl_strtoull" >&5 -echo "${ECHO_T}$bash_cv_decl_strtoull" >&6 -bash_tr_func=HAVE_DECL_`echo strtoull | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` -if test $bash_cv_decl_strtoull = yes; then - cat >>confdefs.h <<_ACEOF -#define $bash_tr_func 1 -_ACEOF - -else - cat >>confdefs.h <<_ACEOF -#define $bash_tr_func 0 -_ACEOF - -fi - - - - -echo "$as_me:$LINENO: checking for declaration of strtoumax" >&5 -echo $ECHO_N "checking for declaration of strtoumax... $ECHO_C" >&6 -if test "${bash_cv_decl_strtoumax+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#if STDC_HEADERS -# include -#endif -#if HAVE_INTTYPES_H -# include -#endif - -int -main () -{ -return !strtoumax; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_decl_strtoumax=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -bash_cv_decl_strtoumax=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $bash_cv_decl_strtoumax" >&5 -echo "${ECHO_T}$bash_cv_decl_strtoumax" >&6 -bash_tr_func=HAVE_DECL_`echo strtoumax | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` -if test $bash_cv_decl_strtoumax = yes; then - cat >>confdefs.h <<_ACEOF -#define $bash_tr_func 1 -_ACEOF - -else - cat >>confdefs.h <<_ACEOF -#define $bash_tr_func 0 -_ACEOF - -fi - - - - - -for ac_header in stdlib.h sys/time.h unistd.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX -## ------------------------------- ## -## Report this to bug-bash@gnu.org ## -## ------------------------------- ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -for ac_func in alarm -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != $ac_func; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_var=no" -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -echo "$as_me:$LINENO: checking for working mktime" >&5 -echo $ECHO_N "checking for working mktime... $ECHO_C" >&6 -if test "${ac_cv_func_working_mktime+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - ac_cv_func_working_mktime=no -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Test program from Paul Eggert and Tony Leneis. */ -#if TIME_WITH_SYS_TIME -# include -# include -#else -# if HAVE_SYS_TIME_H -# include -# else -# include -# endif -#endif - -#if HAVE_STDLIB_H -# include -#endif - -#if HAVE_UNISTD_H -# include -#endif - -#if !HAVE_ALARM -# define alarm(X) /* empty */ -#endif - -/* Work around redefinition to rpl_putenv by other config tests. */ -#undef putenv - -static time_t time_t_max; -static time_t time_t_min; - -/* Values we'll use to set the TZ environment variable. */ -static char *tz_strings[] = { - (char *) 0, "TZ=GMT0", "TZ=JST-9", - "TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00" -}; -#define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0])) - -/* Fail if mktime fails to convert a date in the spring-forward gap. - Based on a problem report from Andreas Jaeger. */ -static void -spring_forward_gap () -{ - /* glibc (up to about 1998-10-07) failed this test. */ - struct tm tm; - - /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0" - instead of "TZ=America/Vancouver" in order to detect the bug even - on systems that don't support the Olson extension, or don't have the - full zoneinfo tables installed. */ - putenv ("TZ=PST8PDT,M4.1.0,M10.5.0"); - - tm.tm_year = 98; - tm.tm_mon = 3; - tm.tm_mday = 5; - tm.tm_hour = 2; - tm.tm_min = 0; - tm.tm_sec = 0; - tm.tm_isdst = -1; - if (mktime (&tm) == (time_t)-1) - exit (1); -} - -static void -mktime_test1 (now) - time_t now; -{ - struct tm *lt; - if ((lt = localtime (&now)) && mktime (lt) != now) - exit (1); -} - -static void -mktime_test (now) - time_t now; -{ - mktime_test1 (now); - mktime_test1 ((time_t) (time_t_max - now)); - mktime_test1 ((time_t) (time_t_min + now)); -} - -static void -irix_6_4_bug () -{ - /* Based on code from Ariel Faigon. */ - struct tm tm; - tm.tm_year = 96; - tm.tm_mon = 3; - tm.tm_mday = 0; - tm.tm_hour = 0; - tm.tm_min = 0; - tm.tm_sec = 0; - tm.tm_isdst = -1; - mktime (&tm); - if (tm.tm_mon != 2 || tm.tm_mday != 31) - exit (1); -} - -static void -bigtime_test (j) - int j; -{ - struct tm tm; - time_t now; - tm.tm_year = tm.tm_mon = tm.tm_mday = tm.tm_hour = tm.tm_min = tm.tm_sec = j; - now = mktime (&tm); - if (now != (time_t) -1) - { - struct tm *lt = localtime (&now); - if (! (lt - && lt->tm_year == tm.tm_year - && lt->tm_mon == tm.tm_mon - && lt->tm_mday == tm.tm_mday - && lt->tm_hour == tm.tm_hour - && lt->tm_min == tm.tm_min - && lt->tm_sec == tm.tm_sec - && lt->tm_yday == tm.tm_yday - && lt->tm_wday == tm.tm_wday - && ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst) - == (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst)))) - exit (1); - } -} - -int -main () -{ - time_t t, delta; - int i, j; - - /* This test makes some buggy mktime implementations loop. - Give up after 60 seconds; a mktime slower than that - isn't worth using anyway. */ - alarm (60); - - for (time_t_max = 1; 0 < time_t_max; time_t_max *= 2) - continue; - time_t_max--; - if ((time_t) -1 < 0) - for (time_t_min = -1; (time_t) (time_t_min * 2) < 0; time_t_min *= 2) - continue; - delta = time_t_max / 997; /* a suitable prime number */ - for (i = 0; i < N_STRINGS; i++) - { - if (tz_strings[i]) - putenv (tz_strings[i]); - - for (t = 0; t <= time_t_max - delta; t += delta) - mktime_test (t); - mktime_test ((time_t) 1); - mktime_test ((time_t) (60 * 60)); - mktime_test ((time_t) (60 * 60 * 24)); - - for (j = 1; 0 < j; j *= 2) - bigtime_test (j); - bigtime_test (j - 1); - } - irix_6_4_bug (); - spring_forward_gap (); - exit (0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_working_mktime=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_func_working_mktime=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_func_working_mktime" >&5 -echo "${ECHO_T}$ac_cv_func_working_mktime" >&6 -if test $ac_cv_func_working_mktime = no; then - case $LIBOBJS in - "mktime.$ac_objext" | \ - *" mktime.$ac_objext" | \ - "mktime.$ac_objext "* | \ - *" mktime.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS mktime.$ac_objext" ;; -esac - -fi - - - - - - - - -for ac_header in argz.h errno.h fcntl.h malloc.h stdio_ext.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX -## ------------------------------- ## -## Report this to bug-bash@gnu.org ## -## ------------------------------- ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - -for ac_header in stdlib.h unistd.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX -## ------------------------------- ## -## Report this to bug-bash@gnu.org ## -## ------------------------------- ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -for ac_func in getpagesize -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != $ac_func; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_var=no" -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -echo "$as_me:$LINENO: checking for working mmap" >&5 -echo $ECHO_N "checking for working mmap... $ECHO_C" >&6 -if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - ac_cv_func_mmap_fixed_mapped=no -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -/* malloc might have been renamed as rpl_malloc. */ -#undef malloc - -/* Thanks to Mike Haertel and Jim Avera for this test. - Here is a matrix of mmap possibilities: - mmap private not fixed - mmap private fixed at somewhere currently unmapped - mmap private fixed at somewhere already mapped - mmap shared not fixed - mmap shared fixed at somewhere currently unmapped - mmap shared fixed at somewhere already mapped - For private mappings, we should verify that changes cannot be read() - back from the file, nor mmap's back from the file at a different - address. (There have been systems where private was not correctly - implemented like the infamous i386 svr4.0, and systems where the - VM page cache was not coherent with the file system buffer cache - like early versions of FreeBSD and possibly contemporary NetBSD.) - For shared mappings, we should conversely verify that changes get - propagated back to all the places they're supposed to be. - - Grep wants private fixed already mapped. - The main things grep needs to know about mmap are: - * does it exist and is it safe to write into the mmap'd area - * how to use it (BSD variants) */ - -#include -#include - -#if !STDC_HEADERS && !HAVE_STDLIB_H -char *malloc (); -#endif - -/* This mess was copied from the GNU getpagesize.h. */ -#if !HAVE_GETPAGESIZE -/* Assume that all systems that can run configure have sys/param.h. */ -# if !HAVE_SYS_PARAM_H -# define HAVE_SYS_PARAM_H 1 -# endif - -# ifdef _SC_PAGESIZE -# define getpagesize() sysconf(_SC_PAGESIZE) -# else /* no _SC_PAGESIZE */ -# if HAVE_SYS_PARAM_H -# include -# ifdef EXEC_PAGESIZE -# define getpagesize() EXEC_PAGESIZE -# else /* no EXEC_PAGESIZE */ -# ifdef NBPG -# define getpagesize() NBPG * CLSIZE -# ifndef CLSIZE -# define CLSIZE 1 -# endif /* no CLSIZE */ -# else /* no NBPG */ -# ifdef NBPC -# define getpagesize() NBPC -# else /* no NBPC */ -# ifdef PAGESIZE -# define getpagesize() PAGESIZE -# endif /* PAGESIZE */ -# endif /* no NBPC */ -# endif /* no NBPG */ -# endif /* no EXEC_PAGESIZE */ -# else /* no HAVE_SYS_PARAM_H */ -# define getpagesize() 8192 /* punt totally */ -# endif /* no HAVE_SYS_PARAM_H */ -# endif /* no _SC_PAGESIZE */ - -#endif /* no HAVE_GETPAGESIZE */ - -int -main () -{ - char *data, *data2, *data3; - int i, pagesize; - int fd; - - pagesize = getpagesize (); - - /* First, make a file with some known garbage in it. */ - data = (char *) malloc (pagesize); - if (!data) - exit (1); - for (i = 0; i < pagesize; ++i) - *(data + i) = rand (); - umask (0); - fd = creat ("conftest.mmap", 0600); - if (fd < 0) - exit (1); - if (write (fd, data, pagesize) != pagesize) - exit (1); - close (fd); - - /* Next, try to mmap the file at a fixed address which already has - something else allocated at it. If we can, also make sure that - we see the same garbage. */ - fd = open ("conftest.mmap", O_RDWR); - if (fd < 0) - exit (1); - data2 = (char *) malloc (2 * pagesize); - if (!data2) - exit (1); - data2 += (pagesize - ((long) data2 & (pagesize - 1))) & (pagesize - 1); - if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_FIXED, fd, 0L)) - exit (1); - for (i = 0; i < pagesize; ++i) - if (*(data + i) != *(data2 + i)) - exit (1); - - /* Finally, make sure that changes to the mapped area do not - percolate back to the file as seen by read(). (This is a bug on - some variants of i386 svr4.0.) */ - for (i = 0; i < pagesize; ++i) - *(data2 + i) = *(data2 + i) + 1; - data3 = (char *) malloc (pagesize); - if (!data3) - exit (1); - if (read (fd, data3, pagesize) != pagesize) - exit (1); - for (i = 0; i < pagesize; ++i) - if (*(data + i) != *(data3 + i)) - exit (1); - close (fd); - exit (0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_mmap_fixed_mapped=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_func_mmap_fixed_mapped=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_func_mmap_fixed_mapped" >&5 -echo "${ECHO_T}$ac_cv_func_mmap_fixed_mapped" >&6 -if test $ac_cv_func_mmap_fixed_mapped = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_MMAP 1 -_ACEOF - -fi -rm -f conftest.mmap - - - - - - - - - - -for ac_func in __argz_count __argz_next __argz_stringify dcgettext mempcpy \ - munmap stpcpy strcspn strdup -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != $ac_func; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_var=no" -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - -INTL_DEP= INTL_INC= LIBINTL_H= -if test "x$USE_INCLUDED_LIBINTL" = "xyes"; then - INTL_DEP='${INTL_LIBDIR}/libintl.a' - INTL_INC='-I${INTL_LIBSRC} -I${INTL_BUILDDIR}' - LIBINTL_H='${INTL_BUILDDIR}/libintl.h' -fi - - - - - - - -for ac_header in wctype.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX -## ------------------------------- ## -## Report this to bug-bash@gnu.org ## -## ------------------------------- ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -for ac_header in wchar.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX -## ------------------------------- ## -## Report this to bug-bash@gnu.org ## -## ------------------------------- ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -for ac_header in langinfo.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX -## ------------------------------- ## -## Report this to bug-bash@gnu.org ## -## ------------------------------- ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -echo "$as_me:$LINENO: checking for mbsrtowcs" >&5 -echo $ECHO_N "checking for mbsrtowcs... $ECHO_C" >&6 -if test "${ac_cv_func_mbsrtowcs+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define mbsrtowcs to an innocuous variant, in case declares mbsrtowcs. - For example, HP-UX 11i declares gettimeofday. */ -#define mbsrtowcs innocuous_mbsrtowcs - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char mbsrtowcs (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef mbsrtowcs - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char mbsrtowcs (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_mbsrtowcs) || defined (__stub___mbsrtowcs) -choke me -#else -char (*f) () = mbsrtowcs; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != mbsrtowcs; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_mbsrtowcs=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_mbsrtowcs=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_mbsrtowcs" >&5 -echo "${ECHO_T}$ac_cv_func_mbsrtowcs" >&6 -if test $ac_cv_func_mbsrtowcs = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_MBSRTOWCS 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for mbrtowc" >&5 -echo $ECHO_N "checking for mbrtowc... $ECHO_C" >&6 -if test "${ac_cv_func_mbrtowc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define mbrtowc to an innocuous variant, in case declares mbrtowc. - For example, HP-UX 11i declares gettimeofday. */ -#define mbrtowc innocuous_mbrtowc - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char mbrtowc (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef mbrtowc - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char mbrtowc (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_mbrtowc) || defined (__stub___mbrtowc) -choke me -#else -char (*f) () = mbrtowc; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != mbrtowc; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_mbrtowc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_mbrtowc=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_mbrtowc" >&5 -echo "${ECHO_T}$ac_cv_func_mbrtowc" >&6 -if test $ac_cv_func_mbrtowc = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_MBRTOWC 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for mbrlen" >&5 -echo $ECHO_N "checking for mbrlen... $ECHO_C" >&6 -if test "${ac_cv_func_mbrlen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define mbrlen to an innocuous variant, in case declares mbrlen. - For example, HP-UX 11i declares gettimeofday. */ -#define mbrlen innocuous_mbrlen - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char mbrlen (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef mbrlen - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char mbrlen (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_mbrlen) || defined (__stub___mbrlen) -choke me -#else -char (*f) () = mbrlen; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != mbrlen; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_mbrlen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_mbrlen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_mbrlen" >&5 -echo "${ECHO_T}$ac_cv_func_mbrlen" >&6 -if test $ac_cv_func_mbrlen = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_MBRLEN 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for wctomb" >&5 -echo $ECHO_N "checking for wctomb... $ECHO_C" >&6 -if test "${ac_cv_func_wctomb+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define wctomb to an innocuous variant, in case declares wctomb. - For example, HP-UX 11i declares gettimeofday. */ -#define wctomb innocuous_wctomb - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char wctomb (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef wctomb - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char wctomb (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_wctomb) || defined (__stub___wctomb) -choke me -#else -char (*f) () = wctomb; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != wctomb; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_wctomb=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_wctomb=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_wctomb" >&5 -echo "${ECHO_T}$ac_cv_func_wctomb" >&6 -if test $ac_cv_func_wctomb = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_WCTOMB 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for wcwidth" >&5 -echo $ECHO_N "checking for wcwidth... $ECHO_C" >&6 -if test "${ac_cv_func_wcwidth+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define wcwidth to an innocuous variant, in case declares wcwidth. - For example, HP-UX 11i declares gettimeofday. */ -#define wcwidth innocuous_wcwidth - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char wcwidth (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef wcwidth - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char wcwidth (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_wcwidth) || defined (__stub___wcwidth) -choke me -#else -char (*f) () = wcwidth; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != wcwidth; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_wcwidth=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_wcwidth=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_wcwidth" >&5 -echo "${ECHO_T}$ac_cv_func_wcwidth" >&6 -if test $ac_cv_func_wcwidth = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_WCWIDTH 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for wcsdup" >&5 -echo $ECHO_N "checking for wcsdup... $ECHO_C" >&6 -if test "${ac_cv_func_wcsdup+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define wcsdup to an innocuous variant, in case declares wcsdup. - For example, HP-UX 11i declares gettimeofday. */ -#define wcsdup innocuous_wcsdup - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char wcsdup (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef wcsdup - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char wcsdup (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_wcsdup) || defined (__stub___wcsdup) -choke me -#else -char (*f) () = wcsdup; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != wcsdup; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_wcsdup=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_wcsdup=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_wcsdup" >&5 -echo "${ECHO_T}$ac_cv_func_wcsdup" >&6 -if test $ac_cv_func_wcsdup = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_WCSDUP 1 -_ACEOF - -fi - - -echo "$as_me:$LINENO: checking for mbstate_t" >&5 -echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6 -if test "${bash_cv_have_mbstate_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -int -main () -{ - - mbstate_t ps; - mbstate_t *psp; - psp = (mbstate_t *)0; - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_have_mbstate_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -bash_cv_have_mbstate_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $bash_cv_have_mbstate_t" >&5 -echo "${ECHO_T}$bash_cv_have_mbstate_t" >&6 -if test $bash_cv_have_mbstate_t = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_MBSTATE_T 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for nl_langinfo and CODESET" >&5 -echo $ECHO_N "checking for nl_langinfo and CODESET... $ECHO_C" >&6 -if test "${bash_cv_langinfo_codeset+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -int -main () -{ -char* cs = nl_langinfo(CODESET); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_langinfo_codeset=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -bash_cv_langinfo_codeset=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $bash_cv_langinfo_codeset" >&5 -echo "${ECHO_T}$bash_cv_langinfo_codeset" >&6 -if test $bash_cv_langinfo_codeset = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_LANGINFO_CODESET 1 -_ACEOF - -fi - - - -if test "$opt_static_link" != yes; then - -echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dl_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dl_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 -if test $ac_cv_lib_dl_dlopen = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBDL 1 -_ACEOF - - LIBS="-ldl $LIBS" - -fi - - - - -for ac_func in dlopen dlclose dlsym -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != $ac_func; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_var=no" -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -fi - -echo "$as_me:$LINENO: checking whether sys_siglist is declared" >&5 -echo $ECHO_N "checking whether sys_siglist is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_sys_siglist+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -/* NetBSD declares sys_siglist in unistd.h. */ -#if HAVE_UNISTD_H -# include -#endif - - -int -main () -{ -#ifndef sys_siglist - char *p = (char *) sys_siglist; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_have_decl_sys_siglist=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_have_decl_sys_siglist=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_sys_siglist" >&5 -echo "${ECHO_T}$ac_cv_have_decl_sys_siglist" >&6 -if test $ac_cv_have_decl_sys_siglist = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_SYS_SIGLIST 1 -_ACEOF - - -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_SYS_SIGLIST 0 -_ACEOF - - -fi - - - - -if test "$ac_cv_func_inet_aton" != 'yes'; then - -echo "$as_me:$LINENO: checking for inet_aton" >&5 -echo $ECHO_N "checking for inet_aton... $ECHO_C" >&6 -if test "${bash_cv_func_inet_aton+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -#include -struct in_addr ap; -int -main () -{ - inet_aton("127.0.0.1", &ap); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_func_inet_aton=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -bash_cv_func_inet_aton=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $bash_cv_func_inet_aton" >&5 -echo "${ECHO_T}$bash_cv_func_inet_aton" >&6 -if test $bash_cv_func_inet_aton = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_INET_ATON 1 -_ACEOF - -else - case $LIBOBJS in - "inet_aton.$ac_objext" | \ - *" inet_aton.$ac_objext" | \ - "inet_aton.$ac_objext "* | \ - *" inet_aton.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS inet_aton.$ac_objext" ;; -esac - -fi - -fi - -case "$host_os" in -irix4*) -echo "$as_me:$LINENO: checking for getpwent in -lsun" >&5 -echo $ECHO_N "checking for getpwent in -lsun... $ECHO_C" >&6 -if test "${ac_cv_lib_sun_getpwent+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsun $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char getpwent (); -int -main () -{ -getpwent (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_sun_getpwent=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_sun_getpwent=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_sun_getpwent" >&5 -echo "${ECHO_T}$ac_cv_lib_sun_getpwent" >&6 -if test $ac_cv_lib_sun_getpwent = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSUN 1 -_ACEOF - - LIBS="-lsun $LIBS" - -fi - ;; -esac - -if test "$ac_cv_func_getpeername" = no; then - -if test "X$bash_cv_have_socklib" = "X"; then -_bash_needmsg= -else -echo "$as_me:$LINENO: checking for socket library" >&5 -echo $ECHO_N "checking for socket library... $ECHO_C" >&6 -_bash_needmsg=yes -fi -if test "${bash_cv_have_socklib+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - echo "$as_me:$LINENO: checking for getpeername in -lsocket" >&5 -echo $ECHO_N "checking for getpeername in -lsocket... $ECHO_C" >&6 -if test "${ac_cv_lib_socket_getpeername+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsocket -lnsl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char getpeername (); -int -main () -{ -getpeername (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_socket_getpeername=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_socket_getpeername=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_socket_getpeername" >&5 -echo "${ECHO_T}$ac_cv_lib_socket_getpeername" >&6 -if test $ac_cv_lib_socket_getpeername = yes; then - bash_cv_have_socklib=yes -else - bash_cv_have_socklib=no -fi - -fi - -if test "X$_bash_needmsg" = Xyes; then - echo "$as_me:$LINENO: result: $bash_cv_have_socklib" >&5 -echo "${ECHO_T}$bash_cv_have_socklib" >&6 - _bash_needmsg= -fi -if test $bash_cv_have_socklib = yes; then - # check for libnsl, add it to LIBS if present - if test "X$bash_cv_have_libnsl" = "X"; then - _bash_needmsg= - else - echo "$as_me:$LINENO: checking for libnsl" >&5 -echo $ECHO_N "checking for libnsl... $ECHO_C" >&6 - _bash_needmsg=yes - fi - if test "${bash_cv_have_libnsl+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - echo "$as_me:$LINENO: checking for t_open in -lnsl" >&5 -echo $ECHO_N "checking for t_open in -lnsl... $ECHO_C" >&6 -if test "${ac_cv_lib_nsl_t_open+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lnsl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char t_open (); -int -main () -{ -t_open (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_nsl_t_open=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_nsl_t_open=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_t_open" >&5 -echo "${ECHO_T}$ac_cv_lib_nsl_t_open" >&6 -if test $ac_cv_lib_nsl_t_open = yes; then - bash_cv_have_libnsl=yes -else - bash_cv_have_libnsl=no -fi - -fi - - if test "X$_bash_needmsg" = Xyes; then - echo "$as_me:$LINENO: result: $bash_cv_have_libnsl" >&5 -echo "${ECHO_T}$bash_cv_have_libnsl" >&6 - _bash_needmsg= - fi - if test $bash_cv_have_libnsl = yes; then - LIBS="-lsocket -lnsl $LIBS" - else - LIBS="-lsocket $LIBS" - fi - cat >>confdefs.h <<\_ACEOF -#define HAVE_LIBSOCKET 1 -_ACEOF - - cat >>confdefs.h <<\_ACEOF -#define HAVE_GETPEERNAME 1 -_ACEOF - -fi - -fi -if test "$ac_cv_func_gethostbyname" = no; then - if test "X$bash_cv_have_gethostbyname" = "X"; then -_bash_needmsg=yes -else -echo "$as_me:$LINENO: checking for gethostbyname in socket library" >&5 -echo $ECHO_N "checking for gethostbyname in socket library... $ECHO_C" >&6 -_bash_needmsg= -fi -if test "${bash_cv_have_gethostbyname+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -int -main () -{ - struct hostent *hp; - hp = gethostbyname("localhost"); - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_have_gethostbyname=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -bash_cv_have_gethostbyname=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi - -if test "X$_bash_needmsg" = Xyes; then - echo "$as_me:$LINENO: checking for gethostbyname in socket library" >&5 -echo $ECHO_N "checking for gethostbyname in socket library... $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: $bash_cv_have_gethostbyname" >&5 -echo "${ECHO_T}$bash_cv_have_gethostbyname" >&6 -if test "$bash_cv_have_gethostbyname" = yes; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_GETHOSTBYNAME 1 -_ACEOF - -fi - -fi - -echo "$as_me:$LINENO: checking for uid_t in sys/types.h" >&5 -echo $ECHO_N "checking for uid_t in sys/types.h... $ECHO_C" >&6 -if test "${ac_cv_type_uid_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "uid_t" >/dev/null 2>&1; then - ac_cv_type_uid_t=yes -else - ac_cv_type_uid_t=no -fi -rm -f conftest* - -fi -echo "$as_me:$LINENO: result: $ac_cv_type_uid_t" >&5 -echo "${ECHO_T}$ac_cv_type_uid_t" >&6 -if test $ac_cv_type_uid_t = no; then - -cat >>confdefs.h <<\_ACEOF -#define uid_t int -_ACEOF - - -cat >>confdefs.h <<\_ACEOF -#define gid_t int -_ACEOF - -fi - -echo "$as_me:$LINENO: checking type of array argument to getgroups" >&5 -echo $ECHO_N "checking type of array argument to getgroups... $ECHO_C" >&6 -if test "${ac_cv_type_getgroups+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - ac_cv_type_getgroups=cross -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Thanks to Mike Rendell for this test. */ -#include -#define NGID 256 -#undef MAX -#define MAX(x, y) ((x) > (y) ? (x) : (y)) - -int -main () -{ - gid_t gidset[NGID]; - int i, n; - union { gid_t gval; long lval; } val; - - val.lval = -1; - for (i = 0; i < NGID; i++) - gidset[i] = val.gval; - n = getgroups (sizeof (gidset) / MAX (sizeof (int), sizeof (gid_t)) - 1, - gidset); - /* Exit non-zero if getgroups seems to require an array of ints. This - happens when gid_t is short but getgroups modifies an array of ints. */ - exit ((n > 0 && gidset[n] != val.gval) ? 1 : 0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_getgroups=gid_t -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_type_getgroups=int -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -if test $ac_cv_type_getgroups = cross; then - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "getgroups.*int.*gid_t" >/dev/null 2>&1; then - ac_cv_type_getgroups=gid_t -else - ac_cv_type_getgroups=int -fi -rm -f conftest* - -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_type_getgroups" >&5 -echo "${ECHO_T}$ac_cv_type_getgroups" >&6 - -cat >>confdefs.h <<_ACEOF -#define GETGROUPS_T $ac_cv_type_getgroups -_ACEOF - - -echo "$as_me:$LINENO: checking for off_t" >&5 -echo $ECHO_N "checking for off_t... $ECHO_C" >&6 -if test "${ac_cv_type_off_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((off_t *) 0) - return 0; -if (sizeof (off_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_off_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_off_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5 -echo "${ECHO_T}$ac_cv_type_off_t" >&6 -if test $ac_cv_type_off_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define off_t long -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for mode_t" >&5 -echo $ECHO_N "checking for mode_t... $ECHO_C" >&6 -if test "${ac_cv_type_mode_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((mode_t *) 0) - return 0; -if (sizeof (mode_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_mode_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_mode_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_mode_t" >&5 -echo "${ECHO_T}$ac_cv_type_mode_t" >&6 -if test $ac_cv_type_mode_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define mode_t int -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for uid_t in sys/types.h" >&5 -echo $ECHO_N "checking for uid_t in sys/types.h... $ECHO_C" >&6 -if test "${ac_cv_type_uid_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "uid_t" >/dev/null 2>&1; then - ac_cv_type_uid_t=yes -else - ac_cv_type_uid_t=no -fi -rm -f conftest* - -fi -echo "$as_me:$LINENO: result: $ac_cv_type_uid_t" >&5 -echo "${ECHO_T}$ac_cv_type_uid_t" >&6 -if test $ac_cv_type_uid_t = no; then - -cat >>confdefs.h <<\_ACEOF -#define uid_t int -_ACEOF - - -cat >>confdefs.h <<\_ACEOF -#define gid_t int -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for pid_t" >&5 -echo $ECHO_N "checking for pid_t... $ECHO_C" >&6 -if test "${ac_cv_type_pid_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((pid_t *) 0) - return 0; -if (sizeof (pid_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_pid_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_pid_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5 -echo "${ECHO_T}$ac_cv_type_pid_t" >&6 -if test $ac_cv_type_pid_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define pid_t int -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for size_t" >&5 -echo $ECHO_N "checking for size_t... $ECHO_C" >&6 -if test "${ac_cv_type_size_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((size_t *) 0) - return 0; -if (sizeof (size_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_size_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_size_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 -echo "${ECHO_T}$ac_cv_type_size_t" >&6 -if test $ac_cv_type_size_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define size_t unsigned -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for ssize_t" >&5 -echo $ECHO_N "checking for ssize_t... $ECHO_C" >&6 -if test "${ac_cv_type_ssize_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((ssize_t *) 0) - return 0; -if (sizeof (ssize_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_ssize_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_ssize_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_ssize_t" >&5 -echo "${ECHO_T}$ac_cv_type_ssize_t" >&6 -if test $ac_cv_type_ssize_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define ssize_t int -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for time_t" >&5 -echo $ECHO_N "checking for time_t... $ECHO_C" >&6 -if test "${ac_cv_type_time_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((time_t *) 0) - return 0; -if (sizeof (time_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_time_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_time_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_time_t" >&5 -echo "${ECHO_T}$ac_cv_type_time_t" >&6 -if test $ac_cv_type_time_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define time_t long -_ACEOF - -fi - - - -echo "$as_me:$LINENO: checking for long long" >&5 -echo $ECHO_N "checking for long long... $ECHO_C" >&6 -if test "${bash_cv_type_long_long+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -long long ll = 1; int i = 63; -int -main () -{ - -long long llm = (long long) -1; -return ll << i | ll >> i | llm / ll | llm % ll; - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_type_long_long='long long' -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -bash_cv_type_long_long='long' -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $bash_cv_type_long_long" >&5 -echo "${ECHO_T}$bash_cv_type_long_long" >&6 -if test "$bash_cv_type_long_long" = 'long long'; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_LONG_LONG 1 -_ACEOF - -fi - - -echo "$as_me:$LINENO: checking for unsigned long long" >&5 -echo $ECHO_N "checking for unsigned long long... $ECHO_C" >&6 -if test "${bash_cv_type_unsigned_long_long+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -unsigned long long ull = 1; int i = 63; -int -main () -{ - -unsigned long long ullmax = (unsigned long long) -1; -return ull << i | ull >> i | ullmax / ull | ullmax % ull; - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_type_unsigned_long_long='unsigned long long' -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -bash_cv_type_unsigned_long_long='unsigned long' -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $bash_cv_type_unsigned_long_long" >&5 -echo "${ECHO_T}$bash_cv_type_unsigned_long_long" >&6 -if test "$bash_cv_type_unsigned_long_long" = 'unsigned long long'; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_UNSIGNED_LONG_LONG 1 -_ACEOF - -fi - - -echo "$as_me:$LINENO: checking return type of signal handlers" >&5 -echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6 -if test "${ac_cv_type_signal+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#ifdef signal -# undef signal -#endif -#ifdef __cplusplus -extern "C" void (*signal (int, void (*)(int)))(int); -#else -void (*signal ()) (); -#endif - -int -main () -{ -int i; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_signal=void -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_signal=int -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5 -echo "${ECHO_T}$ac_cv_type_signal" >&6 - -cat >>confdefs.h <<_ACEOF -#define RETSIGTYPE $ac_cv_type_signal -_ACEOF - - - -echo "$as_me:$LINENO: checking for char" >&5 -echo $ECHO_N "checking for char... $ECHO_C" >&6 -if test "${ac_cv_type_char+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((char *) 0) - return 0; -if (sizeof (char)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_char=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_char=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_char" >&5 -echo "${ECHO_T}$ac_cv_type_char" >&6 - -echo "$as_me:$LINENO: checking size of char" >&5 -echo $ECHO_N "checking size of char... $ECHO_C" >&6 -if test "${ac_cv_sizeof_char+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$ac_cv_type_char" = yes; then - # The cast to unsigned long works around a bug in the HP C Compiler - # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects - # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. - # This bug is HP SR number 8606223364. - if test "$cross_compiling" = yes; then - # Depending upon the size, compute the lo and hi bounds. -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long) (sizeof (char))) >= 0)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_lo=0 ac_mid=0 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long) (sizeof (char))) <= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=$ac_mid; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo=`expr $ac_mid + 1` - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid + 1` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long) (sizeof (char))) < 0)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=-1 ac_mid=-1 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long) (sizeof (char))) >= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_lo=$ac_mid; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_hi=`expr '(' $ac_mid ')' - 1` - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo= ac_hi= -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -# Binary search between lo and hi bounds. -while test "x$ac_lo" != "x$ac_hi"; do - ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long) (sizeof (char))) <= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=$ac_mid -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo=`expr '(' $ac_mid ')' + 1` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -done -case $ac_lo in -?*) ac_cv_sizeof_char=$ac_lo;; -'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (char), 77 -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (char), 77 -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } ;; -esac -else - if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run test program while cross compiling -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -long longval () { return (long) (sizeof (char)); } -unsigned long ulongval () { return (long) (sizeof (char)); } -#include -#include -int -main () -{ - - FILE *f = fopen ("conftest.val", "w"); - if (! f) - exit (1); - if (((long) (sizeof (char))) < 0) - { - long i = longval (); - if (i != ((long) (sizeof (char)))) - exit (1); - fprintf (f, "%ld\n", i); - } - else - { - unsigned long i = ulongval (); - if (i != ((long) (sizeof (char)))) - exit (1); - fprintf (f, "%lu\n", i); - } - exit (ferror (f) || fclose (f) != 0); - - ; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_sizeof_char=`cat conftest.val` -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -{ { echo "$as_me:$LINENO: error: cannot compute sizeof (char), 77 -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (char), 77 -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -rm -f conftest.val -else - ac_cv_sizeof_char=0 -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_sizeof_char" >&5 -echo "${ECHO_T}$ac_cv_sizeof_char" >&6 -cat >>confdefs.h <<_ACEOF -#define SIZEOF_CHAR $ac_cv_sizeof_char -_ACEOF - - -echo "$as_me:$LINENO: checking for short" >&5 -echo $ECHO_N "checking for short... $ECHO_C" >&6 -if test "${ac_cv_type_short+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((short *) 0) - return 0; -if (sizeof (short)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_short=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_short=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_short" >&5 -echo "${ECHO_T}$ac_cv_type_short" >&6 - -echo "$as_me:$LINENO: checking size of short" >&5 -echo $ECHO_N "checking size of short... $ECHO_C" >&6 -if test "${ac_cv_sizeof_short+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$ac_cv_type_short" = yes; then - # The cast to unsigned long works around a bug in the HP C Compiler - # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects - # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. - # This bug is HP SR number 8606223364. - if test "$cross_compiling" = yes; then - # Depending upon the size, compute the lo and hi bounds. -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long) (sizeof (short))) >= 0)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_lo=0 ac_mid=0 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long) (sizeof (short))) <= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=$ac_mid; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo=`expr $ac_mid + 1` - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid + 1` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long) (sizeof (short))) < 0)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=-1 ac_mid=-1 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long) (sizeof (short))) >= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_lo=$ac_mid; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_hi=`expr '(' $ac_mid ')' - 1` - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo= ac_hi= -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -# Binary search between lo and hi bounds. -while test "x$ac_lo" != "x$ac_hi"; do - ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long) (sizeof (short))) <= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=$ac_mid -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo=`expr '(' $ac_mid ')' + 1` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -done -case $ac_lo in -?*) ac_cv_sizeof_short=$ac_lo;; -'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (short), 77 -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (short), 77 -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } ;; -esac -else - if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run test program while cross compiling -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -long longval () { return (long) (sizeof (short)); } -unsigned long ulongval () { return (long) (sizeof (short)); } -#include -#include -int -main () -{ - - FILE *f = fopen ("conftest.val", "w"); - if (! f) - exit (1); - if (((long) (sizeof (short))) < 0) - { - long i = longval (); - if (i != ((long) (sizeof (short)))) - exit (1); - fprintf (f, "%ld\n", i); - } - else - { - unsigned long i = ulongval (); - if (i != ((long) (sizeof (short)))) - exit (1); - fprintf (f, "%lu\n", i); - } - exit (ferror (f) || fclose (f) != 0); - - ; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_sizeof_short=`cat conftest.val` -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -{ { echo "$as_me:$LINENO: error: cannot compute sizeof (short), 77 -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (short), 77 -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -rm -f conftest.val -else - ac_cv_sizeof_short=0 -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_sizeof_short" >&5 -echo "${ECHO_T}$ac_cv_sizeof_short" >&6 -cat >>confdefs.h <<_ACEOF -#define SIZEOF_SHORT $ac_cv_sizeof_short -_ACEOF - - -echo "$as_me:$LINENO: checking for int" >&5 -echo $ECHO_N "checking for int... $ECHO_C" >&6 -if test "${ac_cv_type_int+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((int *) 0) - return 0; -if (sizeof (int)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_int=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_int=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_int" >&5 -echo "${ECHO_T}$ac_cv_type_int" >&6 - -echo "$as_me:$LINENO: checking size of int" >&5 -echo $ECHO_N "checking size of int... $ECHO_C" >&6 -if test "${ac_cv_sizeof_int+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$ac_cv_type_int" = yes; then - # The cast to unsigned long works around a bug in the HP C Compiler - # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects - # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. - # This bug is HP SR number 8606223364. - if test "$cross_compiling" = yes; then - # Depending upon the size, compute the lo and hi bounds. -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long) (sizeof (int))) >= 0)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_lo=0 ac_mid=0 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long) (sizeof (int))) <= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=$ac_mid; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo=`expr $ac_mid + 1` - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid + 1` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long) (sizeof (int))) < 0)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=-1 ac_mid=-1 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long) (sizeof (int))) >= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_lo=$ac_mid; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_hi=`expr '(' $ac_mid ')' - 1` - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo= ac_hi= -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -# Binary search between lo and hi bounds. -while test "x$ac_lo" != "x$ac_hi"; do - ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long) (sizeof (int))) <= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=$ac_mid -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo=`expr '(' $ac_mid ')' + 1` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -done -case $ac_lo in -?*) ac_cv_sizeof_int=$ac_lo;; -'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (int), 77 -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (int), 77 -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } ;; -esac -else - if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run test program while cross compiling -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -long longval () { return (long) (sizeof (int)); } -unsigned long ulongval () { return (long) (sizeof (int)); } -#include -#include -int -main () -{ - - FILE *f = fopen ("conftest.val", "w"); - if (! f) - exit (1); - if (((long) (sizeof (int))) < 0) - { - long i = longval (); - if (i != ((long) (sizeof (int)))) - exit (1); - fprintf (f, "%ld\n", i); - } - else - { - unsigned long i = ulongval (); - if (i != ((long) (sizeof (int)))) - exit (1); - fprintf (f, "%lu\n", i); - } - exit (ferror (f) || fclose (f) != 0); - - ; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_sizeof_int=`cat conftest.val` -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -{ { echo "$as_me:$LINENO: error: cannot compute sizeof (int), 77 -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (int), 77 -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -rm -f conftest.val -else - ac_cv_sizeof_int=0 -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_sizeof_int" >&5 -echo "${ECHO_T}$ac_cv_sizeof_int" >&6 -cat >>confdefs.h <<_ACEOF -#define SIZEOF_INT $ac_cv_sizeof_int -_ACEOF - - -echo "$as_me:$LINENO: checking for long" >&5 -echo $ECHO_N "checking for long... $ECHO_C" >&6 -if test "${ac_cv_type_long+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((long *) 0) - return 0; -if (sizeof (long)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_long=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_long=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_long" >&5 -echo "${ECHO_T}$ac_cv_type_long" >&6 - -echo "$as_me:$LINENO: checking size of long" >&5 -echo $ECHO_N "checking size of long... $ECHO_C" >&6 -if test "${ac_cv_sizeof_long+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$ac_cv_type_long" = yes; then - # The cast to unsigned long works around a bug in the HP C Compiler - # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects - # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. - # This bug is HP SR number 8606223364. - if test "$cross_compiling" = yes; then - # Depending upon the size, compute the lo and hi bounds. -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long) (sizeof (long))) >= 0)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_lo=0 ac_mid=0 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long) (sizeof (long))) <= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=$ac_mid; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo=`expr $ac_mid + 1` - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid + 1` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long) (sizeof (long))) < 0)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=-1 ac_mid=-1 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long) (sizeof (long))) >= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_lo=$ac_mid; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_hi=`expr '(' $ac_mid ')' - 1` - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo= ac_hi= -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -# Binary search between lo and hi bounds. -while test "x$ac_lo" != "x$ac_hi"; do - ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long) (sizeof (long))) <= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=$ac_mid -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo=`expr '(' $ac_mid ')' + 1` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -done -case $ac_lo in -?*) ac_cv_sizeof_long=$ac_lo;; -'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (long), 77 -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (long), 77 -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } ;; -esac -else - if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run test program while cross compiling -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -long longval () { return (long) (sizeof (long)); } -unsigned long ulongval () { return (long) (sizeof (long)); } -#include -#include -int -main () -{ - - FILE *f = fopen ("conftest.val", "w"); - if (! f) - exit (1); - if (((long) (sizeof (long))) < 0) - { - long i = longval (); - if (i != ((long) (sizeof (long)))) - exit (1); - fprintf (f, "%ld\n", i); - } - else - { - unsigned long i = ulongval (); - if (i != ((long) (sizeof (long)))) - exit (1); - fprintf (f, "%lu\n", i); - } - exit (ferror (f) || fclose (f) != 0); - - ; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_sizeof_long=`cat conftest.val` -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -{ { echo "$as_me:$LINENO: error: cannot compute sizeof (long), 77 -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (long), 77 -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -rm -f conftest.val -else - ac_cv_sizeof_long=0 -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_sizeof_long" >&5 -echo "${ECHO_T}$ac_cv_sizeof_long" >&6 -cat >>confdefs.h <<_ACEOF -#define SIZEOF_LONG $ac_cv_sizeof_long -_ACEOF - - -echo "$as_me:$LINENO: checking for char *" >&5 -echo $ECHO_N "checking for char *... $ECHO_C" >&6 -if test "${ac_cv_type_char_p+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((char * *) 0) - return 0; -if (sizeof (char *)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_char_p=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_char_p=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_char_p" >&5 -echo "${ECHO_T}$ac_cv_type_char_p" >&6 - -echo "$as_me:$LINENO: checking size of char *" >&5 -echo $ECHO_N "checking size of char *... $ECHO_C" >&6 -if test "${ac_cv_sizeof_char_p+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$ac_cv_type_char_p" = yes; then - # The cast to unsigned long works around a bug in the HP C Compiler - # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects - # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. - # This bug is HP SR number 8606223364. - if test "$cross_compiling" = yes; then - # Depending upon the size, compute the lo and hi bounds. -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long) (sizeof (char *))) >= 0)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_lo=0 ac_mid=0 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long) (sizeof (char *))) <= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=$ac_mid; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo=`expr $ac_mid + 1` - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid + 1` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long) (sizeof (char *))) < 0)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=-1 ac_mid=-1 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long) (sizeof (char *))) >= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_lo=$ac_mid; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_hi=`expr '(' $ac_mid ')' - 1` - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo= ac_hi= -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -# Binary search between lo and hi bounds. -while test "x$ac_lo" != "x$ac_hi"; do - ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long) (sizeof (char *))) <= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=$ac_mid -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo=`expr '(' $ac_mid ')' + 1` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -done -case $ac_lo in -?*) ac_cv_sizeof_char_p=$ac_lo;; -'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (char *), 77 -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (char *), 77 -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } ;; -esac -else - if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run test program while cross compiling -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -long longval () { return (long) (sizeof (char *)); } -unsigned long ulongval () { return (long) (sizeof (char *)); } -#include -#include -int -main () -{ - - FILE *f = fopen ("conftest.val", "w"); - if (! f) - exit (1); - if (((long) (sizeof (char *))) < 0) - { - long i = longval (); - if (i != ((long) (sizeof (char *)))) - exit (1); - fprintf (f, "%ld\n", i); - } - else - { - unsigned long i = ulongval (); - if (i != ((long) (sizeof (char *)))) - exit (1); - fprintf (f, "%lu\n", i); - } - exit (ferror (f) || fclose (f) != 0); - - ; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_sizeof_char_p=`cat conftest.val` -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -{ { echo "$as_me:$LINENO: error: cannot compute sizeof (char *), 77 -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (char *), 77 -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -rm -f conftest.val -else - ac_cv_sizeof_char_p=0 -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_sizeof_char_p" >&5 -echo "${ECHO_T}$ac_cv_sizeof_char_p" >&6 -cat >>confdefs.h <<_ACEOF -#define SIZEOF_CHAR_P $ac_cv_sizeof_char_p -_ACEOF - - -echo "$as_me:$LINENO: checking for double" >&5 -echo $ECHO_N "checking for double... $ECHO_C" >&6 -if test "${ac_cv_type_double+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((double *) 0) - return 0; -if (sizeof (double)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_double=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_double=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_double" >&5 -echo "${ECHO_T}$ac_cv_type_double" >&6 - -echo "$as_me:$LINENO: checking size of double" >&5 -echo $ECHO_N "checking size of double... $ECHO_C" >&6 -if test "${ac_cv_sizeof_double+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$ac_cv_type_double" = yes; then - # The cast to unsigned long works around a bug in the HP C Compiler - # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects - # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. - # This bug is HP SR number 8606223364. - if test "$cross_compiling" = yes; then - # Depending upon the size, compute the lo and hi bounds. -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long) (sizeof (double))) >= 0)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_lo=0 ac_mid=0 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long) (sizeof (double))) <= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=$ac_mid; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo=`expr $ac_mid + 1` - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid + 1` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long) (sizeof (double))) < 0)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=-1 ac_mid=-1 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long) (sizeof (double))) >= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_lo=$ac_mid; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_hi=`expr '(' $ac_mid ')' - 1` - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo= ac_hi= -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -# Binary search between lo and hi bounds. -while test "x$ac_lo" != "x$ac_hi"; do - ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long) (sizeof (double))) <= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=$ac_mid -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo=`expr '(' $ac_mid ')' + 1` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -done -case $ac_lo in -?*) ac_cv_sizeof_double=$ac_lo;; -'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (double), 77 -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (double), 77 -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } ;; -esac -else - if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run test program while cross compiling -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -long longval () { return (long) (sizeof (double)); } -unsigned long ulongval () { return (long) (sizeof (double)); } -#include -#include -int -main () -{ - - FILE *f = fopen ("conftest.val", "w"); - if (! f) - exit (1); - if (((long) (sizeof (double))) < 0) - { - long i = longval (); - if (i != ((long) (sizeof (double)))) - exit (1); - fprintf (f, "%ld\n", i); - } - else - { - unsigned long i = ulongval (); - if (i != ((long) (sizeof (double)))) - exit (1); - fprintf (f, "%lu\n", i); - } - exit (ferror (f) || fclose (f) != 0); - - ; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_sizeof_double=`cat conftest.val` -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -{ { echo "$as_me:$LINENO: error: cannot compute sizeof (double), 77 -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (double), 77 -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -rm -f conftest.val -else - ac_cv_sizeof_double=0 -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_sizeof_double" >&5 -echo "${ECHO_T}$ac_cv_sizeof_double" >&6 -cat >>confdefs.h <<_ACEOF -#define SIZEOF_DOUBLE $ac_cv_sizeof_double -_ACEOF - - -echo "$as_me:$LINENO: checking for long long" >&5 -echo $ECHO_N "checking for long long... $ECHO_C" >&6 -if test "${ac_cv_type_long_long+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((long long *) 0) - return 0; -if (sizeof (long long)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_long_long=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_long_long=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_long_long" >&5 -echo "${ECHO_T}$ac_cv_type_long_long" >&6 - -echo "$as_me:$LINENO: checking size of long long" >&5 -echo $ECHO_N "checking size of long long... $ECHO_C" >&6 -if test "${ac_cv_sizeof_long_long+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$ac_cv_type_long_long" = yes; then - # The cast to unsigned long works around a bug in the HP C Compiler - # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects - # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. - # This bug is HP SR number 8606223364. - if test "$cross_compiling" = yes; then - # Depending upon the size, compute the lo and hi bounds. -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long) (sizeof (long long))) >= 0)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_lo=0 ac_mid=0 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long) (sizeof (long long))) <= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=$ac_mid; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo=`expr $ac_mid + 1` - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid + 1` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long) (sizeof (long long))) < 0)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=-1 ac_mid=-1 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long) (sizeof (long long))) >= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_lo=$ac_mid; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_hi=`expr '(' $ac_mid ')' - 1` - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo= ac_hi= -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -# Binary search between lo and hi bounds. -while test "x$ac_lo" != "x$ac_hi"; do - ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long) (sizeof (long long))) <= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=$ac_mid -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo=`expr '(' $ac_mid ')' + 1` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -done -case $ac_lo in -?*) ac_cv_sizeof_long_long=$ac_lo;; -'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (long long), 77 -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (long long), 77 -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } ;; -esac -else - if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run test program while cross compiling -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -long longval () { return (long) (sizeof (long long)); } -unsigned long ulongval () { return (long) (sizeof (long long)); } -#include -#include -int -main () -{ - - FILE *f = fopen ("conftest.val", "w"); - if (! f) - exit (1); - if (((long) (sizeof (long long))) < 0) - { - long i = longval (); - if (i != ((long) (sizeof (long long)))) - exit (1); - fprintf (f, "%ld\n", i); - } - else - { - unsigned long i = ulongval (); - if (i != ((long) (sizeof (long long)))) - exit (1); - fprintf (f, "%lu\n", i); - } - exit (ferror (f) || fclose (f) != 0); - - ; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_sizeof_long_long=`cat conftest.val` -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -{ { echo "$as_me:$LINENO: error: cannot compute sizeof (long long), 77 -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (long long), 77 -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -rm -f conftest.val -else - ac_cv_sizeof_long_long=0 -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_sizeof_long_long" >&5 -echo "${ECHO_T}$ac_cv_sizeof_long_long" >&6 -cat >>confdefs.h <<_ACEOF -#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long -_ACEOF - - - -echo "$as_me:$LINENO: checking for u_int" >&5 -echo $ECHO_N "checking for u_int... $ECHO_C" >&6 -if test "${ac_cv_type_u_int+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((u_int *) 0) - return 0; -if (sizeof (u_int)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_u_int=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_u_int=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_u_int" >&5 -echo "${ECHO_T}$ac_cv_type_u_int" >&6 -if test $ac_cv_type_u_int = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define u_int unsigned int -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for u_long" >&5 -echo $ECHO_N "checking for u_long... $ECHO_C" >&6 -if test "${ac_cv_type_u_long+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((u_long *) 0) - return 0; -if (sizeof (u_long)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_u_long=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_u_long=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_u_long" >&5 -echo "${ECHO_T}$ac_cv_type_u_long" >&6 -if test $ac_cv_type_u_long = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define u_long unsigned long -_ACEOF - -fi - - - -if test "$ac_cv_sizeof_short" = 2; then - echo "$as_me:$LINENO: checking for bits16_t" >&5 -echo $ECHO_N "checking for bits16_t... $ECHO_C" >&6 -if test "${ac_cv_type_bits16_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((bits16_t *) 0) - return 0; -if (sizeof (bits16_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_bits16_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_bits16_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_bits16_t" >&5 -echo "${ECHO_T}$ac_cv_type_bits16_t" >&6 -if test $ac_cv_type_bits16_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define bits16_t short -_ACEOF - -fi - -elif test "$ac_cv_sizeof_char" = 2; then - echo "$as_me:$LINENO: checking for bits16_t" >&5 -echo $ECHO_N "checking for bits16_t... $ECHO_C" >&6 -if test "${ac_cv_type_bits16_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((bits16_t *) 0) - return 0; -if (sizeof (bits16_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_bits16_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_bits16_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_bits16_t" >&5 -echo "${ECHO_T}$ac_cv_type_bits16_t" >&6 -if test $ac_cv_type_bits16_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define bits16_t char -_ACEOF - -fi - -else - echo "$as_me:$LINENO: checking for bits16_t" >&5 -echo $ECHO_N "checking for bits16_t... $ECHO_C" >&6 -if test "${ac_cv_type_bits16_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((bits16_t *) 0) - return 0; -if (sizeof (bits16_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_bits16_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_bits16_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_bits16_t" >&5 -echo "${ECHO_T}$ac_cv_type_bits16_t" >&6 -if test $ac_cv_type_bits16_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define bits16_t short -_ACEOF - -fi - -fi - - -if test "$ac_cv_sizeof_short" = 2; then - echo "$as_me:$LINENO: checking for u_bits16_t" >&5 -echo $ECHO_N "checking for u_bits16_t... $ECHO_C" >&6 -if test "${ac_cv_type_u_bits16_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((u_bits16_t *) 0) - return 0; -if (sizeof (u_bits16_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_u_bits16_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_u_bits16_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_u_bits16_t" >&5 -echo "${ECHO_T}$ac_cv_type_u_bits16_t" >&6 -if test $ac_cv_type_u_bits16_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define u_bits16_t unsigned short -_ACEOF - -fi - -elif test "$ac_cv_sizeof_char" = 2; then - echo "$as_me:$LINENO: checking for u_bits16_t" >&5 -echo $ECHO_N "checking for u_bits16_t... $ECHO_C" >&6 -if test "${ac_cv_type_u_bits16_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((u_bits16_t *) 0) - return 0; -if (sizeof (u_bits16_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_u_bits16_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_u_bits16_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_u_bits16_t" >&5 -echo "${ECHO_T}$ac_cv_type_u_bits16_t" >&6 -if test $ac_cv_type_u_bits16_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define u_bits16_t unsigned char -_ACEOF - -fi - -else - echo "$as_me:$LINENO: checking for u_bits16_t" >&5 -echo $ECHO_N "checking for u_bits16_t... $ECHO_C" >&6 -if test "${ac_cv_type_u_bits16_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((u_bits16_t *) 0) - return 0; -if (sizeof (u_bits16_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_u_bits16_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_u_bits16_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_u_bits16_t" >&5 -echo "${ECHO_T}$ac_cv_type_u_bits16_t" >&6 -if test $ac_cv_type_u_bits16_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define u_bits16_t unsigned short -_ACEOF - -fi - -fi - - -if test "$ac_cv_sizeof_int" = 4; then - echo "$as_me:$LINENO: checking for bits32_t" >&5 -echo $ECHO_N "checking for bits32_t... $ECHO_C" >&6 -if test "${ac_cv_type_bits32_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((bits32_t *) 0) - return 0; -if (sizeof (bits32_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_bits32_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_bits32_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_bits32_t" >&5 -echo "${ECHO_T}$ac_cv_type_bits32_t" >&6 -if test $ac_cv_type_bits32_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define bits32_t int -_ACEOF - -fi - -elif test "$ac_cv_sizeof_long" = 4; then - echo "$as_me:$LINENO: checking for bits32_t" >&5 -echo $ECHO_N "checking for bits32_t... $ECHO_C" >&6 -if test "${ac_cv_type_bits32_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((bits32_t *) 0) - return 0; -if (sizeof (bits32_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_bits32_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_bits32_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_bits32_t" >&5 -echo "${ECHO_T}$ac_cv_type_bits32_t" >&6 -if test $ac_cv_type_bits32_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define bits32_t long -_ACEOF - -fi - -else - echo "$as_me:$LINENO: checking for bits32_t" >&5 -echo $ECHO_N "checking for bits32_t... $ECHO_C" >&6 -if test "${ac_cv_type_bits32_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((bits32_t *) 0) - return 0; -if (sizeof (bits32_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_bits32_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_bits32_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_bits32_t" >&5 -echo "${ECHO_T}$ac_cv_type_bits32_t" >&6 -if test $ac_cv_type_bits32_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define bits32_t int -_ACEOF - -fi - -fi - - -if test "$ac_cv_sizeof_int" = 4; then - echo "$as_me:$LINENO: checking for u_bits32_t" >&5 -echo $ECHO_N "checking for u_bits32_t... $ECHO_C" >&6 -if test "${ac_cv_type_u_bits32_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((u_bits32_t *) 0) - return 0; -if (sizeof (u_bits32_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_u_bits32_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_u_bits32_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_u_bits32_t" >&5 -echo "${ECHO_T}$ac_cv_type_u_bits32_t" >&6 -if test $ac_cv_type_u_bits32_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define u_bits32_t unsigned int -_ACEOF - -fi - -elif test "$ac_cv_sizeof_long" = 4; then - echo "$as_me:$LINENO: checking for u_bits32_t" >&5 -echo $ECHO_N "checking for u_bits32_t... $ECHO_C" >&6 -if test "${ac_cv_type_u_bits32_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((u_bits32_t *) 0) - return 0; -if (sizeof (u_bits32_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_u_bits32_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_u_bits32_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_u_bits32_t" >&5 -echo "${ECHO_T}$ac_cv_type_u_bits32_t" >&6 -if test $ac_cv_type_u_bits32_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define u_bits32_t unsigned long -_ACEOF - -fi - -else - echo "$as_me:$LINENO: checking for u_bits32_t" >&5 -echo $ECHO_N "checking for u_bits32_t... $ECHO_C" >&6 -if test "${ac_cv_type_u_bits32_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((u_bits32_t *) 0) - return 0; -if (sizeof (u_bits32_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_u_bits32_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_u_bits32_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_u_bits32_t" >&5 -echo "${ECHO_T}$ac_cv_type_u_bits32_t" >&6 -if test $ac_cv_type_u_bits32_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define u_bits32_t unsigned int -_ACEOF - -fi - -fi - - -if test "$ac_cv_sizeof_char_p" = 8; then - echo "$as_me:$LINENO: checking for bits64_t" >&5 -echo $ECHO_N "checking for bits64_t... $ECHO_C" >&6 -if test "${ac_cv_type_bits64_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((bits64_t *) 0) - return 0; -if (sizeof (bits64_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_bits64_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_bits64_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_bits64_t" >&5 -echo "${ECHO_T}$ac_cv_type_bits64_t" >&6 -if test $ac_cv_type_bits64_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define bits64_t char * -_ACEOF - -fi - -elif test "$ac_cv_sizeof_double" = 8; then - echo "$as_me:$LINENO: checking for bits64_t" >&5 -echo $ECHO_N "checking for bits64_t... $ECHO_C" >&6 -if test "${ac_cv_type_bits64_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((bits64_t *) 0) - return 0; -if (sizeof (bits64_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_bits64_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_bits64_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_bits64_t" >&5 -echo "${ECHO_T}$ac_cv_type_bits64_t" >&6 -if test $ac_cv_type_bits64_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define bits64_t double -_ACEOF - -fi - -elif test -n "$ac_cv_type_long_long" && test "$ac_cv_sizeof_long_long" = 8; then - echo "$as_me:$LINENO: checking for bits64_t" >&5 -echo $ECHO_N "checking for bits64_t... $ECHO_C" >&6 -if test "${ac_cv_type_bits64_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((bits64_t *) 0) - return 0; -if (sizeof (bits64_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_bits64_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_bits64_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_bits64_t" >&5 -echo "${ECHO_T}$ac_cv_type_bits64_t" >&6 -if test $ac_cv_type_bits64_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define bits64_t long long -_ACEOF - -fi - -elif test "$ac_cv_sizeof_long" = 8; then - echo "$as_me:$LINENO: checking for bits64_t" >&5 -echo $ECHO_N "checking for bits64_t... $ECHO_C" >&6 -if test "${ac_cv_type_bits64_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((bits64_t *) 0) - return 0; -if (sizeof (bits64_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_bits64_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_bits64_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_bits64_t" >&5 -echo "${ECHO_T}$ac_cv_type_bits64_t" >&6 -if test $ac_cv_type_bits64_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define bits64_t long -_ACEOF - -fi - -else - echo "$as_me:$LINENO: checking for bits64_t" >&5 -echo $ECHO_N "checking for bits64_t... $ECHO_C" >&6 -if test "${ac_cv_type_bits64_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((bits64_t *) 0) - return 0; -if (sizeof (bits64_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_bits64_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_bits64_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_bits64_t" >&5 -echo "${ECHO_T}$ac_cv_type_bits64_t" >&6 -if test $ac_cv_type_bits64_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define bits64_t double -_ACEOF - -fi - -fi - - - -if test "$ac_cv_sizeof_int" = "$ac_cv_sizeof_char_p"; then - echo "$as_me:$LINENO: checking for ptrdiff_t" >&5 -echo $ECHO_N "checking for ptrdiff_t... $ECHO_C" >&6 -if test "${ac_cv_type_ptrdiff_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((ptrdiff_t *) 0) - return 0; -if (sizeof (ptrdiff_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_ptrdiff_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_ptrdiff_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_ptrdiff_t" >&5 -echo "${ECHO_T}$ac_cv_type_ptrdiff_t" >&6 -if test $ac_cv_type_ptrdiff_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define ptrdiff_t int -_ACEOF - -fi - -elif test "$ac_cv_sizeof_long" = "$ac_cv_sizeof_char_p"; then - echo "$as_me:$LINENO: checking for ptrdiff_t" >&5 -echo $ECHO_N "checking for ptrdiff_t... $ECHO_C" >&6 -if test "${ac_cv_type_ptrdiff_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((ptrdiff_t *) 0) - return 0; -if (sizeof (ptrdiff_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_ptrdiff_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_ptrdiff_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_ptrdiff_t" >&5 -echo "${ECHO_T}$ac_cv_type_ptrdiff_t" >&6 -if test $ac_cv_type_ptrdiff_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define ptrdiff_t long -_ACEOF - -fi - -elif test "$ac_cv_type_long_long" = yes && test "$ac_cv_sizeof_long_long" = "$ac_cv_sizeof_char_p"; then - echo "$as_me:$LINENO: checking for ptrdiff_t" >&5 -echo $ECHO_N "checking for ptrdiff_t... $ECHO_C" >&6 -if test "${ac_cv_type_ptrdiff_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((ptrdiff_t *) 0) - return 0; -if (sizeof (ptrdiff_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_ptrdiff_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_ptrdiff_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_ptrdiff_t" >&5 -echo "${ECHO_T}$ac_cv_type_ptrdiff_t" >&6 -if test $ac_cv_type_ptrdiff_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define ptrdiff_t long long -_ACEOF - -fi - -else - echo "$as_me:$LINENO: checking for ptrdiff_t" >&5 -echo $ECHO_N "checking for ptrdiff_t... $ECHO_C" >&6 -if test "${ac_cv_type_ptrdiff_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((ptrdiff_t *) 0) - return 0; -if (sizeof (ptrdiff_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_ptrdiff_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_ptrdiff_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_ptrdiff_t" >&5 -echo "${ECHO_T}$ac_cv_type_ptrdiff_t" >&6 -if test $ac_cv_type_ptrdiff_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define ptrdiff_t int -_ACEOF - -fi - -fi - - -echo "$as_me:$LINENO: checking whether stat file-mode macros are broken" >&5 -echo $ECHO_N "checking whether stat file-mode macros are broken... $ECHO_C" >&6 -if test "${ac_cv_header_stat_broken+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include - -#if defined(S_ISBLK) && defined(S_IFDIR) -# if S_ISBLK (S_IFDIR) -You lose. -# endif -#endif - -#if defined(S_ISBLK) && defined(S_IFCHR) -# if S_ISBLK (S_IFCHR) -You lose. -# endif -#endif - -#if defined(S_ISLNK) && defined(S_IFREG) -# if S_ISLNK (S_IFREG) -You lose. -# endif -#endif - -#if defined(S_ISSOCK) && defined(S_IFREG) -# if S_ISSOCK (S_IFREG) -You lose. -# endif -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "You lose" >/dev/null 2>&1; then - ac_cv_header_stat_broken=yes -else - ac_cv_header_stat_broken=no -fi -rm -f conftest* - -fi -echo "$as_me:$LINENO: result: $ac_cv_header_stat_broken" >&5 -echo "${ECHO_T}$ac_cv_header_stat_broken" >&6 -if test $ac_cv_header_stat_broken = yes; then - -cat >>confdefs.h <<\_ACEOF -#define STAT_MACROS_BROKEN 1 -_ACEOF - -fi - - -echo "$as_me:$LINENO: checking whether #! works in shell scripts" >&5 -echo $ECHO_N "checking whether #! works in shell scripts... $ECHO_C" >&6 -if test "${ac_cv_sys_interpreter+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - echo '#! /bin/cat -exit 69 -' >conftest -chmod u+x conftest -(SHELL=/bin/sh; export SHELL; ./conftest >/dev/null) -if test $? -ne 69; then - ac_cv_sys_interpreter=yes -else - ac_cv_sys_interpreter=no -fi -rm -f conftest -fi -echo "$as_me:$LINENO: result: $ac_cv_sys_interpreter" >&5 -echo "${ECHO_T}$ac_cv_sys_interpreter" >&6 -interpval=$ac_cv_sys_interpreter - -if test $ac_cv_sys_interpreter = yes; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_HASH_BANG_EXEC 1 -_ACEOF - -fi - -if test "$ac_cv_func_lstat" = "no"; then -echo "$as_me:$LINENO: checking for lstat" >&5 -echo $ECHO_N "checking for lstat... $ECHO_C" >&6 -if test "${bash_cv_func_lstat+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include - -int -main () -{ - lstat(".",(struct stat *)0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_func_lstat=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -bash_cv_func_lstat=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $bash_cv_func_lstat" >&5 -echo "${ECHO_T}$bash_cv_func_lstat" >&6 -if test $bash_cv_func_lstat = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_LSTAT 1 -_ACEOF - -fi - -fi - - -echo "$as_me:$LINENO: checking whether the ctype macros accept non-ascii characters" >&5 -echo $ECHO_N "checking whether the ctype macros accept non-ascii characters... $ECHO_C" >&6 -if test "${bash_cv_func_ctype_nonascii+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check ctype macros if cross compiling -- defaulting to no" >&5 -echo "$as_me: WARNING: cannot check ctype macros if cross compiling -- defaulting to no" >&2;} - bash_cv_func_ctype_nonascii=no - -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#ifdef HAVE_LOCALE_H -#include -#endif -#include -#include - -main(c, v) -int c; -char *v[]; -{ - char *deflocale; - unsigned char x; - int r1, r2; - -#ifdef HAVE_SETLOCALE - /* We take a shot here. If that locale is not known, try the - system default. We try this one because '\342' (226) is - known to be a printable character in that locale. */ - deflocale = setlocale(LC_ALL, "en_US.ISO8859-1"); - if (deflocale == 0) - deflocale = setlocale(LC_ALL, ""); -#endif - - x = '\342'; - r1 = isprint(x); - x -= 128; - r2 = isprint(x); - exit (r1 == 0 || r2 == 0); -} - -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_func_ctype_nonascii=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -bash_cv_func_ctype_nonascii=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi - -echo "$as_me:$LINENO: result: $bash_cv_func_ctype_nonascii" >&5 -echo "${ECHO_T}$bash_cv_func_ctype_nonascii" >&6 -if test $bash_cv_func_ctype_nonascii = yes; then -cat >>confdefs.h <<\_ACEOF -#define CTYPE_NON_ASCII 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking if dup2 fails to clear the close-on-exec flag" >&5 -echo $ECHO_N "checking if dup2 fails to clear the close-on-exec flag... $ECHO_C" >&6 -if test "${bash_cv_dup2_broken+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check dup2 if cross compiling -- defaulting to no" >&5 -echo "$as_me: WARNING: cannot check dup2 if cross compiling -- defaulting to no" >&2;} - bash_cv_dup2_broken=no -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -main() -{ - int fd1, fd2, fl; - fd1 = open("/dev/null", 2); - if (fcntl(fd1, 2, 1) < 0) - exit(1); - fd2 = dup2(fd1, 1); - if (fd2 < 0) - exit(2); - fl = fcntl(fd2, 1, 0); - /* fl will be 1 if dup2 did not reset the close-on-exec flag. */ - exit(fl != 1); -} - -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_dup2_broken=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -bash_cv_dup2_broken=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi - -fi - -echo "$as_me:$LINENO: result: $bash_cv_dup2_broken" >&5 -echo "${ECHO_T}$bash_cv_dup2_broken" >&6 -if test $bash_cv_dup2_broken = yes; then -cat >>confdefs.h <<\_ACEOF -#define DUP2_BROKEN 1 -_ACEOF - -fi - - -echo "$as_me:$LINENO: checking whether pgrps need synchronization" >&5 -echo $ECHO_N "checking whether pgrps need synchronization... $ECHO_C" >&6 -if test "${bash_cv_pgrp_pipe+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check pgrp synchronization if cross compiling -- defaulting to no" >&5 -echo "$as_me: WARNING: cannot check pgrp synchronization if cross compiling -- defaulting to no" >&2;} - bash_cv_pgrp_pipe=no -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#ifdef HAVE_UNISTD_H -# include -#endif -main() -{ -# ifdef GETPGRP_VOID -# define getpgID() getpgrp() -# else -# define getpgID() getpgrp(0) -# define setpgid(x,y) setpgrp(x,y) -# endif - int pid1, pid2, fds[2]; - int status; - char ok; - - switch (pid1 = fork()) { - case -1: - exit(1); - case 0: - setpgid(0, getpid()); - exit(0); - } - setpgid(pid1, pid1); - - sleep(2); /* let first child die */ - - if (pipe(fds) < 0) - exit(2); - - switch (pid2 = fork()) { - case -1: - exit(3); - case 0: - setpgid(0, pid1); - ok = getpgID() == pid1; - write(fds[1], &ok, 1); - exit(0); - } - setpgid(pid2, pid1); - - close(fds[1]); - if (read(fds[0], &ok, 1) != 1) - exit(4); - wait(&status); - wait(&status); - exit(ok ? 0 : 5); -} - -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_pgrp_pipe=no -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -bash_cv_pgrp_pipe=yes -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi - -fi - -echo "$as_me:$LINENO: result: $bash_cv_pgrp_pipe" >&5 -echo "${ECHO_T}$bash_cv_pgrp_pipe" >&6 -if test $bash_cv_pgrp_pipe = yes; then -cat >>confdefs.h <<\_ACEOF -#define PGRP_PIPE 1 -_ACEOF - -fi - - -echo "$as_me:$LINENO: checking for type of signal functions" >&5 -echo $ECHO_N "checking for type of signal functions... $ECHO_C" >&6 -if test "${bash_cv_signal_vintage+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -int -main () -{ - - sigset_t ss; - struct sigaction sa; - sigemptyset(&ss); sigsuspend(&ss); - sigaction(SIGINT, &sa, (struct sigaction *) 0); - sigprocmask(SIG_BLOCK, &ss, (sigset_t *) 0); - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_signal_vintage=posix -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -int -main () -{ - - int mask = sigmask(SIGINT); - sigsetmask(mask); sigblock(mask); sigpause(mask); - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_signal_vintage=4.2bsd -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - - #include - RETSIGTYPE foo() { } -int -main () -{ - - int mask = sigmask(SIGINT); - sigset(SIGINT, foo); sigrelse(SIGINT); - sighold(SIGINT); sigpause(SIGINT); - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_signal_vintage=svr3 -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -bash_cv_signal_vintage=v7 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi - -echo "$as_me:$LINENO: result: $bash_cv_signal_vintage" >&5 -echo "${ECHO_T}$bash_cv_signal_vintage" >&6 -if test "$bash_cv_signal_vintage" = posix; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_POSIX_SIGNALS 1 -_ACEOF - -elif test "$bash_cv_signal_vintage" = "4.2bsd"; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_BSD_SIGNALS 1 -_ACEOF - -elif test "$bash_cv_signal_vintage" = svr3; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_USG_SIGHOLD 1 -_ACEOF - -fi - - -echo "$as_me:$LINENO: checking for sys_errlist and sys_nerr" >&5 -echo $ECHO_N "checking for sys_errlist and sys_nerr... $ECHO_C" >&6 -if test "${bash_cv_sys_errlist+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -int -main () -{ -extern char *sys_errlist[]; - extern int sys_nerr; - char *msg = sys_errlist[sys_nerr - 1]; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_sys_errlist=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -bash_cv_sys_errlist=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $bash_cv_sys_errlist" >&5 -echo "${ECHO_T}$bash_cv_sys_errlist" >&6 -if test $bash_cv_sys_errlist = yes; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_SYS_ERRLIST 1 -_ACEOF - -fi - - -echo "$as_me:$LINENO: checking for sys_siglist in system C library" >&5 -echo $ECHO_N "checking for sys_siglist in system C library... $ECHO_C" >&6 -if test "${bash_cv_sys_siglist+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check for sys_siglist if cross compiling -- defaulting to no" >&5 -echo "$as_me: WARNING: cannot check for sys_siglist if cross compiling -- defaulting to no" >&2;} - bash_cv_sys_siglist=no -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -#ifdef HAVE_UNISTD_H -#include -#endif -#ifndef SYS_SIGLIST_DECLARED -extern char *sys_siglist[]; -#endif -main() -{ -char *msg = sys_siglist[2]; -exit(msg == 0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_sys_siglist=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -bash_cv_sys_siglist=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi - -echo "$as_me:$LINENO: result: $bash_cv_sys_siglist" >&5 -echo "${ECHO_T}$bash_cv_sys_siglist" >&6 -if test $bash_cv_sys_siglist = yes; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_SYS_SIGLIST 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for _sys_siglist in signal.h or unistd.h" >&5 -echo $ECHO_N "checking for _sys_siglist in signal.h or unistd.h... $ECHO_C" >&6 -if test "${bash_cv_decl_under_sys_siglist+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -#ifdef HAVE_UNISTD_H -#include -#endif -int -main () -{ - char *msg = _sys_siglist[2]; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_decl_under_sys_siglist=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -bash_cv_decl_under_sys_siglist=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $bash_cv_decl_under_sys_siglist" >&5 -echo "${ECHO_T}$bash_cv_decl_under_sys_siglist" >&6 -if test $bash_cv_decl_under_sys_siglist = yes; then -cat >>confdefs.h <<\_ACEOF -#define UNDER_SYS_SIGLIST_DECLARED 1 -_ACEOF - -fi - - -echo "$as_me:$LINENO: checking for _sys_siglist in system C library" >&5 -echo $ECHO_N "checking for _sys_siglist in system C library... $ECHO_C" >&6 -if test "${bash_cv_under_sys_siglist+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check for _sys_siglist if cross compiling -- defaulting to no" >&5 -echo "$as_me: WARNING: cannot check for _sys_siglist if cross compiling -- defaulting to no" >&2;} - bash_cv_under_sys_siglist=no -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -#ifdef HAVE_UNISTD_H -#include -#endif -#ifndef UNDER_SYS_SIGLIST_DECLARED -extern char *_sys_siglist[]; -#endif -main() -{ -char *msg = (char *)_sys_siglist[2]; -exit(msg == 0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_under_sys_siglist=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -bash_cv_under_sys_siglist=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi - -echo "$as_me:$LINENO: result: $bash_cv_under_sys_siglist" >&5 -echo "${ECHO_T}$bash_cv_under_sys_siglist" >&6 -if test $bash_cv_under_sys_siglist = yes; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_UNDER_SYS_SIGLIST 1 -_ACEOF - -fi - - -echo "$as_me:$LINENO: checking whether signal handlers are of type void" >&5 -echo $ECHO_N "checking whether signal handlers are of type void... $ECHO_C" >&6 -if test "${bash_cv_void_sighandler+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#ifdef signal -#undef signal -#endif -#ifdef __cplusplus -extern "C" -#endif -void (*signal ()) (); -int -main () -{ -int i; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_void_sighandler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -bash_cv_void_sighandler=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $bash_cv_void_sighandler" >&5 -echo "${ECHO_T}$bash_cv_void_sighandler" >&6 -if test $bash_cv_void_sighandler = yes; then -cat >>confdefs.h <<\_ACEOF -#define VOID_SIGHANDLER 1 -_ACEOF - -fi - - - -echo "$as_me:$LINENO: checking for clock_t" >&5 -echo $ECHO_N "checking for clock_t... $ECHO_C" >&6 -if test "${bash_cv_type_clock_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#if STDC_HEADERS -#include -#include -#endif -#if HAVE_INTTYPES_H -#include -#endif -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "clock_t" >/dev/null 2>&1; then - bash_cv_type_clock_t=yes -else - bash_cv_type_clock_t=no -fi -rm -f conftest* - -fi - -echo "$as_me:$LINENO: result: $bash_cv_type_clock_t" >&5 -echo "${ECHO_T}$bash_cv_type_clock_t" >&6 - -if test $bash_cv_type_clock_t = no; then - cat >>confdefs.h <<_ACEOF -#define clock_t long -_ACEOF - -fi - - - -echo "$as_me:$LINENO: checking for sigset_t" >&5 -echo $ECHO_N "checking for sigset_t... $ECHO_C" >&6 -if test "${bash_cv_type_sigset_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#if STDC_HEADERS -#include -#include -#endif -#if HAVE_INTTYPES_H -#include -#endif -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "sigset_t" >/dev/null 2>&1; then - bash_cv_type_sigset_t=yes -else - bash_cv_type_sigset_t=no -fi -rm -f conftest* - -fi - -echo "$as_me:$LINENO: result: $bash_cv_type_sigset_t" >&5 -echo "${ECHO_T}$bash_cv_type_sigset_t" >&6 - -if test $bash_cv_type_sigset_t = no; then - cat >>confdefs.h <<_ACEOF -#define sigset_t int -_ACEOF - -fi - - - -echo "$as_me:$LINENO: checking for quad_t" >&5 -echo $ECHO_N "checking for quad_t... $ECHO_C" >&6 -if test "${bash_cv_type_quad_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#if STDC_HEADERS -#include -#include -#endif -#if HAVE_INTTYPES_H -#include -#endif - - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "quad_t" >/dev/null 2>&1; then - bash_cv_type_quad_t=yes -else - bash_cv_type_quad_t=no -fi -rm -f conftest* - -fi - -echo "$as_me:$LINENO: result: $bash_cv_type_quad_t" >&5 -echo "${ECHO_T}$bash_cv_type_quad_t" >&6 -if test $bash_cv_type_quad_t = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_QUAD_T 1 -_ACEOF - - fi -if test $bash_cv_type_quad_t = no; then - cat >>confdefs.h <<_ACEOF -#define quad_t long -_ACEOF - -fi - - - -echo "$as_me:$LINENO: checking for intmax_t" >&5 -echo $ECHO_N "checking for intmax_t... $ECHO_C" >&6 -if test "${bash_cv_type_intmax_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#if STDC_HEADERS -#include -#include -#endif -#if HAVE_INTTYPES_H -#include -#endif - - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "intmax_t" >/dev/null 2>&1; then - bash_cv_type_intmax_t=yes -else - bash_cv_type_intmax_t=no -fi -rm -f conftest* - -fi - -echo "$as_me:$LINENO: result: $bash_cv_type_intmax_t" >&5 -echo "${ECHO_T}$bash_cv_type_intmax_t" >&6 - -if test $bash_cv_type_intmax_t = no; then - cat >>confdefs.h <<_ACEOF -#define intmax_t $bash_cv_type_long_long -_ACEOF - -fi - - - -echo "$as_me:$LINENO: checking for uintmax_t" >&5 -echo $ECHO_N "checking for uintmax_t... $ECHO_C" >&6 -if test "${bash_cv_type_uintmax_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#if STDC_HEADERS -#include -#include -#endif -#if HAVE_INTTYPES_H -#include -#endif - - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "uintmax_t" >/dev/null 2>&1; then - bash_cv_type_uintmax_t=yes -else - bash_cv_type_uintmax_t=no -fi -rm -f conftest* - -fi - -echo "$as_me:$LINENO: result: $bash_cv_type_uintmax_t" >&5 -echo "${ECHO_T}$bash_cv_type_uintmax_t" >&6 - -if test $bash_cv_type_uintmax_t = no; then - cat >>confdefs.h <<_ACEOF -#define uintmax_t $bash_cv_type_unsigned_long_long -_ACEOF - -fi - -if test "$ac_cv_header_sys_socket_h" = "yes"; then - - -echo "$as_me:$LINENO: checking for socklen_t" >&5 -echo $ECHO_N "checking for socklen_t... $ECHO_C" >&6 -if test "${bash_cv_type_socklen_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#if STDC_HEADERS -#include -#include -#endif -#if HAVE_INTTYPES_H -#include -#endif -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "socklen_t" >/dev/null 2>&1; then - bash_cv_type_socklen_t=yes -else - bash_cv_type_socklen_t=no -fi -rm -f conftest* - -fi - -echo "$as_me:$LINENO: result: $bash_cv_type_socklen_t" >&5 -echo "${ECHO_T}$bash_cv_type_socklen_t" >&6 -if test $bash_cv_type_socklen_t = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_SOCKLEN_T 1 -_ACEOF - - fi -if test $bash_cv_type_socklen_t = no; then - cat >>confdefs.h <<_ACEOF -#define socklen_t int -_ACEOF - -fi - -fi -echo "$as_me:$LINENO: checking for size and type of struct rlimit fields" >&5 -echo $ECHO_N "checking for size and type of struct rlimit fields... $ECHO_C" >&6 -if test "${bash_cv_type_rlimit+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -int -main () -{ -rlim_t xxx; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_type_rlimit=rlim_t -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check quad_t if cross compiling -- defaulting to long" >&5 -echo "$as_me: WARNING: cannot check quad_t if cross compiling -- defaulting to long" >&2;} - bash_cv_type_rlimit=long -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -#include -main() -{ -#ifdef HAVE_QUAD_T - struct rlimit rl; - if (sizeof(rl.rlim_cur) == sizeof(quad_t)) - exit(0); -#endif - exit(1); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_type_rlimit=quad_t -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -bash_cv_type_rlimit=long -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -fi - -echo "$as_me:$LINENO: result: $bash_cv_type_rlimit" >&5 -echo "${ECHO_T}$bash_cv_type_rlimit" >&6 -if test $bash_cv_type_rlimit = quad_t; then -cat >>confdefs.h <<\_ACEOF -#define RLIMTYPE quad_t -_ACEOF - -elif test $bash_cv_type_rlimit = rlim_t; then -cat >>confdefs.h <<\_ACEOF -#define RLIMTYPE rlim_t -_ACEOF - -fi - - - -echo "$as_me:$LINENO: checking for struct termios.c_line" >&5 -echo $ECHO_N "checking for struct termios.c_line... $ECHO_C" >&6 -if test "${ac_cv_member_struct_termios_c_line+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include - - -int -main () -{ -static struct termios ac_aggr; -if (ac_aggr.c_line) -return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_member_struct_termios_c_line=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include - - -int -main () -{ -static struct termios ac_aggr; -if (sizeof ac_aggr.c_line) -return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_member_struct_termios_c_line=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_member_struct_termios_c_line=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_member_struct_termios_c_line" >&5 -echo "${ECHO_T}$ac_cv_member_struct_termios_c_line" >&6 -if test $ac_cv_member_struct_termios_c_line = yes; then - cat >>confdefs.h <<\_ACEOF -#define TERMIOS_LDISC 1 -_ACEOF - -fi - - - -echo "$as_me:$LINENO: checking for struct termio.c_line" >&5 -echo $ECHO_N "checking for struct termio.c_line... $ECHO_C" >&6 -if test "${ac_cv_member_struct_termio_c_line+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include - - -int -main () -{ -static struct termio ac_aggr; -if (ac_aggr.c_line) -return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_member_struct_termio_c_line=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include - - -int -main () -{ -static struct termio ac_aggr; -if (sizeof ac_aggr.c_line) -return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_member_struct_termio_c_line=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_member_struct_termio_c_line=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_member_struct_termio_c_line" >&5 -echo "${ECHO_T}$ac_cv_member_struct_termio_c_line" >&6 -if test $ac_cv_member_struct_termio_c_line = yes; then - cat >>confdefs.h <<\_ACEOF -#define TERMIO_LDISC 1 -_ACEOF - -fi - - - -echo "$as_me:$LINENO: checking for struct dirent.d_ino" >&5 -echo $ECHO_N "checking for struct dirent.d_ino... $ECHO_C" >&6 -if test "${bash_cv_dirent_has_dino+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -#ifdef HAVE_UNISTD_H -# include -#endif /* HAVE_UNISTD_H */ -#if defined(HAVE_DIRENT_H) -# include -#else -# define dirent direct -# ifdef HAVE_SYS_NDIR_H -# include -# endif /* SYSNDIR */ -# ifdef HAVE_SYS_DIR_H -# include -# endif /* SYSDIR */ -# ifdef HAVE_NDIR_H -# include -# endif -#endif /* HAVE_DIRENT_H */ - -int -main () -{ - -struct dirent d; int z; z = d.d_ino; - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_dirent_has_dino=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -bash_cv_dirent_has_dino=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -echo "$as_me:$LINENO: result: $bash_cv_dirent_has_dino" >&5 -echo "${ECHO_T}$bash_cv_dirent_has_dino" >&6 -if test $bash_cv_dirent_has_dino = yes; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_STRUCT_DIRENT_D_INO 1 -_ACEOF - -fi - - -echo "$as_me:$LINENO: checking for struct dirent.d_fileno" >&5 -echo $ECHO_N "checking for struct dirent.d_fileno... $ECHO_C" >&6 -if test "${bash_cv_dirent_has_d_fileno+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -#ifdef HAVE_UNISTD_H -# include -#endif /* HAVE_UNISTD_H */ -#if defined(HAVE_DIRENT_H) -# include -#else -# define dirent direct -# ifdef HAVE_SYS_NDIR_H -# include -# endif /* SYSNDIR */ -# ifdef HAVE_SYS_DIR_H -# include -# endif /* SYSDIR */ -# ifdef HAVE_NDIR_H -# include -# endif -#endif /* HAVE_DIRENT_H */ - -int -main () -{ - -struct dirent d; int z; z = d.d_fileno; - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_dirent_has_d_fileno=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -bash_cv_dirent_has_d_fileno=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -echo "$as_me:$LINENO: result: $bash_cv_dirent_has_d_fileno" >&5 -echo "${ECHO_T}$bash_cv_dirent_has_d_fileno" >&6 -if test $bash_cv_dirent_has_d_fileno = yes; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_STRUCT_DIRENT_D_FILENO 1 -_ACEOF - -fi - - -echo "$as_me:$LINENO: checking for struct dirent.d_namlen" >&5 -echo $ECHO_N "checking for struct dirent.d_namlen... $ECHO_C" >&6 -if test "${bash_cv_dirent_has_d_namlen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -#ifdef HAVE_UNISTD_H -# include -#endif /* HAVE_UNISTD_H */ -#if defined(HAVE_DIRENT_H) -# include -#else -# define dirent direct -# ifdef HAVE_SYS_NDIR_H -# include -# endif /* SYSNDIR */ -# ifdef HAVE_SYS_DIR_H -# include -# endif /* SYSDIR */ -# ifdef HAVE_NDIR_H -# include -# endif -#endif /* HAVE_DIRENT_H */ - -int -main () -{ - -struct dirent d; int z; z = d.d_namlen; - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_dirent_has_d_namlen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -bash_cv_dirent_has_d_namlen=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -echo "$as_me:$LINENO: result: $bash_cv_dirent_has_d_namlen" >&5 -echo "${ECHO_T}$bash_cv_dirent_has_d_namlen" >&6 -if test $bash_cv_dirent_has_d_namlen = yes; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_STRUCT_DIRENT_D_NAMLEN 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for struct winsize in sys/ioctl.h and termios.h" >&5 -echo $ECHO_N "checking for struct winsize in sys/ioctl.h and termios.h... $ECHO_C" >&6 -if test "${bash_cv_struct_winsize_header+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -int -main () -{ -struct winsize x; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_struct_winsize_header=ioctl_h -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -int -main () -{ -struct winsize x; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_struct_winsize_header=termios_h -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -bash_cv_struct_winsize_header=other -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -if test $bash_cv_struct_winsize_header = ioctl_h; then - echo "$as_me:$LINENO: result: sys/ioctl.h" >&5 -echo "${ECHO_T}sys/ioctl.h" >&6 - cat >>confdefs.h <<\_ACEOF -#define STRUCT_WINSIZE_IN_SYS_IOCTL 1 -_ACEOF - -elif test $bash_cv_struct_winsize_header = termios_h; then - echo "$as_me:$LINENO: result: termios.h" >&5 -echo "${ECHO_T}termios.h" >&6 - cat >>confdefs.h <<\_ACEOF -#define STRUCT_WINSIZE_IN_TERMIOS 1 -_ACEOF - -else - echo "$as_me:$LINENO: result: not found" >&5 -echo "${ECHO_T}not found" >&6 -fi - -echo "$as_me:$LINENO: checking for struct timeval in sys/time.h and time.h" >&5 -echo $ECHO_N "checking for struct timeval in sys/time.h and time.h... $ECHO_C" >&6 -if test "${bash_cv_struct_timeval+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "struct timeval" >/dev/null 2>&1; then - bash_cv_struct_timeval=yes -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "struct timeval" >/dev/null 2>&1; then - bash_cv_struct_timeval=yes -else - bash_cv_struct_timeval=no -fi -rm -f conftest* - -fi -rm -f conftest* - - -fi - -echo "$as_me:$LINENO: result: $bash_cv_struct_timeval" >&5 -echo "${ECHO_T}$bash_cv_struct_timeval" >&6 -if test $bash_cv_struct_timeval = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_TIMEVAL 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for struct stat.st_blocks" >&5 -echo $ECHO_N "checking for struct stat.st_blocks... $ECHO_C" >&6 -if test "${ac_cv_member_struct_stat_st_blocks+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static struct stat ac_aggr; -if (ac_aggr.st_blocks) -return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_member_struct_stat_st_blocks=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static struct stat ac_aggr; -if (sizeof ac_aggr.st_blocks) -return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_member_struct_stat_st_blocks=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_member_struct_stat_st_blocks=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_blocks" >&5 -echo "${ECHO_T}$ac_cv_member_struct_stat_st_blocks" >&6 -if test $ac_cv_member_struct_stat_st_blocks = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STAT_ST_BLOCKS 1 -_ACEOF - - -fi - -echo "$as_me:$LINENO: checking whether struct tm is in sys/time.h or time.h" >&5 -echo $ECHO_N "checking whether struct tm is in sys/time.h or time.h... $ECHO_C" >&6 -if test "${ac_cv_struct_tm+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include - -int -main () -{ -struct tm *tp; tp->tm_sec; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_struct_tm=time.h -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_struct_tm=sys/time.h -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_struct_tm" >&5 -echo "${ECHO_T}$ac_cv_struct_tm" >&6 -if test $ac_cv_struct_tm = sys/time.h; then - -cat >>confdefs.h <<\_ACEOF -#define TM_IN_SYS_TIME 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for struct tm.tm_zone" >&5 -echo $ECHO_N "checking for struct tm.tm_zone... $ECHO_C" >&6 -if test "${ac_cv_member_struct_tm_tm_zone+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include <$ac_cv_struct_tm> - - -int -main () -{ -static struct tm ac_aggr; -if (ac_aggr.tm_zone) -return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_member_struct_tm_tm_zone=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include <$ac_cv_struct_tm> - - -int -main () -{ -static struct tm ac_aggr; -if (sizeof ac_aggr.tm_zone) -return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_member_struct_tm_tm_zone=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_member_struct_tm_tm_zone=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_member_struct_tm_tm_zone" >&5 -echo "${ECHO_T}$ac_cv_member_struct_tm_tm_zone" >&6 -if test $ac_cv_member_struct_tm_tm_zone = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_TM_TM_ZONE 1 -_ACEOF - - -fi - -if test "$ac_cv_member_struct_tm_tm_zone" = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_TM_ZONE 1 -_ACEOF - -else - echo "$as_me:$LINENO: checking for tzname" >&5 -echo $ECHO_N "checking for tzname... $ECHO_C" >&6 -if test "${ac_cv_var_tzname+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#ifndef tzname /* For SGI. */ -extern char *tzname[]; /* RS6000 and others reject char **tzname. */ -#endif - -int -main () -{ -atoi(*tzname); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_var_tzname=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_var_tzname=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_var_tzname" >&5 -echo "${ECHO_T}$ac_cv_var_tzname" >&6 - if test $ac_cv_var_tzname = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_TZNAME 1 -_ACEOF - - fi -fi - -echo "$as_me:$LINENO: checking for struct timezone in sys/time.h and time.h" >&5 -echo $ECHO_N "checking for struct timezone in sys/time.h and time.h... $ECHO_C" >&6 -if test "${bash_cv_struct_timezone+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "struct timezone" >/dev/null 2>&1; then - bash_cv_struct_timezone=yes -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "struct timezone" >/dev/null 2>&1; then - bash_cv_struct_timezone=yes -else - bash_cv_struct_timezone=no -fi -rm -f conftest* - -fi -rm -f conftest* - - -fi - -echo "$as_me:$LINENO: result: $bash_cv_struct_timezone" >&5 -echo "${ECHO_T}$bash_cv_struct_timezone" >&6 -if test $bash_cv_struct_timezone = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_STRUCT_TIMEZONE 1 -_ACEOF - -fi - - -echo "$as_me:$LINENO: checking for the existence of strsignal" >&5 -echo $ECHO_N "checking for the existence of strsignal... $ECHO_C" >&6 -if test "${bash_cv_have_strsignal+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -int -main () -{ -char *s = (char *)strsignal(2); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_have_strsignal=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -bash_cv_have_strsignal=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi - -echo "$as_me:$LINENO: result: $bash_cv_have_strsignal" >&5 -echo "${ECHO_T}$bash_cv_have_strsignal" >&6 -if test $bash_cv_have_strsignal = yes; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_STRSIGNAL 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking if opendir() opens non-directories" >&5 -echo $ECHO_N "checking if opendir() opens non-directories... $ECHO_C" >&6 -if test "${bash_cv_opendir_not_robust+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check opendir if cross compiling -- defaulting to no" >&5 -echo "$as_me: WARNING: cannot check opendir if cross compiling -- defaulting to no" >&2;} - bash_cv_opendir_not_robust=no - -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -#include -#ifdef HAVE_UNISTD_H -# include -#endif /* HAVE_UNISTD_H */ -#if defined(HAVE_DIRENT_H) -# include -#else -# define dirent direct -# ifdef HAVE_SYS_NDIR_H -# include -# endif /* SYSNDIR */ -# ifdef HAVE_SYS_DIR_H -# include -# endif /* SYSDIR */ -# ifdef HAVE_NDIR_H -# include -# endif -#endif /* HAVE_DIRENT_H */ -main() -{ -DIR *dir; -int fd, err; -err = mkdir("/tmp/bash-aclocal", 0700); -if (err < 0) { - perror("mkdir"); - exit(1); -} -unlink("/tmp/bash-aclocal/not_a_directory"); -fd = open("/tmp/bash-aclocal/not_a_directory", O_WRONLY|O_CREAT|O_EXCL, 0666); -write(fd, "\n", 1); -close(fd); -dir = opendir("/tmp/bash-aclocal/not_a_directory"); -unlink("/tmp/bash-aclocal/not_a_directory"); -rmdir("/tmp/bash-aclocal"); -exit (dir == 0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_opendir_not_robust=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -bash_cv_opendir_not_robust=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi - -echo "$as_me:$LINENO: result: $bash_cv_opendir_not_robust" >&5 -echo "${ECHO_T}$bash_cv_opendir_not_robust" >&6 -if test $bash_cv_opendir_not_robust = yes; then -cat >>confdefs.h <<\_ACEOF -#define OPENDIR_NOT_ROBUST 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking whether ulimit can substitute for getdtablesize" >&5 -echo $ECHO_N "checking whether ulimit can substitute for getdtablesize... $ECHO_C" >&6 -if test "${bash_cv_ulimit_maxfds+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check ulimit if cross compiling -- defaulting to no" >&5 -echo "$as_me: WARNING: cannot check ulimit if cross compiling -- defaulting to no" >&2;} - bash_cv_ulimit_maxfds=no - -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -main() -{ -long maxfds = ulimit(4, 0L); -exit (maxfds == -1L); -} - -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_ulimit_maxfds=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -bash_cv_ulimit_maxfds=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi - -echo "$as_me:$LINENO: result: $bash_cv_ulimit_maxfds" >&5 -echo "${ECHO_T}$bash_cv_ulimit_maxfds" >&6 -if test $bash_cv_ulimit_maxfds = yes; then -cat >>confdefs.h <<\_ACEOF -#define ULIMIT_MAXFDS 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking to see if getenv can be redefined" >&5 -echo $ECHO_N "checking to see if getenv can be redefined... $ECHO_C" >&6 -if test "${bash_cv_getenv_redef+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check getenv redefinition if cross compiling -- defaulting to yes" >&5 -echo "$as_me: WARNING: cannot check getenv redefinition if cross compiling -- defaulting to yes" >&2;} - bash_cv_getenv_redef=yes - -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#ifdef HAVE_UNISTD_H -# include -#endif -#ifndef __STDC__ -# ifndef const -# define const -# endif -#endif -char * -getenv (name) -#if defined (__linux__) || defined (__bsdi__) || defined (convex) - const char *name; -#else - char const *name; -#endif /* !__linux__ && !__bsdi__ && !convex */ -{ -return "42"; -} -main() -{ -char *s; -/* The next allows this program to run, but does not allow bash to link - when it redefines getenv. I'm not really interested in figuring out - why not. */ -#if defined (NeXT) -exit(1); -#endif -s = getenv("ABCDE"); -exit(s == 0); /* force optimizer to leave getenv in */ -} - -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_getenv_redef=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -bash_cv_getenv_redef=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi - -echo "$as_me:$LINENO: result: $bash_cv_getenv_redef" >&5 -echo "${ECHO_T}$bash_cv_getenv_redef" >&6 -if test $bash_cv_getenv_redef = yes; then -cat >>confdefs.h <<\_ACEOF -#define CAN_REDEFINE_GETENV 1 -_ACEOF - -fi - -if test "$ac_cv_func_getcwd" = "yes"; then -echo "$as_me:$LINENO: checking if getcwd() will dynamically allocate memory" >&5 -echo $ECHO_N "checking if getcwd() will dynamically allocate memory... $ECHO_C" >&6 -if test "${bash_cv_getcwd_malloc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check whether getcwd allocates memory when cross-compiling -- defaulting to no" >&5 -echo "$as_me: WARNING: cannot check whether getcwd allocates memory when cross-compiling -- defaulting to no" >&2;} - bash_cv_getcwd_malloc=no - -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#ifdef HAVE_UNISTD_H -#include -#endif - -main() -{ - char *xpwd; - xpwd = getcwd(0, 0); - exit (xpwd == 0); -} - -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_getcwd_malloc=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -bash_cv_getcwd_malloc=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi - -echo "$as_me:$LINENO: result: $bash_cv_getcwd_malloc" >&5 -echo "${ECHO_T}$bash_cv_getcwd_malloc" >&6 -if test $bash_cv_getcwd_malloc = no; then -cat >>confdefs.h <<\_ACEOF -#define GETCWD_BROKEN 1 -_ACEOF - -case $LIBOBJS in - "getcwd.$ac_objext" | \ - *" getcwd.$ac_objext" | \ - "getcwd.$ac_objext "* | \ - *" getcwd.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS getcwd.$ac_objext" ;; -esac - -fi - -fi - -echo "$as_me:$LINENO: checking for presence of POSIX-style sigsetjmp/siglongjmp" >&5 -echo $ECHO_N "checking for presence of POSIX-style sigsetjmp/siglongjmp... $ECHO_C" >&6 -if test "${bash_cv_func_sigsetjmp+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing" >&5 -echo "$as_me: WARNING: cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing" >&2;} - bash_cv_func_sigsetjmp=missing - -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#ifdef HAVE_UNISTD_H -#include -#endif -#include -#include -#include - -main() -{ -#if !defined (_POSIX_VERSION) || !defined (HAVE_POSIX_SIGNALS) -exit (1); -#else - -int code; -sigset_t set, oset; -sigjmp_buf xx; - -/* get the mask */ -sigemptyset(&set); -sigemptyset(&oset); -sigprocmask(SIG_BLOCK, (sigset_t *)NULL, &set); -sigprocmask(SIG_BLOCK, (sigset_t *)NULL, &oset); - -/* save it */ -code = sigsetjmp(xx, 1); -if (code) - exit(0); /* could get sigmask and compare to oset here. */ - -/* change it */ -sigaddset(&set, SIGINT); -sigprocmask(SIG_BLOCK, &set, (sigset_t *)NULL); - -/* and siglongjmp */ -siglongjmp(xx, 10); -exit(1); -#endif -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_func_sigsetjmp=present -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -bash_cv_func_sigsetjmp=missing -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi - -echo "$as_me:$LINENO: result: $bash_cv_func_sigsetjmp" >&5 -echo "${ECHO_T}$bash_cv_func_sigsetjmp" >&6 -if test $bash_cv_func_sigsetjmp = present; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_POSIX_SIGSETJMP 1 -_ACEOF - -fi - - -echo "$as_me:$LINENO: checking whether or not strcoll and strcmp differ" >&5 -echo $ECHO_N "checking whether or not strcoll and strcmp differ... $ECHO_C" >&6 -if test "${bash_cv_func_strcoll_broken+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check strcoll if cross compiling -- defaulting to no" >&5 -echo "$as_me: WARNING: cannot check strcoll if cross compiling -- defaulting to no" >&2;} - bash_cv_func_strcoll_broken=no - -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#if defined (HAVE_LOCALE_H) -#include -#endif - -main(c, v) -int c; -char *v[]; -{ - int r1, r2; - char *deflocale, *defcoll; - -#ifdef HAVE_SETLOCALE - deflocale = setlocale(LC_ALL, ""); - defcoll = setlocale(LC_COLLATE, ""); -#endif - -#ifdef HAVE_STRCOLL - /* These two values are taken from tests/glob-test. */ - r1 = strcoll("abd", "aXd"); -#else - r1 = 0; -#endif - r2 = strcmp("abd", "aXd"); - - /* These two should both be greater than 0. It is permissible for - a system to return different values, as long as the sign is the - same. */ - - /* Exit with 1 (failure) if these two values are both > 0, since - this tests whether strcoll(3) is broken with respect to strcmp(3) - in the default locale. */ - exit (r1 > 0 && r2 > 0); -} - -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_func_strcoll_broken=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -bash_cv_func_strcoll_broken=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi - -echo "$as_me:$LINENO: result: $bash_cv_func_strcoll_broken" >&5 -echo "${ECHO_T}$bash_cv_func_strcoll_broken" >&6 -if test $bash_cv_func_strcoll_broken = yes; then -cat >>confdefs.h <<\_ACEOF -#define STRCOLL_BROKEN 1 -_ACEOF - -fi - - - -if test "$ac_cv_func_putenv" = "yes"; then - - - -echo "$as_me:$LINENO: checking for standard-conformant putenv declaration" >&5 -echo $ECHO_N "checking for standard-conformant putenv declaration... $ECHO_C" >&6 -if test "${bash_cv_std_putenv+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#if STDC_HEADERS -#include -#include -#endif -#ifndef __STDC__ -# ifndef const -# define const -# endif -#endif -#ifdef PROTOTYPES -extern int putenv (char *); -#else -extern int putenv (); -#endif - -int -main () -{ -return (putenv == 0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_std_putenv=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -bash_cv_std_putenv=no - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $bash_cv_std_putenv" >&5 -echo "${ECHO_T}$bash_cv_std_putenv" >&6 -if test $bash_cv_std_putenv = yes; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_STD_PUTENV 1 -_ACEOF - -fi - -else -cat >>confdefs.h <<\_ACEOF -#define HAVE_STD_PUTENV 1 -_ACEOF - -fi -if test "$ac_cv_func_unsetenv" = "yes"; then - - - -echo "$as_me:$LINENO: checking for standard-conformant unsetenv declaration" >&5 -echo $ECHO_N "checking for standard-conformant unsetenv declaration... $ECHO_C" >&6 -if test "${bash_cv_std_unsetenv+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#if STDC_HEADERS -#include -#include -#endif -#ifndef __STDC__ -# ifndef const -# define const -# endif -#endif -#ifdef PROTOTYPES -extern int unsetenv (const char *); -#else -extern int unsetenv (); -#endif - -int -main () -{ -return (unsetenv == 0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_std_unsetenv=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -bash_cv_std_unsetenv=no - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $bash_cv_std_unsetenv" >&5 -echo "${ECHO_T}$bash_cv_std_unsetenv" >&6 -if test $bash_cv_std_unsetenv = yes; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_STD_UNSETENV 1 -_ACEOF - -fi - -else -cat >>confdefs.h <<\_ACEOF -#define HAVE_STD_UNSETENV 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for printf floating point output in hex notation" >&5 -echo $ECHO_N "checking for printf floating point output in hex notation... $ECHO_C" >&6 -if test "${bash_cv_printf_a_format+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check printf if cross compiling -- defaulting to no" >&5 -echo "$as_me: WARNING: cannot check printf if cross compiling -- defaulting to no" >&2;} - bash_cv_printf_a_format=no - -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include - -int -main() -{ - double y = 0.0; - char abuf[1024]; - - sprintf(abuf, "%A", y); - exit(strchr(abuf, 'P') == (char *)0); -} - -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_printf_a_format=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -bash_cv_printf_a_format=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi - -echo "$as_me:$LINENO: result: $bash_cv_printf_a_format" >&5 -echo "${ECHO_T}$bash_cv_printf_a_format" >&6 -if test $bash_cv_printf_a_format = yes; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_PRINTF_A_FORMAT 1 -_ACEOF - -fi - - - - -echo "$as_me:$LINENO: checking if signal handlers must be reinstalled when invoked" >&5 -echo $ECHO_N "checking if signal handlers must be reinstalled when invoked... $ECHO_C" >&6 -if test "${bash_cv_must_reinstall_sighandlers+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check signal handling if cross compiling -- defaulting to no" >&5 -echo "$as_me: WARNING: cannot check signal handling if cross compiling -- defaulting to no" >&2;} - bash_cv_must_reinstall_sighandlers=no - -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#ifdef HAVE_UNISTD_H -#include -#endif - -typedef RETSIGTYPE sigfunc(); - -int nsigint; - -#ifdef HAVE_POSIX_SIGNALS -sigfunc * -set_signal_handler(sig, handler) - int sig; - sigfunc *handler; -{ - struct sigaction act, oact; - act.sa_handler = handler; - act.sa_flags = 0; - sigemptyset (&act.sa_mask); - sigemptyset (&oact.sa_mask); - sigaction (sig, &act, &oact); - return (oact.sa_handler); -} -#else -#define set_signal_handler(s, h) signal(s, h) -#endif - -RETSIGTYPE -sigint(s) -int s; -{ - nsigint++; -} - -main() -{ - nsigint = 0; - set_signal_handler(SIGINT, sigint); - kill((int)getpid(), SIGINT); - kill((int)getpid(), SIGINT); - exit(nsigint != 2); -} - -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_must_reinstall_sighandlers=no -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -bash_cv_must_reinstall_sighandlers=yes -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi - -echo "$as_me:$LINENO: result: $bash_cv_must_reinstall_sighandlers" >&5 -echo "${ECHO_T}$bash_cv_must_reinstall_sighandlers" >&6 -if test $bash_cv_must_reinstall_sighandlers = yes; then -cat >>confdefs.h <<\_ACEOF -#define MUST_REINSTALL_SIGHANDLERS 1 -_ACEOF - -fi - - -echo "$as_me:$LINENO: checking for presence of necessary job control definitions" >&5 -echo $ECHO_N "checking for presence of necessary job control definitions... $ECHO_C" >&6 -if test "${bash_cv_job_control_missing+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check job control if cross-compiling -- defaulting to missing" >&5 -echo "$as_me: WARNING: cannot check job control if cross-compiling -- defaulting to missing" >&2;} - bash_cv_job_control_missing=missing - -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#ifdef HAVE_SYS_WAIT_H -#include -#endif -#ifdef HAVE_UNISTD_H -#include -#endif -#include - -/* Add more tests in here as appropriate. */ -main() -{ -/* signal type */ -#if !defined (HAVE_POSIX_SIGNALS) && !defined (HAVE_BSD_SIGNALS) -exit(1); -#endif - -/* signals and tty control. */ -#if !defined (SIGTSTP) || !defined (SIGSTOP) || !defined (SIGCONT) -exit (1); -#endif - -/* process control */ -#if !defined (WNOHANG) || !defined (WUNTRACED) -exit(1); -#endif - -/* Posix systems have tcgetpgrp and waitpid. */ -#if defined (_POSIX_VERSION) && !defined (HAVE_TCGETPGRP) -exit(1); -#endif - -#if defined (_POSIX_VERSION) && !defined (HAVE_WAITPID) -exit(1); -#endif - -/* Other systems have TIOCSPGRP/TIOCGPRGP and wait3. */ -#if !defined (_POSIX_VERSION) && !defined (HAVE_WAIT3) -exit(1); -#endif - -exit(0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_job_control_missing=present -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -bash_cv_job_control_missing=missing -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi - -echo "$as_me:$LINENO: result: $bash_cv_job_control_missing" >&5 -echo "${ECHO_T}$bash_cv_job_control_missing" >&6 -if test $bash_cv_job_control_missing = missing; then -cat >>confdefs.h <<\_ACEOF -#define JOB_CONTROL_MISSING 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for presence of named pipes" >&5 -echo $ECHO_N "checking for presence of named pipes... $ECHO_C" >&6 -if test "${bash_cv_sys_named_pipes+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check for named pipes if cross-compiling -- defaulting to missing" >&5 -echo "$as_me: WARNING: cannot check for named pipes if cross-compiling -- defaulting to missing" >&2;} - bash_cv_sys_named_pipes=missing - -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -#ifdef HAVE_UNISTD_H -#include -#endif - -/* Add more tests in here as appropriate. */ -main() -{ -int fd, err; - -#if defined (HAVE_MKFIFO) -exit (0); -#endif - -#if !defined (S_IFIFO) && (defined (_POSIX_VERSION) && !defined (S_ISFIFO)) -exit (1); -#endif - -#if defined (NeXT) -exit (1); -#endif -err = mkdir("/tmp/bash-aclocal", 0700); -if (err < 0) { - perror ("mkdir"); - exit(1); -} -fd = mknod ("/tmp/bash-aclocal/sh-np-autoconf", 0666 | S_IFIFO, 0); -if (fd == -1) { - rmdir ("/tmp/bash-aclocal"); - exit (1); -} -close(fd); -unlink ("/tmp/bash-aclocal/sh-np-autoconf"); -rmdir ("/tmp/bash-aclocal"); -exit(0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_sys_named_pipes=present -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -bash_cv_sys_named_pipes=missing -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi - -echo "$as_me:$LINENO: result: $bash_cv_sys_named_pipes" >&5 -echo "${ECHO_T}$bash_cv_sys_named_pipes" >&6 -if test $bash_cv_sys_named_pipes = missing; then -cat >>confdefs.h <<\_ACEOF -#define NAMED_PIPES_MISSING 1 -_ACEOF - -fi - - -echo "$as_me:$LINENO: checking whether termios.h defines TIOCGWINSZ" >&5 -echo $ECHO_N "checking whether termios.h defines TIOCGWINSZ... $ECHO_C" >&6 -if test "${ac_cv_sys_tiocgwinsz_in_termios_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#ifdef TIOCGWINSZ - yes -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes" >/dev/null 2>&1; then - ac_cv_sys_tiocgwinsz_in_termios_h=yes -else - ac_cv_sys_tiocgwinsz_in_termios_h=no -fi -rm -f conftest* - -fi -echo "$as_me:$LINENO: result: $ac_cv_sys_tiocgwinsz_in_termios_h" >&5 -echo "${ECHO_T}$ac_cv_sys_tiocgwinsz_in_termios_h" >&6 - -if test $ac_cv_sys_tiocgwinsz_in_termios_h != yes; then - echo "$as_me:$LINENO: checking whether sys/ioctl.h defines TIOCGWINSZ" >&5 -echo $ECHO_N "checking whether sys/ioctl.h defines TIOCGWINSZ... $ECHO_C" >&6 -if test "${ac_cv_sys_tiocgwinsz_in_sys_ioctl_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#ifdef TIOCGWINSZ - yes -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes" >/dev/null 2>&1; then - ac_cv_sys_tiocgwinsz_in_sys_ioctl_h=yes -else - ac_cv_sys_tiocgwinsz_in_sys_ioctl_h=no -fi -rm -f conftest* - -fi -echo "$as_me:$LINENO: result: $ac_cv_sys_tiocgwinsz_in_sys_ioctl_h" >&5 -echo "${ECHO_T}$ac_cv_sys_tiocgwinsz_in_sys_ioctl_h" >&6 - - if test $ac_cv_sys_tiocgwinsz_in_sys_ioctl_h = yes; then - -cat >>confdefs.h <<\_ACEOF -#define GWINSZ_IN_SYS_IOCTL 1 -_ACEOF - - fi -fi - -echo "$as_me:$LINENO: checking for TIOCSTAT in sys/ioctl.h" >&5 -echo $ECHO_N "checking for TIOCSTAT in sys/ioctl.h... $ECHO_C" >&6 -if test "${bash_cv_tiocstat_in_ioctl+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -int -main () -{ -int x = TIOCSTAT; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_tiocstat_in_ioctl=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -bash_cv_tiocstat_in_ioctl=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -echo "$as_me:$LINENO: result: $bash_cv_tiocstat_in_ioctl" >&5 -echo "${ECHO_T}$bash_cv_tiocstat_in_ioctl" >&6 -if test $bash_cv_tiocstat_in_ioctl = yes; then -cat >>confdefs.h <<\_ACEOF -#define TIOCSTAT_IN_SYS_IOCTL 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for FIONREAD in sys/ioctl.h" >&5 -echo $ECHO_N "checking for FIONREAD in sys/ioctl.h... $ECHO_C" >&6 -if test "${bash_cv_fionread_in_ioctl+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -int -main () -{ -int x = FIONREAD; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_fionread_in_ioctl=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -bash_cv_fionread_in_ioctl=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -echo "$as_me:$LINENO: result: $bash_cv_fionread_in_ioctl" >&5 -echo "${ECHO_T}$bash_cv_fionread_in_ioctl" >&6 -if test $bash_cv_fionread_in_ioctl = yes; then -cat >>confdefs.h <<\_ACEOF -#define FIONREAD_IN_SYS_IOCTL 1 -_ACEOF - -fi - - - -echo "$as_me:$LINENO: checking whether WCONTINUED flag to waitpid is unavailable or available but broken" >&5 -echo $ECHO_N "checking whether WCONTINUED flag to waitpid is unavailable or available but broken... $ECHO_C" >&6 -if test "${bash_cv_wcontinued_broken+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check WCONTINUED if cross compiling -- defaulting to no" >&5 -echo "$as_me: WARNING: cannot check WCONTINUED if cross compiling -- defaulting to no" >&2;} - bash_cv_wcontinued_broken=no - -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -#include -#include - -#ifndef errno -extern int errno; -#endif -main() -{ - int x; - - x = waitpid(-1, (int *)0, WNOHANG|WCONTINUED); - if (x == -1 && errno == EINVAL) - exit (1); - else - exit (0); -} - -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_wcontinued_broken=no -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -bash_cv_wcontinued_broken=yes -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi - -echo "$as_me:$LINENO: result: $bash_cv_wcontinued_broken" >&5 -echo "${ECHO_T}$bash_cv_wcontinued_broken" >&6 -if test $bash_cv_wcontinued_broken = yes; then -cat >>confdefs.h <<\_ACEOF -#define WCONTINUED_BROKEN 1 -_ACEOF - -fi - - -echo "$as_me:$LINENO: checking for speed_t in sys/types.h" >&5 -echo $ECHO_N "checking for speed_t in sys/types.h... $ECHO_C" >&6 -if test "${bash_cv_speed_t_in_sys_types+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -int -main () -{ -speed_t x; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_speed_t_in_sys_types=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -bash_cv_speed_t_in_sys_types=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -echo "$as_me:$LINENO: result: $bash_cv_speed_t_in_sys_types" >&5 -echo "${ECHO_T}$bash_cv_speed_t_in_sys_types" >&6 -if test $bash_cv_speed_t_in_sys_types = yes; then -cat >>confdefs.h <<\_ACEOF -#define SPEED_T_IN_SYS_TYPES 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking whether getpw functions are declared in pwd.h" >&5 -echo $ECHO_N "checking whether getpw functions are declared in pwd.h... $ECHO_C" >&6 -if test "${bash_cv_getpw_declared+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#ifdef HAVE_UNISTD_H -# include -#endif -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "getpwuid" >/dev/null 2>&1; then - bash_cv_getpw_declared=yes -else - bash_cv_getpw_declared=no -fi -rm -f conftest* - -fi - -echo "$as_me:$LINENO: result: $bash_cv_getpw_declared" >&5 -echo "${ECHO_T}$bash_cv_getpw_declared" >&6 -if test $bash_cv_getpw_declared = yes; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_GETPW_DECLS 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for unusable real-time signals due to large values" >&5 -echo $ECHO_N "checking for unusable real-time signals due to large values... $ECHO_C" >&6 -if test "${bash_cv_unusable_rtsigs+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check real-time signals if cross compiling -- defaulting to yes" >&5 -echo "$as_me: WARNING: cannot check real-time signals if cross compiling -- defaulting to yes" >&2;} - bash_cv_unusable_rtsigs=yes - -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include - -#ifndef NSIG -# define NSIG 64 -#endif - -main () -{ - int n_sigs = 2 * NSIG; -#ifdef SIGRTMIN - int rtmin = SIGRTMIN; -#else - int rtmin = 0; -#endif - - exit(rtmin < n_sigs); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_unusable_rtsigs=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -bash_cv_unusable_rtsigs=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi - -echo "$as_me:$LINENO: result: $bash_cv_unusable_rtsigs" >&5 -echo "${ECHO_T}$bash_cv_unusable_rtsigs" >&6 -if test $bash_cv_unusable_rtsigs = yes; then -cat >>confdefs.h <<\_ACEOF -#define UNUSABLE_RT_SIGNALS 1 -_ACEOF - -fi - - - - - -if test "$bash_cv_sys_siglist" = no && test "$bash_cv_under_sys_siglist" = no && test "$bash_cv_have_strsignal" = no; then - SIGLIST_O=siglist.o -else - SIGLIST_O= -fi - - - -case "$host_os" in -hpux*) echo "$as_me:$LINENO: checking whether $host_os needs _KERNEL for RLIMIT defines" >&5 -echo $ECHO_N "checking whether $host_os needs _KERNEL for RLIMIT defines... $ECHO_C" >&6 -if test "${bash_cv_kernel_rlimit+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include - -int -main () -{ - - int f; - f = RLIMIT_DATA; - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_kernel_rlimit=no -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#define _KERNEL -#include -#undef _KERNEL - -int -main () -{ - - int f; - f = RLIMIT_DATA; - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - bash_cv_kernel_rlimit=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -bash_cv_kernel_rlimit=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -echo "$as_me:$LINENO: result: $bash_cv_kernel_rlimit" >&5 -echo "${ECHO_T}$bash_cv_kernel_rlimit" >&6 -if test $bash_cv_kernel_rlimit = yes; then -cat >>confdefs.h <<\_ACEOF -#define RLIMIT_NEEDS_KERNEL 1 -_ACEOF - -fi - ;; -esac - -if test "$opt_readline" = yes; then -case "$host_os" in -aix*) prefer_curses=yes ;; -esac - -if test "X$bash_cv_termcap_lib" = "X"; then -_bash_needmsg=yes -else -echo "$as_me:$LINENO: checking which library has the termcap functions" >&5 -echo $ECHO_N "checking which library has the termcap functions... $ECHO_C" >&6 -_bash_needmsg= -fi -if test "${bash_cv_termcap_lib+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - echo "$as_me:$LINENO: checking for tgetent" >&5 -echo $ECHO_N "checking for tgetent... $ECHO_C" >&6 -if test "${ac_cv_func_tgetent+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define tgetent to an innocuous variant, in case declares tgetent. - For example, HP-UX 11i declares gettimeofday. */ -#define tgetent innocuous_tgetent - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char tgetent (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef tgetent - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char tgetent (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_tgetent) || defined (__stub___tgetent) -choke me -#else -char (*f) () = tgetent; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != tgetent; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_tgetent=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_tgetent=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_tgetent" >&5 -echo "${ECHO_T}$ac_cv_func_tgetent" >&6 -if test $ac_cv_func_tgetent = yes; then - bash_cv_termcap_lib=libc -else - echo "$as_me:$LINENO: checking for tgetent in -ltermcap" >&5 -echo $ECHO_N "checking for tgetent in -ltermcap... $ECHO_C" >&6 -if test "${ac_cv_lib_termcap_tgetent+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ltermcap $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char tgetent (); -int -main () -{ -tgetent (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_termcap_tgetent=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_termcap_tgetent=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_termcap_tgetent" >&5 -echo "${ECHO_T}$ac_cv_lib_termcap_tgetent" >&6 -if test $ac_cv_lib_termcap_tgetent = yes; then - bash_cv_termcap_lib=libtermcap -else - echo "$as_me:$LINENO: checking for tgetent in -ltinfo" >&5 -echo $ECHO_N "checking for tgetent in -ltinfo... $ECHO_C" >&6 -if test "${ac_cv_lib_tinfo_tgetent+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ltinfo $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char tgetent (); -int -main () -{ -tgetent (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_tinfo_tgetent=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_tinfo_tgetent=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_tinfo_tgetent" >&5 -echo "${ECHO_T}$ac_cv_lib_tinfo_tgetent" >&6 -if test $ac_cv_lib_tinfo_tgetent = yes; then - bash_cv_termcap_lib=libtinfo -else - echo "$as_me:$LINENO: checking for tgetent in -lcurses" >&5 -echo $ECHO_N "checking for tgetent in -lcurses... $ECHO_C" >&6 -if test "${ac_cv_lib_curses_tgetent+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcurses $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char tgetent (); -int -main () -{ -tgetent (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_curses_tgetent=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_curses_tgetent=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_curses_tgetent" >&5 -echo "${ECHO_T}$ac_cv_lib_curses_tgetent" >&6 -if test $ac_cv_lib_curses_tgetent = yes; then - bash_cv_termcap_lib=libcurses -else - echo "$as_me:$LINENO: checking for tgetent in -lncurses" >&5 -echo $ECHO_N "checking for tgetent in -lncurses... $ECHO_C" >&6 -if test "${ac_cv_lib_ncurses_tgetent+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lncurses $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char tgetent (); -int -main () -{ -tgetent (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_ncurses_tgetent=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_ncurses_tgetent=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_ncurses_tgetent" >&5 -echo "${ECHO_T}$ac_cv_lib_ncurses_tgetent" >&6 -if test $ac_cv_lib_ncurses_tgetent = yes; then - bash_cv_termcap_lib=libncurses -else - bash_cv_termcap_lib=gnutermcap -fi - -fi - -fi - -fi - -fi - -fi - -if test "X$_bash_needmsg" = "Xyes"; then -echo "$as_me:$LINENO: checking which library has the termcap functions" >&5 -echo $ECHO_N "checking which library has the termcap functions... $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: using $bash_cv_termcap_lib" >&5 -echo "${ECHO_T}using $bash_cv_termcap_lib" >&6 -if test $bash_cv_termcap_lib = gnutermcap && test -z "$prefer_curses"; then -LDFLAGS="$LDFLAGS -L./lib/termcap" -TERMCAP_LIB="./lib/termcap/libtermcap.a" -TERMCAP_DEP="./lib/termcap/libtermcap.a" -elif test $bash_cv_termcap_lib = libtermcap && test -z "$prefer_curses"; then -TERMCAP_LIB=-ltermcap -TERMCAP_DEP= -elif test $bash_cv_termcap_lib = libtinfo; then -TERMCAP_LIB=-ltinfo -TERMCAP_DEP= -elif test $bash_cv_termcap_lib = libncurses; then -TERMCAP_LIB=-lncurses -TERMCAP_DEP= -elif test $bash_cv_termcap_lib = libc; then -TERMCAP_LIB= -TERMCAP_DEP= -else -TERMCAP_LIB=-lcurses -TERMCAP_DEP= -fi - -fi - - - -echo "$as_me:$LINENO: checking whether /dev/fd is available" >&5 -echo $ECHO_N "checking whether /dev/fd is available... $ECHO_C" >&6 -if test "${bash_cv_dev_fd+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -d /dev/fd && test -r /dev/fd/0 < /dev/null; then -# check for systems like FreeBSD 5 that only provide /dev/fd/[012] - exec 3<&0 - if test -r /dev/fd/3; then - bash_cv_dev_fd=standard - else - bash_cv_dev_fd=absent - fi - exec 3<&- - elif test -d /proc/self/fd && test -r /proc/self/fd/0 < /dev/null; then - bash_cv_dev_fd=whacky - else - bash_cv_dev_fd=absent - fi - -fi - -echo "$as_me:$LINENO: result: $bash_cv_dev_fd" >&5 -echo "${ECHO_T}$bash_cv_dev_fd" >&6 -if test $bash_cv_dev_fd = "standard"; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_DEV_FD 1 -_ACEOF - - cat >>confdefs.h <<\_ACEOF -#define DEV_FD_PREFIX "/dev/fd/" -_ACEOF - -elif test $bash_cv_dev_fd = "whacky"; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_DEV_FD 1 -_ACEOF - - cat >>confdefs.h <<\_ACEOF -#define DEV_FD_PREFIX "/proc/self/fd/" -_ACEOF - -fi - -echo "$as_me:$LINENO: checking whether /dev/stdin stdout stderr are available" >&5 -echo $ECHO_N "checking whether /dev/stdin stdout stderr are available... $ECHO_C" >&6 -if test "${bash_cv_dev_stdin+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -d /dev/fd && test -r /dev/stdin < /dev/null; then - bash_cv_dev_stdin=present - elif test -d /proc/self/fd && test -r /dev/stdin < /dev/null; then - bash_cv_dev_stdin=present - else - bash_cv_dev_stdin=absent - fi - -fi - -echo "$as_me:$LINENO: result: $bash_cv_dev_stdin" >&5 -echo "${ECHO_T}$bash_cv_dev_stdin" >&6 -if test $bash_cv_dev_stdin = "present"; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_DEV_STDIN 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for default mail directory" >&5 -echo $ECHO_N "checking for default mail directory... $ECHO_C" >&6 -if test "${bash_cv_mail_dir+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -d /var/mail; then - bash_cv_mail_dir=/var/mail - elif test -d /var/spool/mail; then - bash_cv_mail_dir=/var/spool/mail - elif test -d /usr/mail; then - bash_cv_mail_dir=/usr/mail - elif test -d /usr/spool/mail; then - bash_cv_mail_dir=/usr/spool/mail - else - bash_cv_mail_dir=unknown - fi - -fi - -echo "$as_me:$LINENO: result: $bash_cv_mail_dir" >&5 -echo "${ECHO_T}$bash_cv_mail_dir" >&6 -cat >>confdefs.h <<_ACEOF -#define DEFAULT_MAIL_DIRECTORY "$bash_cv_mail_dir" -_ACEOF - - - -if test "$bash_cv_job_control_missing" = missing; then - opt_job_control=no -fi - -if test "$opt_job_control" = yes; then -cat >>confdefs.h <<\_ACEOF -#define JOB_CONTROL 1 -_ACEOF - -JOBS_O=jobs.o -else -JOBS_O=nojobs.o -fi - - - - -LOCAL_DEFS=-DSHELL - -echo "host_os = ${host_os}" >&6 - -case "${host_os}" in -sysv4.2*) cat >>confdefs.h <<\_ACEOF -#define SVR4_2 1 -_ACEOF - - cat >>confdefs.h <<\_ACEOF -#define SVR4 1 -_ACEOF - ;; -sysv4*) cat >>confdefs.h <<\_ACEOF -#define SVR4 1 -_ACEOF - ;; -sysv5*) cat >>confdefs.h <<\_ACEOF -#define SVR5 1 -_ACEOF - ;; -hpux9*) LOCAL_CFLAGS="-DHPUX9 -DHPUX" ;; -hpux*) LOCAL_CFLAGS=-DHPUX ;; -dgux*) LOCAL_CFLAGS=-D_DGUX_SOURCE; LOCAL_LIBS=-ldgc ;; -isc*) LOCAL_CFLAGS=-Disc386 ;; -rhapsody*) LOCAL_CFLAGS=-DRHAPSODY ;; -darwin*) LOCAL_CFLAGS=-DMACOSX ;; -sco3.2v5*) LOCAL_CFLAGS="-b elf -DWAITPID_BROKEN -DPATH_MAX=1024" ;; -sco3.2v4*) LOCAL_CFLAGS="-DMUST_UNBLOCK_CHLD -DPATH_MAX=1024" ;; -sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;; -sunos4*) LOCAL_CFLAGS=-DSunOS4 ;; -solaris2.5*) LOCAL_CFLAGS=-DSunOS5 ;; -lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;; -linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading -echo "uname -r = `uname -r`" >&6 - case "`uname -r`" in - 2.[456789]*|3*) cat >>confdefs.h <<\_ACEOF -#define PGRP_PIPE 1 -_ACEOF - -echo "defining PGRP_PIPE to 1" >&5 -echo "defining PGRP_PIPE to 1" >&6 - ;; - esac ;; -*qnx*) LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s" LOCAL_LIBS="-lunix -lncurses" ;; -powerux*) LOCAL_LIBS="-lgen" ;; -cygwin*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;; -opennt*|interix*) LOCAL_CFLAGS="-DNO_MAIN_ENV_ARG -DBROKEN_DIRENT_D_INO -D_POSIX_SOURCE" ;; -esac - -case "${host_os}-${CC}" in -aix4.2*-*gcc*) LOCAL_LDFLAGS="-Xlinker -bexpall -Xlinker -brtl" ;; -aix4.2*) LOCAL_LDFLAGS="-bexpall -brtl" ;; -bsdi4*-*gcc*) LOCAL_LDFLAGS="-rdynamic" ;; # allow dynamic loading, like Linux -esac - -case "${host_os}" in -freebsd[3-9]*) - if test -x /usr/bin/objformat && test "`/usr/bin/objformat`" = "elf" ; then - LOCAL_LDFLAGS=-rdynamic # allow dynamic loading - fi ;; -freebsdelf*) LOCAL_LDFLAGS=-rdynamic ;; # allow dynamic loading -esac - -case "$host_cpu" in -*cray*) LOCAL_CFLAGS="-DCRAY" ;; # shell var so config.h can use it -esac - -case "$host_cpu-$host_os" in -ibmrt-*bsd4*) LOCAL_CFLAGS="-ma -U__STDC__" ;; -esac - -case "$host_cpu-$host_vendor-$host_os" in -m88k-motorola-sysv3) LOCAL_CFLAGS=-DWAITPID_BROKEN ;; -mips-pyramid-sysv4) LOCAL_CFLAGS=-Xa ;; -esac - -# -# Shared object configuration section. These values are generated by -# ${srcdir}/support/shobj-conf -# -if test "$ac_cv_func_dlopen" = "yes" && test -f ${srcdir}/support/shobj-conf -then - echo "$as_me:$LINENO: checking shared object configuration for loadable builtins" >&5 -echo $ECHO_N "checking shared object configuration for loadable builtins... $ECHO_C" >&6 - eval `${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C "${CC}" -c "${host_cpu}" -o "${host_os}" -v "${host_vendor}"` - - - - - - - - echo "$as_me:$LINENO: result: $SHOBJ_STATUS" >&5 -echo "${ECHO_T}$SHOBJ_STATUS" >&6 -fi - -# try to create a directory tree if the source is elsewhere -# this should be packaged into a script accessible via ${srcdir}/support -case "$srcdir" in -.) ;; -*) for d in doc tests support lib examples; do # dirs - test -d $d || mkdir $d - done - for ld in readline glob tilde malloc sh termcap; do # libdirs - test -d lib/$ld || mkdir lib/$ld - done - test -d examples/loadables || mkdir examples/loadables # loadable builtins - test -d examples/loadables/perl || mkdir examples/loadables/perl - ;; -esac - -BUILD_DIR=`pwd` -case "$BUILD_DIR" in -*\ *) BUILD_DIR=`echo "$BUILD_DIR" | sed 's: :\\\\ :g'` ;; -*) ;; -esac - - - - - - - - - - - - - - - - - - - - - - - - -#AC_SUBST(ALLOCA_SOURCE) -#AC_SUBST(ALLOCA_OBJECT) - - ac_config_files="$ac_config_files Makefile builtins/Makefile lib/readline/Makefile lib/glob/Makefile lib/intl/Makefile lib/malloc/Makefile lib/sh/Makefile lib/termcap/Makefile lib/tilde/Makefile doc/Makefile support/Makefile po/Makefile.in examples/loadables/Makefile examples/loadables/perl/Makefile pathnames.h" - ac_config_commands="$ac_config_commands default" -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, don't put newlines in cache variables' values. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -{ - (set) 2>&1 | - case `(ac_space=' '; set | grep ac_space) 2>&1` in - *ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" - ;; - esac; -} | - sed ' - t clear - : clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - : end' >>confcache -if diff $cache_file confcache >/dev/null 2>&1; then :; else - if test -w $cache_file; then - test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" - cat confcache >$cache_file - else - echo "not updating unwritable cache $cache_file" - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/; -s/:*\${srcdir}:*/:/; -s/:*@srcdir@:*/:/; -s/^\([^=]*=[ ]*\):*/\1/; -s/:*$//; -s/^[^=]*=[ ]*$//; -}' -fi - -DEFS=-DHAVE_CONFIG_H - -ac_libobjs= -ac_ltlibobjs= -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_i=`echo "$ac_i" | - sed 's/\$U\././;s/\.o$//;s/\.obj$//'` - # 2. Add them. - ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" - ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' -done -LIBOBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - - -: ${CONFIG_STATUS=./config.status} -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 -echo "$as_me: creating $CONFIG_STATUS" >&6;} -cat >$CONFIG_STATUS <<_ACEOF -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false -SHELL=\${CONFIG_SHELL-$SHELL} -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix -fi -DUALCASE=1; export DUALCASE # for MKS sh - -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - - -# Work around bugs in pre-3.0 UWIN ksh. -$as_unset ENV MAIL MAILPATH -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - - -# Name of the executable. -as_me=`$as_basename "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ - . : '\(.\)' 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - /^X\/\(\/\/\)$/{ s//\1/; q; } - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - - -# PATH needs CR, and LINENO needs CR and PATH. -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" || { - # Find who we are. Look in the path if we contain no path at all - # relative or not. - case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done - - ;; - esac - # We did not find ourselves, most probably we were run as `sh COMMAND' - # in which case we are not to be found in the path. - if test "x$as_myself" = x; then - as_myself=$0 - fi - if test ! -f "$as_myself"; then - { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 -echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for as_base in sh bash ksh sh5; do - case $as_dir in - /*) - if ("$as_dir/$as_base" -c ' - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } - CONFIG_SHELL=$as_dir/$as_base - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" ${1+"$@"} - fi;; - esac - done -done -;; - esac - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line before each line; the second 'sed' does the real - # work. The second script uses 'N' to pair each line-number line - # with the numbered line, and appends trailing '-' during - # substitution so that $LINENO is not a special case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=' <$as_myself | - sed ' - N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, - t loop - s,-$,, - s,^['$as_cr_digits']*\n,, - ' >$as_me.lineno && - chmod +x $as_me.lineno || - { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 -echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensible to this). - . ./$as_me.lineno - # Exit status is that of the last command. - exit -} - - -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; -esac - -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s='cp -p' - else - as_ln_s='ln -s' - fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.file - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_executable_p="test -f" - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH - -exec 6>&1 - -# Open the log real soon, to keep \$[0] and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. Logging --version etc. is OK. -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX -} >&5 -cat >&5 <<_CSEOF - -This file was extended by bash $as_me 3.1-devel, which was -generated by GNU Autoconf 2.59. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -_CSEOF -echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 -echo >&5 -_ACEOF - -# Files that config.status was made for. -if test -n "$ac_config_files"; then - echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_headers"; then - echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_links"; then - echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_commands"; then - echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS -fi - -cat >>$CONFIG_STATUS <<\_ACEOF - -ac_cs_usage="\ -\`$as_me' instantiates files from templates according to the -current configuration. - -Usage: $0 [OPTIONS] [FILE]... - - -h, --help print this help, then exit - -V, --version print version number, then exit - -q, --quiet do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - --header=FILE[:TEMPLATE] - instantiate the configuration header FILE - -Configuration files: -$config_files - -Configuration headers: -$config_headers - -Configuration commands: -$config_commands - -Report bugs to ." -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF -ac_cs_version="\\ -bash config.status 3.1-devel -configured by $0, generated by GNU Autoconf 2.59, - with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" - -Copyright (C) 2003 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." -srcdir=$srcdir -INSTALL="$INSTALL" -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -# If no file are specified by the user, then we need to provide default -# value. By we need to know if files were specified by the user. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=*) - ac_option=`expr "x$1" : 'x\([^=]*\)='` - ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` - ac_shift=: - ;; - -*) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - *) # This is not an option, so the user has probably given explicit - # arguments. - ac_option=$1 - ac_need_defaults=false;; - esac - - case $ac_option in - # Handling of the options. -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --vers* | -V ) - echo "$ac_cs_version"; exit 0 ;; - --he | --h) - # Conflict between --help and --header - { { echo "$as_me:$LINENO: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; };; - --help | --hel | -h ) - echo "$ac_cs_usage"; exit 0 ;; - --debug | --d* | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - CONFIG_FILES="$CONFIG_FILES $ac_optarg" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" - ac_need_defaults=false;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; } ;; - - *) ac_config_targets="$ac_config_targets $1" ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF -if \$ac_cs_recheck; then - echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 - exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion -fi - -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF -# -# INIT-COMMANDS section. -# - -# Capture the value of obsolete ALL_LINGUAS because we need it to compute - # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it - # from automake. - eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' - # Capture the value of LINGUAS because we need it to compute CATALOGS. - LINGUAS="${LINGUAS-%UNSET%}" - - -_ACEOF - - - -cat >>$CONFIG_STATUS <<\_ACEOF -for ac_config_target in $ac_config_targets -do - case "$ac_config_target" in - # Handling of arguments. - "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "builtins/Makefile" ) CONFIG_FILES="$CONFIG_FILES builtins/Makefile" ;; - "lib/readline/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/readline/Makefile" ;; - "lib/glob/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/glob/Makefile" ;; - "lib/intl/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/intl/Makefile" ;; - "lib/malloc/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/malloc/Makefile" ;; - "lib/sh/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/sh/Makefile" ;; - "lib/termcap/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/termcap/Makefile" ;; - "lib/tilde/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/tilde/Makefile" ;; - "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; - "support/Makefile" ) CONFIG_FILES="$CONFIG_FILES support/Makefile" ;; - "po/Makefile.in" ) CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; - "examples/loadables/Makefile" ) CONFIG_FILES="$CONFIG_FILES examples/loadables/Makefile" ;; - "examples/loadables/perl/Makefile" ) CONFIG_FILES="$CONFIG_FILES examples/loadables/perl/Makefile" ;; - "pathnames.h" ) CONFIG_FILES="$CONFIG_FILES pathnames.h" ;; - "default-1" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; - "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; - "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; - *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 -echo "$as_me: error: invalid argument: $ac_config_target" >&2;} - { (exit 1); exit 1; }; };; - esac -done - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason to put it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Create a temporary directory, and hook for its removal unless debugging. -$debug || -{ - trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 - trap '{ (exit 1); exit 1; }' 1 2 13 15 -} - -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" -} || -{ - tmp=./confstat$$-$RANDOM - (umask 077 && mkdir $tmp) -} || -{ - echo "$me: cannot create a temporary directory in ." >&2 - { (exit 1); exit 1; } -} - -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF - -# -# CONFIG_FILES section. -# - -# No need to generate the scripts if there are no CONFIG_FILES. -# This happens for instance when ./config.status config.h -if test -n "\$CONFIG_FILES"; then - # Protect against being on the right side of a sed subst in config.status. - sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; - s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF -s,@SHELL@,$SHELL,;t t -s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t -s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t -s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t -s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t -s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t -s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t -s,@exec_prefix@,$exec_prefix,;t t -s,@prefix@,$prefix,;t t -s,@program_transform_name@,$program_transform_name,;t t -s,@bindir@,$bindir,;t t -s,@sbindir@,$sbindir,;t t -s,@libexecdir@,$libexecdir,;t t -s,@datadir@,$datadir,;t t -s,@sysconfdir@,$sysconfdir,;t t -s,@sharedstatedir@,$sharedstatedir,;t t -s,@localstatedir@,$localstatedir,;t t -s,@libdir@,$libdir,;t t -s,@includedir@,$includedir,;t t -s,@oldincludedir@,$oldincludedir,;t t -s,@infodir@,$infodir,;t t -s,@mandir@,$mandir,;t t -s,@build_alias@,$build_alias,;t t -s,@host_alias@,$host_alias,;t t -s,@target_alias@,$target_alias,;t t -s,@DEFS@,$DEFS,;t t -s,@ECHO_C@,$ECHO_C,;t t -s,@ECHO_N@,$ECHO_N,;t t -s,@ECHO_T@,$ECHO_T,;t t -s,@LIBS@,$LIBS,;t t -s,@build@,$build,;t t -s,@build_cpu@,$build_cpu,;t t -s,@build_vendor@,$build_vendor,;t t -s,@build_os@,$build_os,;t t -s,@host@,$host,;t t -s,@host_cpu@,$host_cpu,;t t -s,@host_vendor@,$host_vendor,;t t -s,@host_os@,$host_os,;t t -s,@EMACS@,$EMACS,;t t -s,@lispdir@,$lispdir,;t t -s,@DEBUGGER_START_FILE@,$DEBUGGER_START_FILE,;t t -s,@TESTSCRIPT@,$TESTSCRIPT,;t t -s,@PURIFY@,$PURIFY,;t t -s,@MALLOC_TARGET@,$MALLOC_TARGET,;t t -s,@MALLOC_SRC@,$MALLOC_SRC,;t t -s,@MALLOC_LIB@,$MALLOC_LIB,;t t -s,@MALLOC_LIBRARY@,$MALLOC_LIBRARY,;t t -s,@MALLOC_LDFLAGS@,$MALLOC_LDFLAGS,;t t -s,@MALLOC_DEP@,$MALLOC_DEP,;t t -s,@htmldir@,$htmldir,;t t -s,@HELPDIR@,$HELPDIR,;t t -s,@HELPDIRDEFINE@,$HELPDIRDEFINE,;t t -s,@HELPINSTALL@,$HELPINSTALL,;t t -s,@HELPSTRINGS@,$HELPSTRINGS,;t t -s,@CC@,$CC,;t t -s,@CFLAGS@,$CFLAGS,;t t -s,@LDFLAGS@,$LDFLAGS,;t t -s,@CPPFLAGS@,$CPPFLAGS,;t t -s,@ac_ct_CC@,$ac_ct_CC,;t t -s,@EXEEXT@,$EXEEXT,;t t -s,@OBJEXT@,$OBJEXT,;t t -s,@CPP@,$CPP,;t t -s,@EGREP@,$EGREP,;t t -s,@SIGNAMES_H@,$SIGNAMES_H,;t t -s,@CC_FOR_BUILD@,$CC_FOR_BUILD,;t t -s,@STATIC_LD@,$STATIC_LD,;t t -s,@CFLAGS_FOR_BUILD@,$CFLAGS_FOR_BUILD,;t t -s,@CPPFLAGS_FOR_BUILD@,$CPPFLAGS_FOR_BUILD,;t t -s,@LDFLAGS_FOR_BUILD@,$LDFLAGS_FOR_BUILD,;t t -s,@RL_VERSION@,$RL_VERSION,;t t -s,@RL_MAJOR@,$RL_MAJOR,;t t -s,@RL_MINOR@,$RL_MINOR,;t t -s,@READLINE_LIB@,$READLINE_LIB,;t t -s,@READLINE_DEP@,$READLINE_DEP,;t t -s,@RL_LIBDIR@,$RL_LIBDIR,;t t -s,@RL_INCLUDEDIR@,$RL_INCLUDEDIR,;t t -s,@RL_INCLUDE@,$RL_INCLUDE,;t t -s,@HISTORY_LIB@,$HISTORY_LIB,;t t -s,@HISTORY_DEP@,$HISTORY_DEP,;t t -s,@HIST_LIBDIR@,$HIST_LIBDIR,;t t -s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t -s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t -s,@INSTALL_DATA@,$INSTALL_DATA,;t t -s,@AR@,$AR,;t t -s,@RANLIB@,$RANLIB,;t t -s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t -s,@YACC@,$YACC,;t t -s,@SET_MAKE@,$SET_MAKE,;t t -s,@MAKE_SHELL@,$MAKE_SHELL,;t t -s,@SIZE@,$SIZE,;t t -s,@MKINSTALLDIRS@,$MKINSTALLDIRS,;t t -s,@USE_NLS@,$USE_NLS,;t t -s,@MSGFMT@,$MSGFMT,;t t -s,@GMSGFMT@,$GMSGFMT,;t t -s,@XGETTEXT@,$XGETTEXT,;t t -s,@MSGMERGE@,$MSGMERGE,;t t -s,@ALLOCA@,$ALLOCA,;t t -s,@GLIBC21@,$GLIBC21,;t t -s,@LIBICONV@,$LIBICONV,;t t -s,@LTLIBICONV@,$LTLIBICONV,;t t -s,@INTLBISON@,$INTLBISON,;t t -s,@BUILD_INCLUDED_LIBINTL@,$BUILD_INCLUDED_LIBINTL,;t t -s,@USE_INCLUDED_LIBINTL@,$USE_INCLUDED_LIBINTL,;t t -s,@CATOBJEXT@,$CATOBJEXT,;t t -s,@DATADIRNAME@,$DATADIRNAME,;t t -s,@INSTOBJEXT@,$INSTOBJEXT,;t t -s,@GENCAT@,$GENCAT,;t t -s,@INTLOBJS@,$INTLOBJS,;t t -s,@INTL_LIBTOOL_SUFFIX_PREFIX@,$INTL_LIBTOOL_SUFFIX_PREFIX,;t t -s,@INTLLIBS@,$INTLLIBS,;t t -s,@LIBINTL@,$LIBINTL,;t t -s,@LTLIBINTL@,$LTLIBINTL,;t t -s,@POSUB@,$POSUB,;t t -s,@LIBOBJS@,$LIBOBJS,;t t -s,@INTL_DEP@,$INTL_DEP,;t t -s,@INTL_INC@,$INTL_INC,;t t -s,@LIBINTL_H@,$LIBINTL_H,;t t -s,@SIGLIST_O@,$SIGLIST_O,;t t -s,@TERMCAP_LIB@,$TERMCAP_LIB,;t t -s,@TERMCAP_DEP@,$TERMCAP_DEP,;t t -s,@JOBS_O@,$JOBS_O,;t t -s,@SHOBJ_CC@,$SHOBJ_CC,;t t -s,@SHOBJ_CFLAGS@,$SHOBJ_CFLAGS,;t t -s,@SHOBJ_LD@,$SHOBJ_LD,;t t -s,@SHOBJ_LDFLAGS@,$SHOBJ_LDFLAGS,;t t -s,@SHOBJ_XLDFLAGS@,$SHOBJ_XLDFLAGS,;t t -s,@SHOBJ_LIBS@,$SHOBJ_LIBS,;t t -s,@SHOBJ_STATUS@,$SHOBJ_STATUS,;t t -s,@PROFILE_FLAGS@,$PROFILE_FLAGS,;t t -s,@incdir@,$incdir,;t t -s,@BUILD_DIR@,$BUILD_DIR,;t t -s,@ARFLAGS@,$ARFLAGS,;t t -s,@BASHVERS@,$BASHVERS,;t t -s,@RELSTATUS@,$RELSTATUS,;t t -s,@DEBUG@,$DEBUG,;t t -s,@MALLOC_DEBUG@,$MALLOC_DEBUG,;t t -s,@LOCAL_LIBS@,$LOCAL_LIBS,;t t -s,@LOCAL_CFLAGS@,$LOCAL_CFLAGS,;t t -s,@LOCAL_LDFLAGS@,$LOCAL_LDFLAGS,;t t -s,@LOCAL_DEFS@,$LOCAL_DEFS,;t t -s,@LTLIBOBJS@,$LTLIBOBJS,;t t -CEOF - -_ACEOF - - cat >>$CONFIG_STATUS <<\_ACEOF - # Split the substitutions into bite-sized pieces for seds with - # small command number limits, like on Digital OSF/1 and HP-UX. - ac_max_sed_lines=48 - ac_sed_frag=1 # Number of current file. - ac_beg=1 # First line for current file. - ac_end=$ac_max_sed_lines # Line after last line for current file. - ac_more_lines=: - ac_sed_cmds= - while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - else - sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - fi - if test ! -s $tmp/subs.frag; then - ac_more_lines=false - else - # The purpose of the label and of the branching condition is to - # speed up the sed processing (if there are no `@' at all, there - # is no need to browse any of the substitutions). - # These are the two extra sed commands mentioned above. - (echo ':t - /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" - else - ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" - fi - ac_sed_frag=`expr $ac_sed_frag + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_lines` - fi - done - if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat - fi -fi # test -n "$CONFIG_FILES" - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case $ac_file in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; - esac - - # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. - ac_dir=`(dirname "$ac_file") 2>/dev/null || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac - -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac - - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_builddir$INSTALL ;; - esac - - if test x"$ac_file" != x-; then - { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - rm -f "$ac_file" - fi - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - if test x"$ac_file" = x-; then - configure_input= - else - configure_input="$ac_file. " - fi - configure_input=$configure_input"Generated from `echo $ac_file_in | - sed 's,.*/,,'` by configure." - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - echo "$f";; - *) # Relative - if test -f "$f"; then - # Build tree - echo "$f" - elif test -f "$srcdir/$f"; then - # Source tree - echo "$srcdir/$f" - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF - sed "$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s,@configure_input@,$configure_input,;t t -s,@srcdir@,$ac_srcdir,;t t -s,@abs_srcdir@,$ac_abs_srcdir,;t t -s,@top_srcdir@,$ac_top_srcdir,;t t -s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t -s,@builddir@,$ac_builddir,;t t -s,@abs_builddir@,$ac_abs_builddir,;t t -s,@top_builddir@,$ac_top_builddir,;t t -s,@abs_top_builddir@,$ac_abs_top_builddir,;t t -s,@INSTALL@,$ac_INSTALL,;t t -" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out - rm -f $tmp/stdin - if test x"$ac_file" != x-; then - mv $tmp/out $ac_file - else - cat $tmp/out - rm -f $tmp/out - fi - -done -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -# -# CONFIG_HEADER section. -# - -# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where -# NAME is the cpp macro being defined and VALUE is the value it is being given. -# -# ac_d sets the value in "#define NAME VALUE" lines. -ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' -ac_dB='[ ].*$,\1#\2' -ac_dC=' ' -ac_dD=',;t' -# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". -ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' -ac_uB='$,\1#\2define\3' -ac_uC=' ' -ac_uD=',;t' - -for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case $ac_file in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; - esac - - test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - # Do quote $f, to prevent DOS paths from being IFS'd. - echo "$f";; - *) # Relative - if test -f "$f"; then - # Build tree - echo "$f" - elif test -f "$srcdir/$f"; then - # Source tree - echo "$srcdir/$f" - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } - # Remove the trailing spaces. - sed 's/[ ]*$//' $ac_file_inputs >$tmp/in - -_ACEOF - -# Transform confdefs.h into two sed scripts, `conftest.defines' and -# `conftest.undefs', that substitutes the proper values into -# config.h.in to produce config.h. The first handles `#define' -# templates, and the second `#undef' templates. -# And first: Protect against being on the right side of a sed subst in -# config.status. Protect against being in an unquoted here document -# in config.status. -rm -f conftest.defines conftest.undefs -# Using a here document instead of a string reduces the quoting nightmare. -# Putting comments in sed scripts is not portable. -# -# `end' is used to avoid that the second main sed command (meant for -# 0-ary CPP macros) applies to n-ary macro definitions. -# See the Autoconf documentation for `clear'. -cat >confdef2sed.sed <<\_ACEOF -s/[\\&,]/\\&/g -s,[\\$`],\\&,g -t clear -: clear -s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp -t end -s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp -: end -_ACEOF -# If some macros were called several times there might be several times -# the same #defines, which is useless. Nevertheless, we may not want to -# sort them, since we want the *last* AC-DEFINE to be honored. -uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines -sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs -rm -f confdef2sed.sed - -# This sed command replaces #undef with comments. This is necessary, for -# example, in the case of _POSIX_SOURCE, which is predefined and required -# on some systems where configure will not decide to define it. -cat >>conftest.undefs <<\_ACEOF -s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, -_ACEOF - -# Break up conftest.defines because some shells have a limit on the size -# of here documents, and old seds have small limits too (100 cmds). -echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS -echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS -echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS -echo ' :' >>$CONFIG_STATUS -rm -f conftest.tail -while grep . conftest.defines >/dev/null -do - # Write a limited-size here document to $tmp/defines.sed. - echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS - # Speed up: don't consider the non `#define' lines. - echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS - # Work around the forget-to-reset-the-flag bug. - echo 't clr' >>$CONFIG_STATUS - echo ': clr' >>$CONFIG_STATUS - sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS - echo 'CEOF - sed -f $tmp/defines.sed $tmp/in >$tmp/out - rm -f $tmp/in - mv $tmp/out $tmp/in -' >>$CONFIG_STATUS - sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail - rm -f conftest.defines - mv conftest.tail conftest.defines -done -rm -f conftest.defines -echo ' fi # grep' >>$CONFIG_STATUS -echo >>$CONFIG_STATUS - -# Break up conftest.undefs because some shells have a limit on the size -# of here documents, and old seds have small limits too (100 cmds). -echo ' # Handle all the #undef templates' >>$CONFIG_STATUS -rm -f conftest.tail -while grep . conftest.undefs >/dev/null -do - # Write a limited-size here document to $tmp/undefs.sed. - echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS - # Speed up: don't consider the non `#undef' - echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS - # Work around the forget-to-reset-the-flag bug. - echo 't clr' >>$CONFIG_STATUS - echo ': clr' >>$CONFIG_STATUS - sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS - echo 'CEOF - sed -f $tmp/undefs.sed $tmp/in >$tmp/out - rm -f $tmp/in - mv $tmp/out $tmp/in -' >>$CONFIG_STATUS - sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail - rm -f conftest.undefs - mv conftest.tail conftest.undefs -done -rm -f conftest.undefs - -cat >>$CONFIG_STATUS <<\_ACEOF - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - if test x"$ac_file" = x-; then - echo "/* Generated by configure. */" >$tmp/config.h - else - echo "/* $ac_file. Generated by configure. */" >$tmp/config.h - fi - cat $tmp/in >>$tmp/config.h - rm -f $tmp/in - if test x"$ac_file" != x-; then - if diff $ac_file $tmp/config.h >/dev/null 2>&1; then - { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 -echo "$as_me: $ac_file is unchanged" >&6;} - else - ac_dir=`(dirname "$ac_file") 2>/dev/null || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - rm -f $ac_file - mv $tmp/config.h $ac_file - fi - else - cat $tmp/config.h - rm -f $tmp/config.h - fi -done -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -# -# CONFIG_COMMANDS section. -# -for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue - ac_dest=`echo "$ac_file" | sed 's,:.*,,'` - ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_dir=`(dirname "$ac_dest") 2>/dev/null || -$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_dest" : 'X\(//\)[^/]' \| \ - X"$ac_dest" : 'X\(//\)$' \| \ - X"$ac_dest" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_dest" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac - -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac - - - { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 -echo "$as_me: executing $ac_dest commands" >&6;} - case $ac_dest in - default-1 ) - for ac_file in $CONFIG_FILES; do - # Support "outfile[:infile[:infile...]]" - case "$ac_file" in - *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - esac - # PO directories have a Makefile.in generated from Makefile.in.in. - case "$ac_file" in */Makefile.in) - # Adjust a relative srcdir. - ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` - ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" - ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` - # In autoconf-2.13 it is called $ac_given_srcdir. - # In autoconf-2.50 it is called $srcdir. - test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" - case "$ac_given_srcdir" in - .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; - /*) top_srcdir="$ac_given_srcdir" ;; - *) top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then - rm -f "$ac_dir/POTFILES" - test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" - cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" - POMAKEFILEDEPS="POTFILES.in" - # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend - # on $ac_dir but don't depend on user-specified configuration - # parameters. - if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then - # The LINGUAS file contains the set of available languages. - if test -n "$OBSOLETE_ALL_LINGUAS"; then - test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" - fi - ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"` - # Hide the ALL_LINGUAS assigment from automake. - eval 'ALL_LINGUAS''=$ALL_LINGUAS_' - POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" - else - # The set of available languages was given in configure.in. - eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' - fi - case "$ac_given_srcdir" in - .) srcdirpre= ;; - *) srcdirpre='$(srcdir)/' ;; - esac - POFILES= - GMOFILES= - UPDATEPOFILES= - DUMMYPOFILES= - for lang in $ALL_LINGUAS; do - POFILES="$POFILES $srcdirpre$lang.po" - GMOFILES="$GMOFILES $srcdirpre$lang.gmo" - UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" - DUMMYPOFILES="$DUMMYPOFILES $lang.nop" - done - # CATALOGS depends on both $ac_dir and the user's LINGUAS - # environment variable. - INST_LINGUAS= - if test -n "$ALL_LINGUAS"; then - for presentlang in $ALL_LINGUAS; do - useit=no - if test "%UNSET%" != "$LINGUAS"; then - desiredlanguages="$LINGUAS" - else - desiredlanguages="$ALL_LINGUAS" - fi - for desiredlang in $desiredlanguages; do - # Use the presentlang catalog if desiredlang is - # a. equal to presentlang, or - # b. a variant of presentlang (because in this case, - # presentlang can be used as a fallback for messages - # which are not translated in the desiredlang catalog). - case "$desiredlang" in - "$presentlang"*) useit=yes;; - esac - done - if test $useit = yes; then - INST_LINGUAS="$INST_LINGUAS $presentlang" - fi - done - fi - CATALOGS= - if test -n "$INST_LINGUAS"; then - for lang in $INST_LINGUAS; do - CATALOGS="$CATALOGS $lang.gmo" - done - fi - test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" - sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" - for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do - if test -f "$f"; then - case "$f" in - *.orig | *.bak | *~) ;; - *) cat "$f" >> "$ac_dir/Makefile" ;; - esac - fi - done - fi - ;; - esac - done ;; - default ) -# Makefile uses this timestamp file to record whether config.h is up to date. -echo timestamp > stamp-h - ;; - esac -done -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF - -{ (exit 0); exit 0; } -_ACEOF -chmod +x $CONFIG_STATUS -ac_clean_files=$ac_clean_files_save - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || { (exit 1); exit 1; } -fi diff --git a/cross-build/cygwin32.cache.old b/cross-build/cygwin32.cache.old deleted file mode 100644 index 640390fbf..000000000 --- a/cross-build/cygwin32.cache.old +++ /dev/null @@ -1,42 +0,0 @@ -# This file is a shell script that caches the results of configure -# tests for CYGWIN32 so they don't need to be done when cross-compiling. - -# AC_FUNC_GETPGRP should also define GETPGRP_VOID -ac_cv_func_getpgrp_void=${ac_cv_func_getpgrp_void='yes'} -# AC_FUNC_SETVBUF_REVERSED should not define anything else -ac_cv_func_setvbuf_reversed=${ac_cv_func_setvbuf_reversed='no'} -# on CYGWIN32, system calls do not restart -ac_cv_sys_restartable_syscalls=${ac_cv_sys_restartable_syscalls='no'} -bash_cv_sys_restartable_syscalls=${bash_cv_sys_restartable_syscalls='no'} - -# these may be necessary, but they are currently commented out -#ac_cv_c_bigendian=${ac_cv_c_bigendian='no'} -ac_cv_sizeof_char_p=${ac_cv_sizeof_char_p='4'} -ac_cv_sizeof_int=${ac_cv_sizeof_int='4'} -ac_cv_sizeof_long=${ac_cv_sizeof_long='4'} -ac_cv_sizeof_double=${ac_cv_sizeof_double='8'} - -bash_cv_dup2_broken=${bash_cv_dup2_broken='no'} -bash_cv_pgrp_pipe=${bash_cv_pgrp_pipe='no'} -bash_cv_type_rlimit=${bash_cv_type_rlimit='long'} -bash_cv_decl_under_sys_siglist=${bash_cv_decl_under_sys_siglist='no'} -bash_cv_under_sys_siglist=${bash_cv_under_sys_siglist='no'} -bash_cv_sys_siglist=${bash_cv_sys_siglist='no'} -bash_cv_opendir_not_robust=${bash_cv_opendir_not_robust='no'} -bash_cv_getenv_redef=${bash_cv_getenv_redef='yes'} -bash_cv_printf_declared=${bash_cv_printf_declared='yes'} -bash_cv_ulimit_maxfds=${bash_cv_ulimit_maxfds='no'} -bash_cv_getcwd_calls_popen=${bash_cv_getcwd_calls_popen='no'} -bash_cv_must_reinstall_sighandlers=${bash_cv_must_reinstall_sighandlers='no'} -bash_cv_job_control_missing=${bash_cv_job_control_missing='present'} -bash_cv_sys_named_pipes=${bash_cv_sys_named_pipes='missing'} -bash_cv_func_sigsetjmp=${bash_cv_func_sigsetjmp='missing'} -bash_cv_mail_dir=${bash_cv_mail_dir='unknown'} -bash_cv_func_strcoll_broken=${bash_cv_func_strcoll_broken='no'} - -bash_cv_type_int32_t=${bash_cv_type_int32_t='int'} -bash_cv_type_u_int32_t=${bash_cv_type_u_int32_t='int'} - -ac_cv_type_bits64_t=${ac_cv_type_bits64_t='no'} - -# end of cross-build/cygwin32.cache diff --git a/d b/d deleted file mode 100644 index 2aea13c9f..000000000 --- a/d +++ /dev/null @@ -1,15 +0,0 @@ -*** ../bash-3.0/arrayfunc.c Fri Dec 19 00:03:09 2003 ---- arrayfunc.c Sun Aug 1 20:43:00 2004 -*************** -*** 612,616 **** - - free (t); -! return var; - } - ---- 612,616 ---- - - free (t); -! return (var == 0 || invisible_p (var)) ? (SHELL_VAR *)0 : var; - } - diff --git a/d1 b/d1 deleted file mode 100644 index 8c7a209b7..000000000 --- a/d1 +++ /dev/null @@ -1,145 +0,0 @@ -*** ../bash-3.0-patched/lib/readline/display.c Wed Sep 8 11:07:51 2004 ---- lib/readline/display.c Sat Jan 8 21:51:40 2005 -*************** -*** 181,184 **** ---- 186,201 ---- - static int prompt_physical_chars; - -+ /* Variables to save and restore prompt and display information. */ -+ -+ /* These are getting numerous enough that it's time to create a struct. */ -+ -+ static char *saved_local_prompt; -+ static char *saved_local_prefix; -+ static int saved_last_invisible; -+ static int saved_visible_length; -+ static int saved_prefix_length; -+ static int saved_invis_chars_first_line; -+ static int saved_physical_chars; -+ - /* Expand the prompt string S and return the number of visible - characters in *LP, if LP is not null. This is currently more-or-less -*************** -*** 1797,1803 **** - return ((ISPRINT (uc)) ? 1 : 2); - } -- - /* How to print things in the "echo-area". The prompt is treated as a - mini-modeline. */ - - #if defined (USE_VARARGS) ---- 1825,1831 ---- - return ((ISPRINT (uc)) ? 1 : 2); - } - /* How to print things in the "echo-area". The prompt is treated as a - mini-modeline. */ -+ static int msg_saved_prompt = 0; - - #if defined (USE_VARARGS) -*************** -*** 1830,1835 **** ---- 1858,1874 ---- - va_end (args); - -+ if (saved_local_prompt == 0) -+ { -+ rl_save_prompt (); -+ msg_saved_prompt = 1; -+ } - rl_display_prompt = msg_buf; -+ local_prompt = expand_prompt (msg_buf, &prompt_visible_length, -+ &prompt_last_invisible, -+ &prompt_invis_chars_first_line, -+ &prompt_physical_chars); -+ local_prompt_prefix = (char *)NULL; - (*rl_redisplay_function) (); -+ - return 0; - } -*************** -*** 1841,1846 **** ---- 1880,1897 ---- - sprintf (msg_buf, format, arg1, arg2); - msg_buf[sizeof(msg_buf) - 1] = '\0'; /* overflow? */ -+ - rl_display_prompt = msg_buf; -+ if (saved_local_prompt == 0) -+ { -+ rl_save_prompt (); -+ msg_saved_prompt = 1; -+ } -+ local_prompt = expand_prompt (msg_buf, &prompt_visible_length, -+ &prompt_last_invisible, -+ &prompt_invis_chars_first_line, -+ &prompt_physical_chars); -+ local_prompt_prefix = (char *)NULL; - (*rl_redisplay_function) (); -+ - return 0; - } -*************** -*** 1852,1855 **** ---- 1903,1911 ---- - { - rl_display_prompt = rl_prompt; -+ if (msg_saved_prompt) -+ { -+ rl_restore_prompt (); -+ msg_saved_prompt = 0; -+ } - (*rl_redisplay_function) (); - return 0; -*************** -*** 1866,1878 **** - } - -- /* These are getting numerous enough that it's time to create a struct. */ -- -- static char *saved_local_prompt; -- static char *saved_local_prefix; -- static int saved_last_invisible; -- static int saved_visible_length; -- static int saved_invis_chars_first_line; -- static int saved_physical_chars; -- - void - rl_save_prompt () ---- 1922,1925 ---- -*************** -*** 1880,1883 **** ---- 1927,1931 ---- - saved_local_prompt = local_prompt; - saved_local_prefix = local_prompt_prefix; -+ saved_prefix_length = prompt_prefix_length; - saved_last_invisible = prompt_last_invisible; - saved_visible_length = prompt_visible_length; -*************** -*** 1886,1890 **** - - local_prompt = local_prompt_prefix = (char *)0; -! prompt_last_invisible = prompt_visible_length = 0; - prompt_invis_chars_first_line = prompt_physical_chars = 0; - } ---- 1934,1938 ---- - - local_prompt = local_prompt_prefix = (char *)0; -! prompt_last_invisible = prompt_visible_length = prompt_prefix_length = 0; - prompt_invis_chars_first_line = prompt_physical_chars = 0; - } -*************** -*** 1898,1905 **** ---- 1946,1959 ---- - local_prompt = saved_local_prompt; - local_prompt_prefix = saved_local_prefix; -+ prompt_prefix_length = saved_prefix_length; - prompt_last_invisible = saved_last_invisible; - prompt_visible_length = saved_visible_length; - prompt_invis_chars_first_line = saved_invis_chars_first_line; - prompt_physical_chars = saved_physical_chars; -+ -+ /* can test saved_local_prompt to see if prompt info has been saved. */ -+ saved_local_prompt = saved_local_prefix = (char *)0; -+ saved_last_invisible = saved_visible_length = saved_prefix_length = 0; -+ saved_invis_chars_first_line = saved_physical_chars = 0; - } - diff --git a/d1a b/d1a deleted file mode 100644 index 025bb7c9d..000000000 --- a/d1a +++ /dev/null @@ -1,553 +0,0 @@ -*** ../bash-3.0-patched/execute_cmd.c Sun Jul 4 14:12:58 2004 ---- execute_cmd.c Wed Dec 1 16:50:48 2004 -*************** -*** 1,5 **** - /* execute_command.c -- Execute a COMMAND structure. */ - -! /* Copyright (C) 1987-2003 Free Software Foundation, Inc. - - This file is part of GNU Bash, the Bourne Again SHell. ---- 1,5 ---- - /* execute_command.c -- Execute a COMMAND structure. */ - -! /* Copyright (C) 1987-2004 Free Software Foundation, Inc. - - This file is part of GNU Bash, the Bourne Again SHell. -*************** -*** 161,165 **** - static int execute_while_or_until __P((WHILE_COM *, int)); - static int execute_if_command __P((IF_COM *)); -! static int execute_null_command __P((REDIRECT *, int, int, int, pid_t)); - static void fix_assignment_words __P((WORD_LIST *)); - static int execute_simple_command __P((SIMPLE_COM *, int, int, int, struct fd_bitmap *)); ---- 161,165 ---- - static int execute_while_or_until __P((WHILE_COM *, int)); - static int execute_if_command __P((IF_COM *)); -! static int execute_null_command __P((REDIRECT *, int, int, int)); - static void fix_assignment_words __P((WORD_LIST *)); - static int execute_simple_command __P((SIMPLE_COM *, int, int, int, struct fd_bitmap *)); -*************** -*** 492,496 **** - int exec_result, invert, ignore_return, was_error_trap; - REDIRECT *my_undo_list, *exec_undo_list; -- volatile pid_t last_pid; - volatile int save_line_number; - ---- 492,495 ---- -*************** -*** 649,653 **** - call to execute_simple_command if a longjmp occurs as the - result of a `return' builtin. This is true for sure with gcc. */ -! last_pid = last_made_pid; - was_error_trap = signal_is_trapped (ERROR_TRAP) && signal_is_ignored (ERROR_TRAP) == 0; - ---- 648,652 ---- - call to execute_simple_command if a longjmp occurs as the - result of a `return' builtin. This is true for sure with gcc. */ -! last_made_pid = NO_PID; - was_error_trap = signal_is_trapped (ERROR_TRAP) && signal_is_ignored (ERROR_TRAP) == 0; - -*************** -*** 679,683 **** - when the shell is compiled without job control. */ - if (already_making_children && pipe_out == NO_PIPE && -! last_pid != last_made_pid) - { - stop_pipeline (asynchronous, (COMMAND *)NULL); ---- 678,682 ---- - when the shell is compiled without job control. */ - if (already_making_children && pipe_out == NO_PIPE && -! last_made_pid != NO_PID) - { - stop_pipeline (asynchronous, (COMMAND *)NULL); -*************** -*** 699,710 **** - pipelines) to be waited for twice. */ - exec_result = wait_for (last_made_pid); -- #if defined (RECYCLES_PIDS) -- /* LynxOS, for one, recycles pids very quickly -- so quickly -- that a new process may have the same pid as the last one -- created. This has been reported to fix the problem on that -- OS, and a similar problem on Cygwin. */ -- if (exec_result == 0) -- last_made_pid = NO_PID; -- #endif - } - } ---- 698,701 ---- -*************** -*** 1275,1278 **** ---- 1266,1274 ---- - tcom = (command->type == cm_subshell) ? command->value.Subshell->command : command; - -+ if (command->flags & CMD_TIME_PIPELINE) -+ tcom->flags |= CMD_TIME_PIPELINE; -+ if (command->flags & CMD_TIME_POSIX) -+ tcom->flags |= CMD_TIME_POSIX; -+ - /* Make sure the subshell inherits any CMD_IGNORE_RETURN flag. */ - if ((command->flags & CMD_IGNORE_RETURN) && tcom != command) -*************** -*** 1356,1359 **** ---- 1352,1356 ---- - terminate_current_pipeline (); - kill_current_pipeline (); -+ UNBLOCK_CHILD (oset); - #endif /* JOB_CONTROL */ - last_command_exit_value = EXECUTION_FAILURE; -*************** -*** 1623,1628 **** - xtrace_print_for_command_head (for_command); - -! /* Save this command unless it's a trap command. */ -! if (this_command_name == 0 || (STREQ (this_command_name, "trap") == 0)) - { - FREE (the_printed_command_except_trap); ---- 1620,1626 ---- - xtrace_print_for_command_head (for_command); - -! /* Save this command unless it's a trap command and we're not running -! a debug trap. */ -! if (signal_in_progress (DEBUG_TRAP) == 0 && (this_command_name == 0 || (STREQ (this_command_name, "trap") == 0))) - { - FREE (the_printed_command_except_trap); -*************** -*** 1639,1643 **** - - this_command_name = (char *)NULL; -! v = bind_variable (identifier, list->word->word); - if (readonly_p (v) || noassign_p (v)) - { ---- 1637,1641 ---- - - this_command_name = (char *)NULL; -! v = bind_variable (identifier, list->word->word, 0); - if (readonly_p (v) || noassign_p (v)) - { -*************** -*** 1686,1690 **** - SHELL_VAR *new_value; - -! new_value = bind_variable (identifier, value_cell(old_value)); - new_value->attributes = old_value->attributes; - dispose_variable (old_value); ---- 1684,1688 ---- - SHELL_VAR *new_value; - -! new_value = bind_variable (identifier, value_cell(old_value), 0); - new_value->attributes = old_value->attributes; - dispose_variable (old_value); -*************** -*** 1732,1737 **** - command_string_index = 0; - print_arith_command (new); -! FREE (the_printed_command_except_trap); -! the_printed_command_except_trap = savestring (the_printed_command); - - r = run_debug_trap (); ---- 1730,1738 ---- - command_string_index = 0; - print_arith_command (new); -! if (signal_in_progress (DEBUG_TRAP) == 0) -! { -! FREE (the_printed_command_except_trap); -! the_printed_command_except_trap = savestring (the_printed_command); -! } - - r = run_debug_trap (); -*************** -*** 2040,2045 **** - xtrace_print_select_command_head (select_command); - -! FREE (the_printed_command_except_trap); -! the_printed_command_except_trap = savestring (the_printed_command); - - retval = run_debug_trap (); ---- 2041,2049 ---- - xtrace_print_select_command_head (select_command); - -! if (signal_in_progress (DEBUG_TRAP) == 0 && (this_command_name == 0 || (STREQ (this_command_name, "trap") == 0))) -! { -! FREE (the_printed_command_except_trap); -! the_printed_command_except_trap = savestring (the_printed_command); -! } - - retval = run_debug_trap (); -*************** -*** 2093,2097 **** - } - -! v = bind_variable (identifier, selection); - if (readonly_p (v) || noassign_p (v)) - { ---- 2097,2101 ---- - } - -! v = bind_variable (identifier, selection, 0); - if (readonly_p (v) || noassign_p (v)) - { -*************** -*** 2169,2173 **** - xtrace_print_case_command_head (case_command); - -! if (this_command_name == 0 || (STREQ (this_command_name, "trap") == 0)) - { - FREE (the_printed_command_except_trap); ---- 2173,2177 ---- - xtrace_print_case_command_head (case_command); - -! if (signal_in_progress (DEBUG_TRAP == 0) && (this_command_name == 0 || (STREQ (this_command_name, "trap") == 0))) - { - FREE (the_printed_command_except_trap); -*************** -*** 2186,2197 **** - #endif - -- /* Posix.2 specifies that the WORD is tilde expanded. */ -- if (member ('~', case_command->word->word)) -- { -- word = bash_tilde_expand (case_command->word->word, 0); -- free (case_command->word->word); -- case_command->word->word = word; -- } -- - wlist = expand_word_unsplit (case_command->word, 0); - word = wlist ? string_list (wlist) : savestring (""); ---- 2190,2193 ---- -*************** -*** 2211,2223 **** - for (list = clauses->patterns; list; list = list->next) - { -- /* Posix.2 specifies to tilde expand each member of the pattern -- list. */ -- if (member ('~', list->word->word)) -- { -- pattern = bash_tilde_expand (list->word->word, 0); -- free (list->word->word); -- list->word->word = pattern; -- } -- - es = expand_word_leave_quoted (list->word, 0); - ---- 2207,2210 ---- -*************** -*** 2396,2401 **** - command_string_index = 0; - print_arith_command (arith_command->exp); -! FREE (the_printed_command_except_trap); -! the_printed_command_except_trap = savestring (the_printed_command); - - /* Run the debug trap before each arithmetic command, but do it after we ---- 2383,2392 ---- - command_string_index = 0; - print_arith_command (arith_command->exp); -! -! if (signal_in_progress (DEBUG_TRAP) == 0) -! { -! FREE (the_printed_command_except_trap); -! the_printed_command_except_trap = savestring (the_printed_command); -! } - - /* Run the debug trap before each arithmetic command, but do it after we -*************** -*** 2509,2515 **** - else - #endif /* COND_REGEXP */ -! result = binary_test (cond->op->word, arg1, arg2, TEST_PATMATCH|TEST_ARITHEXP) -! ? EXECUTION_SUCCESS -! : EXECUTION_FAILURE; - if (arg1 != nullstr) - free (arg1); ---- 2500,2512 ---- - else - #endif /* COND_REGEXP */ -! { -! int oe; -! oe = extended_glob; -! extended_glob = 1; -! result = binary_test (cond->op->word, arg1, arg2, TEST_PATMATCH|TEST_ARITHEXP) -! ? EXECUTION_SUCCESS -! : EXECUTION_FAILURE; -! extended_glob = oe; -! } - if (arg1 != nullstr) - free (arg1); -*************** -*** 2547,2552 **** - command_string_index = 0; - print_cond_command (cond_command); -! FREE (the_printed_command_except_trap); -! the_printed_command_except_trap = savestring (the_printed_command); - - /* Run the debug trap before each conditional command, but do it after we ---- 2544,2553 ---- - command_string_index = 0; - print_cond_command (cond_command); -! -! if (signal_in_progress (DEBUG_TRAP) == 0) -! { -! FREE (the_printed_command_except_trap); -! the_printed_command_except_trap = savestring (the_printed_command); -! } - - /* Run the debug trap before each conditional command, but do it after we -*************** -*** 2581,2585 **** - if (arg == 0) - arg = ""; -! var = bind_variable ("_", arg); - VUNSETATTR (var, att_exported); - } ---- 2582,2586 ---- - if (arg == 0) - arg = ""; -! var = bind_variable ("_", arg, 0); - VUNSETATTR (var, att_exported); - } -*************** -*** 2589,2596 **** - supposed to take place. */ - static int -! execute_null_command (redirects, pipe_in, pipe_out, async, old_last_command_subst_pid) - REDIRECT *redirects; - int pipe_in, pipe_out, async; -- pid_t old_last_command_subst_pid; - { - int r; ---- 2590,2596 ---- - supposed to take place. */ - static int -! execute_null_command (redirects, pipe_in, pipe_out, async) - REDIRECT *redirects; - int pipe_in, pipe_out, async; - { - int r; -*************** -*** 2638,2642 **** - if (r != 0) - return (EXECUTION_FAILURE); -! else if (old_last_command_subst_pid != last_command_subst_pid) - return (last_command_exit_value); - else ---- 2638,2642 ---- - if (r != 0) - return (EXECUTION_FAILURE); -! else if (last_command_subst_pid != NO_PID) - return (last_command_exit_value); - else -*************** -*** 2667,2672 **** - if (b == 0 || (b->flags & ASSIGNMENT_BUILTIN) == 0) - return; - } -! w->word->flags |= (W_NOSPLIT|W_NOGLOB|W_TILDEEXP); - } - } ---- 2667,2674 ---- - if (b == 0 || (b->flags & ASSIGNMENT_BUILTIN) == 0) - return; -+ else if (b && (b->flags & ASSIGNMENT_BUILTIN)) -+ words->word->flags |= W_ASSNBLTIN; - } -! w->word->flags |= (W_NOSPLIT|W_NOGLOB|W_TILDEEXP|W_ASSIGNARG); - } - } -*************** -*** 2684,2688 **** - char *command_line, *lastarg, *temp; - int first_word_quoted, result, builtin_is_special, already_forked, dofork; -! pid_t old_last_command_subst_pid, old_last_async_pid; - sh_builtin_func_t *builtin; - SHELL_VAR *func; ---- 2686,2690 ---- - char *command_line, *lastarg, *temp; - int first_word_quoted, result, builtin_is_special, already_forked, dofork; -! pid_t old_last_async_pid; - sh_builtin_func_t *builtin; - SHELL_VAR *func; -*************** -*** 2700,2707 **** - print_simple_command (simple_command); - -! if (this_command_name == 0 || (STREQ (this_command_name, "trap") == 0)) - { - FREE (the_printed_command_except_trap); -! the_printed_command_except_trap = savestring (the_printed_command); - } - ---- 2702,2709 ---- - print_simple_command (simple_command); - -! if (signal_in_progress (DEBUG_TRAP) == 0 && (this_command_name == 0 || (STREQ (this_command_name, "trap") == 0))) - { - FREE (the_printed_command_except_trap); -! the_printed_command_except_trap = the_printed_command ? savestring (the_printed_command) : (char *)0; - } - -*************** -*** 2719,2723 **** - simple_command->words ? (simple_command->words->word->flags & W_QUOTED): 0; - -! old_last_command_subst_pid = last_command_subst_pid; - old_last_async_pid = last_asynchronous_pid; - ---- 2721,2725 ---- - simple_command->words ? (simple_command->words->word->flags & W_QUOTED): 0; - -! last_command_subst_pid = NO_PID; - old_last_async_pid = last_asynchronous_pid; - -*************** -*** 2740,2764 **** - if (dofork) - { -- #if 0 -- /* XXX memory leak if expand_words() error causes a jump_to_top_level */ -- command_line = savestring (the_printed_command); -- #endif -- - /* Do this now, because execute_disk_command will do it anyway in the - vast majority of cases. */ - maybe_make_export_env (); - -- #if 0 -- if (make_child (command_line, async) == 0) -- #else - if (make_child (savestring (the_printed_command), async) == 0) -- #endif - { - already_forked = 1; - simple_command->flags |= CMD_NO_FORK; - -! subshell_environment = (pipe_in != NO_PIPE || pipe_out != NO_PIPE) -! ? (SUBSHELL_PIPE|SUBSHELL_FORK) -! : (SUBSHELL_ASYNC|SUBSHELL_FORK); - - /* We need to do this before piping to handle some really ---- 2742,2759 ---- - if (dofork) - { - /* Do this now, because execute_disk_command will do it anyway in the - vast majority of cases. */ - maybe_make_export_env (); - - if (make_child (savestring (the_printed_command), async) == 0) - { - already_forked = 1; - simple_command->flags |= CMD_NO_FORK; - -! subshell_environment = SUBSHELL_FORK; -! if (pipe_in != NO_PIPE || pipe_out != NO_PIPE) -! subshell_environment |= SUBSHELL_PIPE; -! if (async) -! subshell_environment |= SUBSHELL_ASYNC; - - /* We need to do this before piping to handle some really -*************** -*** 2805,2810 **** - result = execute_null_command (simple_command->redirects, - pipe_in, pipe_out, -! already_forked ? 0 : async, -! old_last_command_subst_pid); - if (already_forked) - exit (result); ---- 2800,2804 ---- - result = execute_null_command (simple_command->redirects, - pipe_in, pipe_out, -! already_forked ? 0 : async); - if (already_forked) - exit (result); -*************** -*** 3060,3064 **** - push_scope (VC_BLTNENV, temporary_env); - if (subshell == 0) -! add_unwind_protect (pop_scope, "1"); - temporary_env = (HASH_TABLE *)NULL; - } ---- 3054,3058 ---- - push_scope (VC_BLTNENV, temporary_env); - if (subshell == 0) -! add_unwind_protect (pop_scope, (flags & CMD_COMMAND_BUILTIN) ? 0 : "1"); - temporary_env = (HASH_TABLE *)NULL; - } -*************** -*** 3106,3110 **** - char *debug_trap, *error_trap, *return_trap; - #if defined (ARRAY_VARS) -! SHELL_VAR *funcname_v, *bash_source_v, *bash_lineno_v; - ARRAY *funcname_a, *bash_source_a, *bash_lineno_a; - #endif ---- 3100,3104 ---- - char *debug_trap, *error_trap, *return_trap; - #if defined (ARRAY_VARS) -! SHELL_VAR *funcname_v, *nfv, *bash_source_v, *bash_lineno_v; - ARRAY *funcname_a, *bash_source_a, *bash_lineno_a; - #endif -*************** -*** 3179,3183 **** ---- 3173,3183 ---- - } - -+ /* Shell functions inherit the RETURN trap if function tracing is on -+ globally or on individually for this function. */ -+ #if 0 - if (return_trap && ((trace_p (var) == 0) && function_trace_mode == 0)) -+ #else -+ if (return_trap && (signal_in_progress (DEBUG_TRAP) || ((trace_p (var) == 0) && function_trace_mode == 0))) -+ #endif - { - if (subshell == 0) -*************** -*** 3232,3236 **** - - if (return_val) -! result = return_catch_value; - else - { ---- 3232,3242 ---- - - if (return_val) -! { -! result = return_catch_value; -! /* Run the RETURN trap in the function's context. */ -! save_current = currently_executing_command; -! run_return_trap (); -! currently_executing_command = save_current; -! } - else - { -*************** -*** 3256,3259 **** ---- 3262,3269 ---- - #else - result = execute_command_internal (fc, 0, NO_PIPE, NO_PIPE, fds_to_close); -+ -+ save_current = currently_executing_command; -+ run_return_trap (); -+ currently_executing_command = save_current; - #endif - showing_function_line = 0; -*************** -*** 3269,3275 **** - funcnest--; - #if defined (ARRAY_VARS) - array_pop (bash_source_a); -- array_pop (funcname_a); - array_pop (bash_lineno_a); - #endif - ---- 3279,3292 ---- - funcnest--; - #if defined (ARRAY_VARS) -+ /* These two variables cannot be unset, and cannot be affected by the -+ function. */ - array_pop (bash_source_a); - array_pop (bash_lineno_a); -+ -+ /* FUNCNAME can be unset, and so can potentially be changed by the -+ function. */ -+ GET_ARRAY_FROM_VAR ("FUNCNAME", nfv, funcname_a); -+ if (nfv == funcname_v) -+ array_pop (funcname_a); - #endif - diff --git a/d1b b/d1b deleted file mode 100644 index 8d93c203e..000000000 --- a/d1b +++ /dev/null @@ -1,91 +0,0 @@ -*** ../bash-2.05b-patched/aclocal.m4 Tue Jun 25 09:45:43 2002 ---- aclocal.m4 Sat Oct 9 15:03:28 2004 -*************** -*** 686,691 **** - - AC_DEFUN(BASH_FUNC_GETCWD, -! [AC_MSG_CHECKING([if getcwd() calls popen()]) -! AC_CACHE_VAL(bash_cv_getcwd_calls_popen, - [AC_TRY_RUN([ - #include ---- 686,691 ---- - - AC_DEFUN(BASH_FUNC_GETCWD, -! [AC_MSG_CHECKING([if getcwd() will dynamically allocate memory]) -! AC_CACHE_VAL(bash_cv_getcwd_malloc, - [AC_TRY_RUN([ - #include -*************** -*** 694,748 **** - #endif - -- #ifndef __STDC__ -- #ifndef const -- #define const -- #endif -- #endif -- -- int popen_called; -- -- FILE * -- popen(command, type) -- const char *command; -- const char *type; -- { -- popen_called = 1; -- return (FILE *)NULL; -- } -- -- FILE *_popen(command, type) -- const char *command; -- const char *type; -- { -- return (popen (command, type)); -- } -- -- int -- pclose(stream) -- FILE *stream; -- { -- return 0; -- } -- -- int -- _pclose(stream) -- FILE *stream; -- { -- return 0; -- } -- - main() - { -! char lbuf[32]; -! popen_called = 0; -! getcwd(lbuf, 32); -! exit (popen_called); - } -! ], bash_cv_getcwd_calls_popen=no, bash_cv_getcwd_calls_popen=yes, -! [AC_MSG_WARN(cannot check whether getcwd calls popen if cross compiling -- defaulting to no) -! bash_cv_getcwd_calls_popen=no] - )]) -! AC_MSG_RESULT($bash_cv_getcwd_calls_popen) -! if test $bash_cv_getcwd_calls_popen = yes; then - AC_DEFINE(GETCWD_BROKEN) - AC_LIBOBJ(getcwd) ---- 694,709 ---- - #endif - - main() - { -! char *xpwd; -! xpwd = getcwd(0, 0); -! exit (xpwd == 0); - } -! ], bash_cv_getcwd_malloc=yes, bash_cv_getcwd_malloc=no, -! [AC_MSG_WARN(cannot check whether getcwd allocates memory when cross-compiling -- defaulting to no) -! bash_cv_getcwd_malloc=no] - )]) -! AC_MSG_RESULT($bash_cv_getcwd_malloc) -! if test $bash_cv_getcwd_malloc = no; then - AC_DEFINE(GETCWD_BROKEN) - AC_LIBOBJ(getcwd) diff --git a/display.c.diff b/display.c.diff deleted file mode 100644 index 635d76d54..000000000 --- a/display.c.diff +++ /dev/null @@ -1,155 +0,0 @@ -*** ../bash-3.0/lib/readline/display.c Thu May 27 22:57:51 2004 ---- lib/readline/display.c Mon Aug 30 11:55:02 2004 -*************** -*** 202,206 **** - { - char *r, *ret, *p; -! int l, rl, last, ignoring, ninvis, invfl, ind, pind, physchars; - - /* Short-circuit if we can. */ ---- 202,206 ---- - { - char *r, *ret, *p; -! int l, rl, last, ignoring, ninvis, invfl, invflset, ind, pind, physchars; - - /* Short-circuit if we can. */ -*************** -*** 223,226 **** ---- 223,227 ---- - - invfl = 0; /* invisible chars in first line of prompt */ -+ invflset = 0; /* we only want to set invfl once */ - - for (rl = ignoring = last = ninvis = physchars = 0, p = pmt; p && *p; p++) -*************** -*** 250,254 **** - *r++ = *p++; - if (!ignoring) -! rl += ind - pind; - else - ninvis += ind - pind; ---- 251,258 ---- - *r++ = *p++; - if (!ignoring) -! { -! rl += ind - pind; -! physchars += _rl_col_width (pmt, pind, ind); -! } - else - ninvis += ind - pind; -*************** -*** 260,273 **** - *r++ = *p; - if (!ignoring) -! rl++; /* visible length byte counter */ - else - ninvis++; /* invisible chars byte counter */ - } - -! if (rl >= _rl_screenwidth) -! invfl = ninvis; -! -! if (ignoring == 0) -! physchars++; - } - } ---- 264,280 ---- - *r++ = *p; - if (!ignoring) -! { -! rl++; /* visible length byte counter */ -! physchars++; -! } - else - ninvis++; /* invisible chars byte counter */ - } - -! if (invflset == 0 && rl >= _rl_screenwidth) -! { -! invfl = ninvis; -! invflset = 1; -! } - } - } -*************** -*** 352,356 **** - &prompt_last_invisible, - (int *)NULL, -! (int *)NULL); - c = *t; *t = '\0'; - /* The portion of the prompt string up to and including the ---- 359,363 ---- - &prompt_last_invisible, - (int *)NULL, -! &prompt_physical_chars); - c = *t; *t = '\0'; - /* The portion of the prompt string up to and including the -*************** -*** 359,363 **** - (int *)NULL, - &prompt_invis_chars_first_line, -! &prompt_physical_chars); - *t = c; - return (prompt_prefix_length); ---- 366,370 ---- - (int *)NULL, - &prompt_invis_chars_first_line, -! (int *)NULL); - *t = c; - return (prompt_prefix_length); -*************** -*** 418,422 **** - register char *line; - int c_pos, inv_botlin, lb_botlin, lb_linenum; -! int newlines, lpos, temp, modmark; - char *prompt_this_line; - #if defined (HANDLE_MULTIBYTE) ---- 425,429 ---- - register char *line; - int c_pos, inv_botlin, lb_botlin, lb_linenum; -! int newlines, lpos, temp, modmark, n0, num; - char *prompt_this_line; - #if defined (HANDLE_MULTIBYTE) -*************** -*** 574,577 **** ---- 581,585 ---- - #if defined (HANDLE_MULTIBYTE) - memset (_rl_wrapped_line, 0, vis_lbsize); -+ num = 0; - #endif - -*************** -*** 592,596 **** ---- 600,619 ---- - prompts that exceed two physical lines? - Additional logic fix from Edward Catmur */ -+ #if defined (HANDLE_MULTIBYTE) -+ n0 = num; -+ temp = local_prompt ? strlen (local_prompt) : 0; -+ while (num < temp) -+ { -+ if (_rl_col_width (local_prompt, n0, num) > _rl_screenwidth) -+ { -+ num = _rl_find_prev_mbchar (local_prompt, num, MB_FIND_ANY); -+ break; -+ } -+ num++; -+ } -+ temp = num + -+ #else - temp = ((newlines + 1) * _rl_screenwidth) + -+ #endif /* !HANDLE_MULTIBYTE */ - ((local_prompt_prefix == 0) ? ((newlines == 0) ? prompt_invis_chars_first_line - : ((newlines == 1) ? wrap_offset : 0)) -*************** -*** 598,602 **** ---- 621,629 ---- - - inv_lbreaks[++newlines] = temp; -+ #if defined (HANDLE_MULTIBYTE) -+ lpos -= _rl_col_width (local_prompt, n0, num); -+ #else - lpos -= _rl_screenwidth; -+ #endif - } - diff --git a/general.c.diff b/general.c.diff deleted file mode 100644 index 6c3d76b3c..000000000 --- a/general.c.diff +++ /dev/null @@ -1,15 +0,0 @@ -*** ../bash-3.0-patched/general.c Wed Apr 14 23:20:13 2004 ---- general.c Wed Oct 20 16:59:59 2004 -*************** -*** 268,272 **** - - #if defined (ARRAY_VARS) -! if ((legal_variable_starter (c) == 0) && (flags && c != '[')) /* ] */ - #else - if (legal_variable_starter (c) == 0) ---- 268,272 ---- - - #if defined (ARRAY_VARS) -! if ((legal_variable_starter (c) == 0) && (flags == 0 || c != '[')) /* ] */ - #else - if (legal_variable_starter (c) == 0) diff --git a/jobs.c.diff b/jobs.c.diff deleted file mode 100644 index 8fe3d238a..000000000 --- a/jobs.c.diff +++ /dev/null @@ -1,81 +0,0 @@ -*** ../bash-3.0/jobs.c Fri Apr 23 16:28:25 2004 ---- jobs.c Wed Aug 18 11:15:07 2004 -*************** -*** 998,1002 **** - - if (job != NO_JOB) -! printf ("[%d] %ld\n", job + 1, (long)pid); - else - programming_error (_("describe_pid: %ld: no such pid"), (long)pid); ---- 998,1002 ---- - - if (job != NO_JOB) -! fprintf (stderr, "[%d] %ld\n", job + 1, (long)pid); - else - programming_error (_("describe_pid: %ld: no such pid"), (long)pid); -*************** -*** 1779,1784 **** - { - fail = 0; -! for (p = jobs[job]->pipe; p->next != jobs[job]->pipe; p = p->next) -! if (p->status != EXECUTION_SUCCESS) fail = p->status; - return fail; - } ---- 1779,1789 ---- - { - fail = 0; -! p = jobs[job]->pipe; -! do -! { -! if (p->status != EXECUTION_SUCCESS) fail = p->status; -! p = p->next; -! } -! while (p != jobs[job]->pipe); - return fail; - } -*************** -*** 2312,2321 **** - - if (foreground == 0) -! fprintf (stderr, "[%d]%c ", job + 1, - (job == current_job) ? '+': ((job == previous_job) ? '-' : ' ')); - - do - { -! fprintf (stderr, "%s%s", - p->command ? p->command : "", - p->next != jobs[job]->pipe? " | " : ""); ---- 2317,2326 ---- - - if (foreground == 0) -! printf ("[%d]%c ", job + 1, - (job == current_job) ? '+': ((job == previous_job) ? '-' : ' ')); - - do - { -! printf ("%s%s", - p->command ? p->command : "", - p->next != jobs[job]->pipe? " | " : ""); -*************** -*** 2325,2334 **** - - if (foreground == 0) -! fprintf (stderr, " &"); - - if (strcmp (wd, jobs[job]->wd) != 0) -! fprintf (stderr, " (wd: %s)", polite_directory_format (jobs[job]->wd)); - -! fprintf (stderr, "\n"); - - /* Run the job. */ ---- 2330,2339 ---- - - if (foreground == 0) -! printf (" &"); - - if (strcmp (wd, jobs[job]->wd) != 0) -! printf (" (wd: %s)", polite_directory_format (jobs[job]->wd)); - -! printf ("\n"); - - /* Run the job. */ diff --git a/jobs.c.instrumented b/jobs.c.instrumented deleted file mode 100644 index 611dfeaed..000000000 --- a/jobs.c.instrumented +++ /dev/null @@ -1,3699 +0,0 @@ -/* The thing that makes children, remembers them, and contains wait loops. */ - -/* This file works with both POSIX and BSD systems. It implements job - control. */ - -/* Copyright (C) 1989-2005 Free Software Foundation, Inc. - - This file is part of GNU Bash, the Bourne Again SHell. - - Bash is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License as published by the Free - Software Foundation; either version 2, or (at your option) any later - version. - - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with Bash; see the file COPYING. If not, write to the Free Software - Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ - -#include "config.h" - -#include "bashtypes.h" -#include "trap.h" -#include -#include -#include - -#if defined (HAVE_UNISTD_H) -# include -#endif - -#include "posixtime.h" - -#if defined (HAVE_SYS_RESOURCE_H) && defined (HAVE_WAIT3) && !defined (_POSIX_VERSION) && !defined (RLIMTYPE) -# include -#endif /* !_POSIX_VERSION && HAVE_SYS_RESOURCE_H && HAVE_WAIT3 && !RLIMTYPE */ - -#if defined (HAVE_SYS_FILE_H) -# include -#endif - -#include "filecntl.h" -#include -#include - -#if defined (BUFFERED_INPUT) -# include "input.h" -#endif - -/* Need to include this up here for *_TTY_DRIVER definitions. */ -#include "shtty.h" - -/* Define this if your output is getting swallowed. It's a no-op on - machines with the termio or termios tty drivers. */ -/* #define DRAIN_OUTPUT */ - -/* For the TIOCGPGRP and TIOCSPGRP ioctl parameters on HP-UX */ -#if defined (hpux) && !defined (TERMIOS_TTY_DRIVER) -# include -#endif /* hpux && !TERMIOS_TTY_DRIVER */ - -#if !defined (STRUCT_WINSIZE_IN_SYS_IOCTL) -/* For struct winsize on SCO */ -/* sys/ptem.h has winsize but needs mblk_t from sys/stream.h */ -# if defined (HAVE_SYS_PTEM_H) && defined (TIOCGWINSZ) && defined (SIGWINCH) -# if defined (HAVE_SYS_STREAM_H) -# include -# endif -# include -# endif /* HAVE_SYS_PTEM_H && TIOCGWINSZ && SIGWINCH */ -#endif /* !STRUCT_WINSIZE_IN_SYS_IOCTL */ - -#include "bashansi.h" -#include "bashintl.h" -#include "shell.h" -#include "jobs.h" -#include "flags.h" - -#include "builtins/builtext.h" -#include "builtins/common.h" - -#if !defined (errno) -extern int errno; -#endif /* !errno */ - -#define DEFAULT_CHILD_MAX 32 -#define MAX_JOBS_IN_ARRAY 4096 /* testing */ - -/* Take care of system dependencies that must be handled when waiting for - children. The arguments to the WAITPID macro match those to the Posix.1 - waitpid() function. */ - -#if defined (ultrix) && defined (mips) && defined (_POSIX_VERSION) -# define WAITPID(pid, statusp, options) \ - wait3 ((union wait *)statusp, options, (struct rusage *)0) -#else -# if defined (_POSIX_VERSION) || defined (HAVE_WAITPID) -# define WAITPID(pid, statusp, options) \ - waitpid ((pid_t)pid, statusp, options) -# else -# if defined (HAVE_WAIT3) -# define WAITPID(pid, statusp, options) \ - wait3 (statusp, options, (struct rusage *)0) -# else -# define WAITPID(pid, statusp, options) \ - wait3 (statusp, options, (int *)0) -# endif /* HAVE_WAIT3 */ -# endif /* !_POSIX_VERSION && !HAVE_WAITPID*/ -#endif /* !(Ultrix && mips && _POSIX_VERSION) */ - -/* getpgrp () varies between systems. Even systems that claim to be - Posix.1 compatible lie sometimes (Ultrix, SunOS4, apollo). */ -#if defined (GETPGRP_VOID) -# define getpgid(p) getpgrp () -#else -# define getpgid(p) getpgrp (p) -#endif /* !GETPGRP_VOID */ - -/* If the system needs it, REINSTALL_SIGCHLD_HANDLER will reinstall the - handler for SIGCHLD. */ -#if defined (MUST_REINSTALL_SIGHANDLERS) -# define REINSTALL_SIGCHLD_HANDLER signal (SIGCHLD, sigchld_handler) -#else -# define REINSTALL_SIGCHLD_HANDLER -#endif /* !MUST_REINSTALL_SIGHANDLERS */ - -/* Some systems let waitpid(2) tell callers about stopped children. */ -#if !defined (WCONTINUED) || defined (WCONTINUED_BROKEN) -# undef WCONTINUED -# define WCONTINUED 0 -#endif -#if !defined (WIFCONTINUED) -# define WIFCONTINUED(s) (0) -#endif - -/* The number of additional slots to allocate when we run out. */ -#define JOB_SLOTS 8 - -typedef int sh_job_map_func_t __P((JOB *, int, int, int)); - -#if defined (READLINE) -extern void rl_set_screen_size __P((int, int)); -#endif - -/* Variables used here but defined in other files. */ -extern int subshell_environment, line_number; -extern int posixly_correct, shell_level; -extern int interrupt_immediately; -extern int last_command_exit_value, last_command_exit_signal; -extern int loop_level, breaking; -extern int sourcelevel; -extern sh_builtin_func_t *this_shell_builtin; -extern char *shell_name, *this_command_name; -extern sigset_t top_level_mask; -extern procenv_t wait_intr_buf; -extern int wait_signal_received; -extern WORD_LIST *subst_assign_varlist; - -struct jobstats js = { -1L, 0, 0, 0, 0, 0, 0, 0, 0, 0, NO_JOB, NO_JOB }; - -/* The array of known jobs. */ -JOB **jobs = (JOB **)NULL; - -#if 0 -/* The number of slots currently allocated to JOBS. */ -int job_slots = 0; -#endif - -/* The controlling tty for this shell. */ -int shell_tty = -1; - -/* The shell's process group. */ -pid_t shell_pgrp = NO_PID; - -/* The terminal's process group. */ -pid_t terminal_pgrp = NO_PID; - -/* The process group of the shell's parent. */ -pid_t original_pgrp = NO_PID; - -/* The process group of the pipeline currently being made. */ -pid_t pipeline_pgrp = (pid_t)0; - -#if defined (PGRP_PIPE) -/* Pipes which each shell uses to communicate with the process group leader - until all of the processes in a pipeline have been started. Then the - process leader is allowed to continue. */ -int pgrp_pipe[2] = { -1, -1 }; -#endif - -#if 0 -/* The job which is current; i.e. the one that `%+' stands for. */ -int current_job = NO_JOB; - -/* The previous job; i.e. the one that `%-' stands for. */ -int previous_job = NO_JOB; -#endif - -/* Last child made by the shell. */ -pid_t last_made_pid = NO_PID; - -/* Pid of the last asynchronous child. */ -pid_t last_asynchronous_pid = NO_PID; - -/* The pipeline currently being built. */ -PROCESS *the_pipeline = (PROCESS *)NULL; - -/* If this is non-zero, do job control. */ -int job_control = 1; - -/* Call this when you start making children. */ -int already_making_children = 0; - -/* If this is non-zero, $LINES and $COLUMNS are reset after every process - exits from get_tty_state(). */ -int check_window_size; - -/* Functions local to this file. */ - -static void get_new_window_size __P((int)); - -static void run_sigchld_trap __P((int)); - -static sighandler wait_sigint_handler __P((int)); -static sighandler sigchld_handler __P((int)); -static sighandler sigwinch_sighandler __P((int)); -static sighandler sigcont_sighandler __P((int)); -static sighandler sigstop_sighandler __P((int)); - -static int waitchld __P((pid_t, int)); - -static PROCESS *find_pipeline __P((pid_t, int, int *)); - -static char *current_working_directory __P((void)); -static char *job_working_directory __P((void)); -static char *j_strsignal __P((int)); -static char *printable_job_status __P((int, PROCESS *, int)); - -static pid_t find_last_pid __P((int, int)); - -static int set_new_line_discipline __P((int)); -static int map_over_jobs __P((sh_job_map_func_t *, int, int)); -static int job_last_stopped __P((int)); -static int job_last_running __P((int)); -static int most_recent_job_in_state __P((int, JOB_STATE)); -static int find_job __P((pid_t, int)); -static int print_job __P((JOB *, int, int, int)); -static int process_exit_status __P((WAIT)); -static int process_exit_signal __P((WAIT)); -static int job_exit_status __P((int)); -static int job_exit_signal __P((int)); -static int set_job_status_and_cleanup __P((int)); - -static WAIT raw_job_exit_status __P((int)); - -static void notify_of_job_status __P((void)); -static void reset_job_indices __P((void)); -static void cleanup_dead_jobs __P((void)); -static int processes_in_job __P((int)); -static void realloc_jobs_list __P((void)); -static int compact_jobs_list __P((int)); -static int discard_pipeline __P((PROCESS *)); -static void add_process __P((char *, pid_t)); -static void print_pipeline __P((PROCESS *, int, int, FILE *)); -static void pretty_print_job __P((int, int, FILE *)); -static void set_current_job __P((int)); -static void reset_current __P((void)); -static void set_job_running __P((int)); -static void setjstatus __P((int)); -static void mark_all_jobs_as_dead __P((void)); -static void mark_dead_jobs_as_notified __P((int)); -static void restore_sigint_handler __P((void)); -#if defined (PGRP_PIPE) -static void pipe_read __P((int *)); -static void pipe_close __P((int *)); -#endif - -#if defined (ARRAY_VARS) -static int *pstatuses; /* list of pipeline statuses */ -static int statsize; -#endif - -/* Used to synchronize between wait_for and other functions and the SIGCHLD - signal handler. */ -static int sigchld; -static int queue_sigchld; - -#define QUEUE_SIGCHLD(os) (os) = sigchld, queue_sigchld++ - -#define UNQUEUE_SIGCHLD(os) \ - do { \ - queue_sigchld--; \ - if (queue_sigchld == 0 && os != sigchld) \ - waitchld (-1, 0); \ - } while (0) - -static SigHandler *old_tstp, *old_ttou, *old_ttin; -static SigHandler *old_cont = (SigHandler *)SIG_DFL; - -#if defined (TIOCGWINSZ) && defined (SIGWINCH) -static SigHandler *old_winch = (SigHandler *)SIG_DFL; -#endif - -/* A place to temporarily save the current pipeline. */ -static PROCESS *saved_pipeline; -static int saved_already_making_children; - -/* Set this to non-zero whenever you don't want the jobs list to change at - all: no jobs deleted and no status change notifications. This is used, - for example, when executing SIGCHLD traps, which may run arbitrary - commands. */ -static int jobs_list_frozen; - -static char retcode_name_buffer[64]; - -#if !defined (_POSIX_VERSION) - -/* These are definitions to map POSIX 1003.1 functions onto existing BSD - library functions and system calls. */ -#define setpgid(pid, pgrp) setpgrp (pid, pgrp) -#define tcsetpgrp(fd, pgrp) ioctl ((fd), TIOCSPGRP, &(pgrp)) - -pid_t -tcgetpgrp (fd) - int fd; -{ - pid_t pgrp; - - /* ioctl will handle setting errno correctly. */ - if (ioctl (fd, TIOCGPGRP, &pgrp) < 0) - return (-1); - return (pgrp); -} - -#endif /* !_POSIX_VERSION */ - -/* Return the working directory for the current process. Unlike - job_working_directory, this does not call malloc (), nor do any - of the functions it calls. This is so that it can safely be called - from a signal handler. */ -static char * -current_working_directory () -{ - char *dir; - static char d[PATH_MAX]; - - dir = get_string_value ("PWD"); - - if (dir == 0 && the_current_working_directory && no_symbolic_links) - dir = the_current_working_directory; - - if (dir == 0) - { - dir = getcwd (d, sizeof(d)); - if (dir) - dir = d; - } - - return (dir == 0) ? "" : dir; -} - -/* Return the working directory for the current process. */ -static char * -job_working_directory () -{ - char *dir; - - dir = get_string_value ("PWD"); - if (dir) - return (savestring (dir)); - - dir = get_working_directory ("job-working-directory"); - if (dir) - return (dir); - - return (savestring ("")); -} - -void -making_children () -{ - if (already_making_children) - return; - - already_making_children = 1; - start_pipeline (); -} - -void -stop_making_children () -{ - already_making_children = 0; -} - -void -cleanup_the_pipeline () -{ - if (the_pipeline) - { - discard_pipeline (the_pipeline); - the_pipeline = (PROCESS *)NULL; - } -} - -void -save_pipeline (clear) - int clear; -{ - saved_pipeline = the_pipeline; - saved_already_making_children = already_making_children; - if (clear) - the_pipeline = (PROCESS *)NULL; -} - -void -restore_pipeline (discard) - int discard; -{ - PROCESS *old_pipeline; - - old_pipeline = the_pipeline; - the_pipeline = saved_pipeline; - already_making_children = saved_already_making_children; - if (discard) - discard_pipeline (old_pipeline); -} - -/* Start building a pipeline. */ -void -start_pipeline () -{ - if (the_pipeline) - { - cleanup_the_pipeline (); - pipeline_pgrp = 0; -#if defined (PGRP_PIPE) - pipe_close (pgrp_pipe); -#endif - } - -#if defined (PGRP_PIPE) - if (job_control) - { - if (pipe (pgrp_pipe) == -1) - sys_error ("start_pipeline: pgrp pipe"); - } -#endif -} - -/* Stop building a pipeline. Install the process list in the job array. - This returns the index of the newly installed job. - DEFERRED is a command structure to be executed upon satisfactory - execution exit of this pipeline. */ -int -stop_pipeline (async, deferred) - int async; - COMMAND *deferred; -{ - register int i, j; - JOB *newjob; - sigset_t set, oset; - - BLOCK_CHILD (set, oset); - -#if defined (PGRP_PIPE) - /* The parent closes the process group synchronization pipe. */ - pipe_close (pgrp_pipe); -#endif - - cleanup_dead_jobs (); - - if (js.j_jobslots == 0) - { - js.j_jobslots = JOB_SLOTS; - jobs = (JOB **)xmalloc (js.j_jobslots * sizeof (JOB *)); - - /* Now blank out these new entries. */ - for (i = 0; i < js.j_jobslots; i++) - jobs[i] = (JOB *)NULL; - - js.j_firstj = js.j_lastj = js.j_njobs = 0; - } - - /* Scan from the last slot backward, looking for the next free one. */ - /* XXX - revisit this interactive assumption */ - /* XXX - this way for now */ - if (interactive) - { - for (i = js.j_jobslots; i; i--) - if (jobs[i - 1]) - break; - } - else - { -#if 0 - /* This wraps around, but makes it inconvenient to extend the array */ - for (i = js.j_lastj+1; i != js.j_lastj; i++) - { - if (i >= js.j_jobslots) - i = 0; - if (jobs[i] == 0) - break; - } - if (i == js.j_lastj) - i = js.j_jobslots; -#else - /* This doesn't wrap around yet. */ - for (i = js.j_lastj ? js.j_lastj + 1 : js.j_lastj; i < js.j_jobslots; i++) - if (jobs[i] == 0) - break; -#endif - } - - /* Do we need more room? */ - - /* First try compaction */ - if ((interactive_shell == 0 || subshell_environment) && i == js.j_jobslots && js.j_jobslots >= MAX_JOBS_IN_ARRAY) - i = compact_jobs_list (0); - - /* If we can't compact, reallocate */ - if (i == js.j_jobslots) - { - js.j_jobslots += JOB_SLOTS; - jobs = (JOB **)xrealloc (jobs, (js.j_jobslots * sizeof (JOB *))); - - for (j = i; j < js.j_jobslots; j++) - jobs[j] = (JOB *)NULL; - } - - /* Add the current pipeline to the job list. */ - if (the_pipeline) - { - register PROCESS *p; - int any_alive, any_stopped, n; - - newjob = (JOB *)xmalloc (sizeof (JOB)); - - for (n = 0, p = the_pipeline; p->next != the_pipeline; n++, p = p->next) - ; - p->next = (PROCESS *)NULL; - newjob->pipe = REVERSE_LIST (the_pipeline, PROCESS *); - for (p = newjob->pipe; p->next; p = p->next) - ; - p->next = newjob->pipe; - - the_pipeline = (PROCESS *)NULL; - newjob->pgrp = pipeline_pgrp; - pipeline_pgrp = 0; - - newjob->flags = 0; - - /* Flag to see if in another pgrp. */ - if (job_control) - newjob->flags |= J_JOBCONTROL; - - /* Set the state of this pipeline. */ - p = newjob->pipe; - any_alive = any_stopped = 0; - do - { - any_alive |= p->running; - any_stopped |= WIFSTOPPED (p->status); - p = p->next; - } - while (p != newjob->pipe); - - newjob->state = any_alive ? JRUNNING : (any_stopped ? JSTOPPED : JDEAD); - newjob->wd = job_working_directory (); - newjob->deferred = deferred; - - newjob->j_cleanup = (sh_vptrfunc_t *)NULL; - newjob->cleanarg = (PTR_T) NULL; - - jobs[i] = newjob; - if (newjob->state == JDEAD && (newjob->flags & J_FOREGROUND)) - setjstatus (i); - - js.c_injobs += n; - - js.j_lastj = i; -itrace("stop_pipeline: set js.j_lastj = %d", js.j_lastj); - js.j_njobs++; - } - else - newjob = (JOB *)NULL; - - if (async) - { - if (newjob) - newjob->flags &= ~J_FOREGROUND; - reset_current (); - } - else - { - if (newjob) - { - newjob->flags |= J_FOREGROUND; - /* - * !!!!! NOTE !!!!! (chet@ins.cwru.edu) - * - * The currently-accepted job control wisdom says to set the - * terminal's process group n+1 times in an n-step pipeline: - * once in the parent and once in each child. This is where - * the parent gives it away. - * - */ - if (job_control && newjob->pgrp) - give_terminal_to (newjob->pgrp, 0); - } - } - - stop_making_children (); - UNBLOCK_CHILD (oset); - return (js.j_current); -} - -/* Reset the values of js.j_lastj and js.j_firstj after one or both have - been deleted. The caller should check whether js.j_njobs is 0 before - calling this. */ -static void -reset_job_indices () -{ - int old; - - if (jobs[js.j_firstj] == 0) - { - old = js.j_firstj++; - while (js.j_firstj != old) - { - if (js.j_firstj >= js.j_jobslots) - js.j_firstj = 0; - if (jobs[js.j_firstj]) - break; - js.j_firstj++; - } - if (js.j_firstj == old) - js.j_firstj = js.j_lastj = js.j_njobs = 0; -itrace("reset_job_indices: reset js.j_firstj from %d to %d", old, js.j_firstj); - } - if (jobs[js.j_lastj] == 0) - { - old = js.j_lastj--; - while (js.j_lastj != old) - { - if (js.j_lastj < 0) - js.j_lastj = js.j_jobslots - 1; - if (jobs[js.j_lastj]) - break; - js.j_lastj--; - } - if (js.j_lastj == old) - js.j_firstj = js.j_lastj = js.j_njobs = 0; -itrace("reset_job_indices: reset js.j_lastj from %d to %d", old, js.j_lastj); - } -} - -/* Delete all DEAD jobs that the user had received notification about. */ -static void -cleanup_dead_jobs () -{ - register int i; - int os; - - if (js.j_jobslots == 0 || jobs_list_frozen) - return; - - QUEUE_SIGCHLD(os); - - /* XXX could use js.j_firstj here */ - for (i = 0; i < js.j_jobslots; i++) -{ -if (i < js.j_firstj && jobs[i]) - itrace("cleanup_dead_jobs: job %d non-null before js.j_firstj (%d)", i, js.j_firstj); - - if (jobs[i] && DEADJOB (i) && IS_NOTIFIED (i)) - delete_job (i, 0); -} - UNQUEUE_SIGCHLD(os); -} - -static int -processes_in_job (job) -{ - int nproc; - register PROCESS *p; - - nproc = 0; - p = jobs[job]->pipe; - do - { - p = p->next; - nproc++; - } - while (p != jobs[job]->pipe); - - return nproc; -} - -/* Reallocate and compress the jobs list. This returns with a jobs array - whose size is a multiple of JOB_SLOTS and can hold the current number of - jobs. Heuristics are used to minimize the number of new reallocs. */ -static void -realloc_jobs_list () -{ - sigset_t set, oset; - int nsize, i, j; - JOB **nlist; - - nsize = ((js.j_njobs + JOB_SLOTS - 1) / JOB_SLOTS); - nsize *= JOB_SLOTS; - i = js.j_njobs % JOB_SLOTS; - if (i == 0 || i > (JOB_SLOTS >> 1)) - nsize += JOB_SLOTS; - - BLOCK_CHILD (set, oset); - nlist = (JOB **) xmalloc (nsize * sizeof (JOB *)); - for (i = j = 0; i < js.j_jobslots; i++) - if (jobs[i]) - nlist[j++] = jobs[i]; - - js.j_firstj = 0; - js.j_lastj = (j > 0) ? j - 1: 0; - js.j_jobslots = nsize; - - free (jobs); - jobs = nlist; - - UNBLOCK_CHILD (oset); -} - -/* Compact the jobs list by removing dead jobs. Assumed that we have filled - the jobs array to some predefined maximum. Called when the shell is not - the foreground process (subshell_environment != 0). Returns the first - available slot in the compacted list. If that value is js.j_jobslots, then - the list needs to be reallocated. The jobs array is in new memory if - this returns > 0 and < js.j_jobslots. FLAGS is reserved for future use. */ -static int -compact_jobs_list (flags) - int flags; -{ - if (js.j_jobslots == 0 || jobs_list_frozen) - return js.j_jobslots; - - reap_dead_jobs (); - realloc_jobs_list (); - - return (js.j_lastj); -} - -/* Delete the job at INDEX from the job list. Must be called - with SIGCHLD blocked. */ -void -delete_job (job_index, warn_stopped) - int job_index, warn_stopped; -{ - register JOB *temp; - int ndel; - - if (js.j_jobslots == 0 || jobs_list_frozen) - return; - - if (warn_stopped && subshell_environment == 0 && STOPPED (job_index)) - internal_warning (_("deleting stopped job %d with process group %ld"), job_index+1, (long)jobs[job_index]->pgrp); - - temp = jobs[job_index]; - if (job_index == js.j_current || job_index == js.j_previous) - reset_current (); - - jobs[job_index] = (JOB *)NULL; - - free (temp->wd); - ndel = discard_pipeline (temp->pipe); - - js.c_injobs -= ndel; - if (temp->state == JDEAD) - js.c_reaped -= ndel; - - if (temp->deferred) - dispose_command (temp->deferred); - - free (temp); - -itrace("delete_job: deleted job %d", job_index); - js.j_njobs--; - if (js.j_njobs == 0) - js.j_firstj = js.j_lastj = 0; - else if (jobs[js.j_firstj] == 0 || jobs[js.j_lastj] == 0) - reset_job_indices (); -} - -/* Must be called with SIGCHLD blocked. */ -void -nohup_job (job_index) - int job_index; -{ - register JOB *temp; - - if (js.j_jobslots == 0) - return; - - if (temp = jobs[job_index]) - temp->flags |= J_NOHUP; -} - -/* Get rid of the data structure associated with a process chain. */ -static int -discard_pipeline (chain) - register PROCESS *chain; -{ - register PROCESS *this, *next; - int n; - - this = chain; - n = 0; - do - { - next = this->next; - FREE (this->command); - free (this); - n++; - this = next; - } - while (this != chain); - - return n; -} - -/* Add this process to the chain being built in the_pipeline. - NAME is the command string that will be exec'ed later. - PID is the process id of the child. */ -static void -add_process (name, pid) - char *name; - pid_t pid; -{ - PROCESS *t, *p; - - t = (PROCESS *)xmalloc (sizeof (PROCESS)); - t->next = the_pipeline; - t->pid = pid; - WSTATUS (t->status) = 0; - t->running = PS_RUNNING; - t->command = name; - the_pipeline = t; - - if (t->next == 0) - t->next = t; - else - { - p = t->next; - while (p->next != t->next) - p = p->next; - p->next = t; - } -} - -#if 0 -/* Take the last job and make it the first job. Must be called with - SIGCHLD blocked. */ -int -rotate_the_pipeline () -{ - PROCESS *p; - - if (the_pipeline->next == the_pipeline) - return; - for (p = the_pipeline; p->next != the_pipeline; p = p->next) - ; - the_pipeline = p; -} - -/* Reverse the order of the processes in the_pipeline. Must be called with - SIGCHLD blocked. */ -int -reverse_the_pipeline () -{ - PROCESS *p, *n; - - if (the_pipeline->next == the_pipeline) - return; - - for (p = the_pipeline; p->next != the_pipeline; p = p->next) - ; - p->next = (PROCESS *)NULL; - - n = REVERSE_LIST (the_pipeline, PROCESS *); - - the_pipeline = n; - for (p = the_pipeline; p->next; p = p->next) - ; - p->next = the_pipeline; -} -#endif - -/* Map FUNC over the list of jobs. If FUNC returns non-zero, - then it is time to stop mapping, and that is the return value - for map_over_jobs. FUNC is called with a JOB, arg1, arg2, - and INDEX. */ -static int -map_over_jobs (func, arg1, arg2) - sh_job_map_func_t *func; - int arg1, arg2; -{ - register int i; - int result; - sigset_t set, oset; - - if (js.j_jobslots == 0) - return 0; - - BLOCK_CHILD (set, oset); - - /* XXX could use js.j_firstj here */ - for (i = result = 0; i < js.j_jobslots; i++) - { -if (i < js.j_firstj && jobs[i]) - itrace("map_over_jobs: job %d non-null before js.j_firstj (%d)", i, js.j_firstj); - if (jobs[i]) - { - result = (*func)(jobs[i], arg1, arg2, i); - if (result) - break; - } - } - - UNBLOCK_CHILD (oset); - - return (result); -} - -/* Cause all the jobs in the current pipeline to exit. */ -void -terminate_current_pipeline () -{ - if (pipeline_pgrp && pipeline_pgrp != shell_pgrp) - { - killpg (pipeline_pgrp, SIGTERM); - killpg (pipeline_pgrp, SIGCONT); - } -} - -/* Cause all stopped jobs to exit. */ -void -terminate_stopped_jobs () -{ - register int i; - - /* XXX could use js.j_firstj here */ - for (i = 0; i < js.j_jobslots; i++) - { - if (jobs[i] && STOPPED (i)) - { - killpg (jobs[i]->pgrp, SIGTERM); - killpg (jobs[i]->pgrp, SIGCONT); - } - } -} - -/* Cause all jobs, running or stopped, to receive a hangup signal. If - a job is marked J_NOHUP, don't send the SIGHUP. */ -void -hangup_all_jobs () -{ - register int i; - - /* XXX could use js.j_firstj here */ - for (i = 0; i < js.j_jobslots; i++) - { - if (jobs[i]) - { - if ((jobs[i]->flags & J_NOHUP) == 0) - killpg (jobs[i]->pgrp, SIGHUP); - if (STOPPED (i)) - killpg (jobs[i]->pgrp, SIGCONT); - } - } -} - -void -kill_current_pipeline () -{ - stop_making_children (); - start_pipeline (); -} - -/* Return the pipeline that PID belongs to. Note that the pipeline - doesn't have to belong to a job. Must be called with SIGCHLD blocked. */ -static PROCESS * -find_pipeline (pid, running_only, jobp) - pid_t pid; - int running_only; - int *jobp; /* index into jobs list or NO_JOB */ -{ - int job; - register PROCESS *p; - - /* See if this process is in the pipeline that we are building. */ - if (jobp) - *jobp = NO_JOB; - if (the_pipeline) - { - p = the_pipeline; - do - { - /* Return it if we found it. */ - if (p->pid == pid) - { - if ((running_only && PALIVE(p)) || (running_only == 0)) - return (p); - } - - p = p->next; - } - while (p != the_pipeline); - } - - job = find_job (pid, running_only); - if (jobp) - *jobp = job; - return (job == NO_JOB) ? (PROCESS *)NULL : jobs[job]->pipe; -} - -/* Return the job index that PID belongs to, or NO_JOB if it doesn't - belong to any job. Must be called with SIGCHLD blocked. */ -static int -find_job (pid, running_only) - pid_t pid; - int running_only; -{ - register int i; - register PROCESS *p; - - /* XXX could use js.j_firstj here */ - for (i = 0; i < js.j_jobslots; i++) - { -if (i < js.j_firstj && jobs[i]) - itrace("find_job: job %d non-null before js.j_firstj (%d)", i, js.j_firstj); - if (jobs[i]) - { - p = jobs[i]->pipe; - - do - { - if (p->pid == pid) - { - if ((running_only && PALIVE(p)) || (running_only == 0)) - return (i); - } - - p = p->next; - } - while (p != jobs[i]->pipe); - } - } - - return (NO_JOB); -} - -/* Find a job given a PID. If BLOCK is non-zero, block SIGCHLD as - required by find_job. */ -int -get_job_by_pid (pid, block) - pid_t pid; - int block; -{ - int job; - sigset_t set, oset; - - if (block) - BLOCK_CHILD (set, oset); - - job = find_job (pid, 0); - - if (block) - UNBLOCK_CHILD (oset); - - return job; -} - -/* Print descriptive information about the job with leader pid PID. */ -void -describe_pid (pid) - pid_t pid; -{ - int job; - sigset_t set, oset; - - BLOCK_CHILD (set, oset); - - job = find_job (pid, 0); - - if (job != NO_JOB) - fprintf (stderr, "[%d] %ld\n", job + 1, (long)pid); - else - programming_error (_("describe_pid: %ld: no such pid"), (long)pid); - - UNBLOCK_CHILD (oset); -} - -static char * -j_strsignal (s) - int s; -{ - char *x; - - x = strsignal (s); - if (x == 0) - { - x = retcode_name_buffer; - sprintf (x, "Signal %d", s); - } - return x; -} - -static char * -printable_job_status (j, p, format) - int j; - PROCESS *p; - int format; -{ - static char *temp; - int es; - - temp = "Done"; - - if (STOPPED (j) && format == 0) - { - if (posixly_correct == 0 || p == 0 || (WIFSTOPPED (p->status) == 0)) - temp = "Stopped"; - else - { - temp = retcode_name_buffer; - sprintf (temp, "Stopped(%s)", signal_name (WSTOPSIG (p->status))); - } - } - else if (RUNNING (j)) - temp = "Running"; - else - { - if (WIFSTOPPED (p->status)) - temp = j_strsignal (WSTOPSIG (p->status)); - else if (WIFSIGNALED (p->status)) - temp = j_strsignal (WTERMSIG (p->status)); - else if (WIFEXITED (p->status)) - { - temp = retcode_name_buffer; - es = WEXITSTATUS (p->status); - if (es == 0) - strcpy (temp, "Done"); - else if (posixly_correct) - sprintf (temp, "Done(%d)", es); - else - sprintf (temp, "Exit %d", es); - } - else - temp = "Unknown status"; - } - - return temp; -} - -/* This is the way to print out information on a job if you - know the index. FORMAT is: - - JLIST_NORMAL) [1]+ Running emacs - JLIST_LONG ) [1]+ 2378 Running emacs - -1 ) [1]+ 2378 emacs - - JLIST_NORMAL) [1]+ Stopped ls | more - JLIST_LONG ) [1]+ 2369 Stopped ls - 2367 | more - JLIST_PID_ONLY) - Just list the pid of the process group leader (really - the process group). - JLIST_CHANGED_ONLY) - Use format JLIST_NORMAL, but list only jobs about which - the user has not been notified. */ - -/* Print status for pipeline P. If JOB_INDEX is >= 0, it is the index into - the JOBS array corresponding to this pipeline. FORMAT is as described - above. Must be called with SIGCHLD blocked. - - If you're printing a pipeline that's not in the jobs array, like the - current pipeline as it's being created, pass -1 for JOB_INDEX */ -static void -print_pipeline (p, job_index, format, stream) - PROCESS *p; - int job_index, format; - FILE *stream; -{ - PROCESS *first, *last, *show; - int es, name_padding; - char *temp; - - if (p == 0) - return; - - first = last = p; - while (last->next != first) - last = last->next; - - for (;;) - { - if (p != first) - fprintf (stream, format ? " " : " |"); - - if (format != JLIST_STANDARD) - fprintf (stream, "%5ld", (long)p->pid); - - fprintf (stream, " "); - - if (format > -1 && job_index >= 0) - { - show = format ? p : last; - temp = printable_job_status (job_index, show, format); - - if (p != first) - { - if (format) - { - if (show->running == first->running && - WSTATUS (show->status) == WSTATUS (first->status)) - temp = ""; - } - else - temp = (char *)NULL; - } - - if (temp) - { - fprintf (stream, "%s", temp); - - es = STRLEN (temp); - if (es == 0) - es = 2; /* strlen ("| ") */ - name_padding = LONGEST_SIGNAL_DESC - es; - - fprintf (stream, "%*s", name_padding, ""); - - if ((WIFSTOPPED (show->status) == 0) && - (WIFCONTINUED (show->status) == 0) && - WIFCORED (show->status)) - fprintf (stream, "(core dumped) "); - } - } - - if (p != first && format) - fprintf (stream, "| "); - - if (p->command) - fprintf (stream, "%s", p->command); - - if (p == last && job_index >= 0) - { - temp = current_working_directory (); - - if (RUNNING (job_index) && (IS_FOREGROUND (job_index) == 0)) - fprintf (stream, " &"); - - if (strcmp (temp, jobs[job_index]->wd) != 0) - fprintf (stream, - " (wd: %s)", polite_directory_format (jobs[job_index]->wd)); - } - - if (format || (p == last)) - { - /* We need to add a CR only if this is an interactive shell, and - we're reporting the status of a completed job asynchronously. - We can't really check whether this particular job is being - reported asynchronously, so just add the CR if the shell is - currently interactive and asynchronous notification is enabled. */ - if (asynchronous_notification && interactive) - fprintf (stream, "\r\n"); - else - fprintf (stream, "\n"); - } - - if (p == last) - break; - p = p->next; - } - fflush (stream); -} - -/* Print information to STREAM about jobs[JOB_INDEX] according to FORMAT. - Must be called with SIGCHLD blocked or queued with queue_sigchld */ -static void -pretty_print_job (job_index, format, stream) - int job_index, format; - FILE *stream; -{ - register PROCESS *p; - - /* Format only pid information about the process group leader? */ - if (format == JLIST_PID_ONLY) - { - fprintf (stream, "%ld\n", (long)jobs[job_index]->pipe->pid); - return; - } - - if (format == JLIST_CHANGED_ONLY) - { - if (IS_NOTIFIED (job_index)) - return; - format = JLIST_STANDARD; - } - - if (format != JLIST_NONINTERACTIVE) - fprintf (stream, "[%d]%c ", job_index + 1, - (job_index == js.j_current) ? '+': - (job_index == js.j_previous) ? '-' : ' '); - - if (format == JLIST_NONINTERACTIVE) - format = JLIST_LONG; - - p = jobs[job_index]->pipe; - - print_pipeline (p, job_index, format, stream); - - /* We have printed information about this job. When the job's - status changes, waitchld () sets the notification flag to 0. */ - jobs[job_index]->flags |= J_NOTIFIED; -} - -static int -print_job (job, format, state, job_index) - JOB *job; - int format, state, job_index; -{ - if (state == -1 || (JOB_STATE)state == job->state) - pretty_print_job (job_index, format, stdout); - return (0); -} - -void -list_one_job (job, format, ignore, job_index) - JOB *job; - int format, ignore, job_index; -{ - pretty_print_job (job_index, format, stdout); -} - -void -list_stopped_jobs (format) - int format; -{ - cleanup_dead_jobs (); - map_over_jobs (print_job, format, (int)JSTOPPED); -} - -void -list_running_jobs (format) - int format; -{ - cleanup_dead_jobs (); - map_over_jobs (print_job, format, (int)JRUNNING); -} - -/* List jobs. If FORMAT is non-zero, then the long form of the information - is printed, else just a short version. */ -void -list_all_jobs (format) - int format; -{ - cleanup_dead_jobs (); - map_over_jobs (print_job, format, -1); -} - -/* Fork, handling errors. Returns the pid of the newly made child, or 0. - COMMAND is just for remembering the name of the command; we don't do - anything else with it. ASYNC_P says what to do with the tty. If - non-zero, then don't give it away. */ -pid_t -make_child (command, async_p) - char *command; - int async_p; -{ - sigset_t set, oset; - pid_t pid; - - sigemptyset (&set); - sigaddset (&set, SIGCHLD); - sigaddset (&set, SIGINT); - sigemptyset (&oset); - sigprocmask (SIG_BLOCK, &set, &oset); - - making_children (); - -#if defined (BUFFERED_INPUT) - /* If default_buffered_input is active, we are reading a script. If - the command is asynchronous, we have already duplicated /dev/null - as fd 0, but have not changed the buffered stream corresponding to - the old fd 0. We don't want to sync the stream in this case. */ - if (default_buffered_input != -1 && - (!async_p || default_buffered_input > 0)) - sync_buffered_stream (default_buffered_input); -#endif /* BUFFERED_INPUT */ - - /* Create the child, handle severe errors. */ - if ((pid = fork ()) < 0) - { - sys_error ("fork"); - - /* Kill all of the processes in the current pipeline. */ - terminate_current_pipeline (); - - /* Discard the current pipeline, if any. */ - if (the_pipeline) - kill_current_pipeline (); - - throw_to_top_level (); /* Reset signals, etc. */ - } - - if (pid == 0) - { - /* In the child. Give this child the right process group, set the - signals to the default state for a new process. */ - pid_t mypid; - - mypid = getpid (); -#if defined (BUFFERED_INPUT) - /* Close default_buffered_input if it's > 0. We don't close it if it's - 0 because that's the file descriptor used when redirecting input, - and it's wrong to close the file in that case. */ - unset_bash_input (0); -#endif /* BUFFERED_INPUT */ - - /* Restore top-level signal mask. */ - sigprocmask (SIG_SETMASK, &top_level_mask, (sigset_t *)NULL); - - if (job_control) - { - /* All processes in this pipeline belong in the same - process group. */ - - if (pipeline_pgrp == 0) /* This is the first child. */ - pipeline_pgrp = mypid; - - /* Check for running command in backquotes. */ - if (pipeline_pgrp == shell_pgrp) - ignore_tty_job_signals (); - else - default_tty_job_signals (); - - /* Set the process group before trying to mess with the terminal's - process group. This is mandated by POSIX. */ - /* This is in accordance with the Posix 1003.1 standard, - section B.7.2.4, which says that trying to set the terminal - process group with tcsetpgrp() to an unused pgrp value (like - this would have for the first child) is an error. Section - B.4.3.3, p. 237 also covers this, in the context of job control - shells. */ - if (setpgid (mypid, pipeline_pgrp) < 0) - sys_error ("child setpgid (%ld to %ld)", (long)mypid, (long)pipeline_pgrp); - - /* By convention (and assumption above), if - pipeline_pgrp == shell_pgrp, we are making a child for - command substitution. - In this case, we don't want to give the terminal to the - shell's process group (we could be in the middle of a - pipeline, for example). */ - if (async_p == 0 && pipeline_pgrp != shell_pgrp) - give_terminal_to (pipeline_pgrp, 0); - -#if defined (PGRP_PIPE) - if (pipeline_pgrp == mypid) - pipe_read (pgrp_pipe); -#endif - } - else /* Without job control... */ - { - if (pipeline_pgrp == 0) - pipeline_pgrp = shell_pgrp; - - /* If these signals are set to SIG_DFL, we encounter the curious - situation of an interactive ^Z to a running process *working* - and stopping the process, but being unable to do anything with - that process to change its state. On the other hand, if they - are set to SIG_IGN, jobs started from scripts do not stop when - the shell running the script gets a SIGTSTP and stops. */ - - default_tty_job_signals (); - } - -#if defined (PGRP_PIPE) - /* Release the process group pipe, since our call to setpgid () - is done. The last call to pipe_close is done in stop_pipeline. */ - pipe_close (pgrp_pipe); -#endif /* PGRP_PIPE */ - - if (async_p) - last_asynchronous_pid = getpid (); - } - else - { - /* In the parent. Remember the pid of the child just created - as the proper pgrp if this is the first child. */ - - if (job_control) - { - if (pipeline_pgrp == 0) - { - pipeline_pgrp = pid; - /* Don't twiddle terminal pgrps in the parent! This is the bug, - not the good thing of twiddling them in the child! */ - /* give_terminal_to (pipeline_pgrp, 0); */ - } - /* This is done on the recommendation of the Rationale section of - the POSIX 1003.1 standard, where it discusses job control and - shells. It is done to avoid possible race conditions. (Ref. - 1003.1 Rationale, section B.4.3.3, page 236). */ - setpgid (pid, pipeline_pgrp); - } - else - { - if (pipeline_pgrp == 0) - pipeline_pgrp = shell_pgrp; - } - - /* Place all processes into the jobs array regardless of the - state of job_control. */ - add_process (command, pid); - - if (async_p) - last_asynchronous_pid = pid; - - last_made_pid = pid; - - /* keep stats */ - js.c_totforked++; - js.c_living++; - - /* Unblock SIGINT and SIGCHLD unless creating a pipeline, in which case - SIGCHLD remains blocked until all commands in the pipeline have been - created. */ - sigprocmask (SIG_SETMASK, &oset, (sigset_t *)NULL); - } - - return (pid); -} - -/* These two functions are called only in child processes. */ -void -ignore_tty_job_signals () -{ - set_signal_handler (SIGTSTP, SIG_IGN); - set_signal_handler (SIGTTIN, SIG_IGN); - set_signal_handler (SIGTTOU, SIG_IGN); -} - -void -default_tty_job_signals () -{ - set_signal_handler (SIGTSTP, SIG_DFL); - set_signal_handler (SIGTTIN, SIG_DFL); - set_signal_handler (SIGTTOU, SIG_DFL); -} - -/* When we end a job abnormally, or if we stop a job, we set the tty to the - state kept in here. When a job ends normally, we set the state in here - to the state of the tty. */ - -static TTYSTRUCT shell_tty_info; - -#if defined (NEW_TTY_DRIVER) -static struct tchars shell_tchars; -static struct ltchars shell_ltchars; -#endif /* NEW_TTY_DRIVER */ - -#if defined (NEW_TTY_DRIVER) && defined (DRAIN_OUTPUT) -/* Since the BSD tty driver does not allow us to change the tty modes - while simultaneously waiting for output to drain and preserving - typeahead, we have to drain the output ourselves before calling - ioctl. We cheat by finding the length of the output queue, and - using select to wait for an appropriate length of time. This is - a hack, and should be labeled as such (it's a hastily-adapted - mutation of a `usleep' implementation). It's only reason for - existing is the flaw in the BSD tty driver. */ - -static int ttspeeds[] = -{ - 0, 50, 75, 110, 134, 150, 200, 300, 600, 1200, - 1800, 2400, 4800, 9600, 19200, 38400 -}; - -static void -draino (fd, ospeed) - int fd, ospeed; -{ - register int delay = ttspeeds[ospeed]; - int n; - - if (!delay) - return; - - while ((ioctl (fd, TIOCOUTQ, &n) == 0) && n) - { - if (n > (delay / 100)) - { - struct timeval tv; - - n *= 10; /* 2 bits more for conservativeness. */ - tv.tv_sec = n / delay; - tv.tv_usec = ((n % delay) * 1000000) / delay; - select (fd, (fd_set *)0, (fd_set *)0, (fd_set *)0, &tv); - } - else - break; - } -} -#endif /* NEW_TTY_DRIVER && DRAIN_OUTPUT */ - -/* Return the fd from which we are actually getting input. */ -#define input_tty() (shell_tty != -1) ? shell_tty : fileno (stderr) - -/* Fill the contents of shell_tty_info with the current tty info. */ -int -get_tty_state () -{ - int tty; - - tty = input_tty (); - if (tty != -1) - { -#if defined (NEW_TTY_DRIVER) - ioctl (tty, TIOCGETP, &shell_tty_info); - ioctl (tty, TIOCGETC, &shell_tchars); - ioctl (tty, TIOCGLTC, &shell_ltchars); -#endif /* NEW_TTY_DRIVER */ - -#if defined (TERMIO_TTY_DRIVER) - ioctl (tty, TCGETA, &shell_tty_info); -#endif /* TERMIO_TTY_DRIVER */ - -#if defined (TERMIOS_TTY_DRIVER) - if (tcgetattr (tty, &shell_tty_info) < 0) - { -#if 0 - /* Only print an error message if we're really interactive at - this time. */ - if (interactive) - sys_error ("[%ld: %d] tcgetattr", (long)getpid (), shell_level); -#endif - return -1; - } -#endif /* TERMIOS_TTY_DRIVER */ - if (check_window_size) - get_new_window_size (0); - } - return 0; -} - -/* Make the current tty use the state in shell_tty_info. */ -int -set_tty_state () -{ - int tty; - - tty = input_tty (); - if (tty != -1) - { -#if defined (NEW_TTY_DRIVER) -# if defined (DRAIN_OUTPUT) - draino (tty, shell_tty_info.sg_ospeed); -# endif /* DRAIN_OUTPUT */ - ioctl (tty, TIOCSETN, &shell_tty_info); - ioctl (tty, TIOCSETC, &shell_tchars); - ioctl (tty, TIOCSLTC, &shell_ltchars); -#endif /* NEW_TTY_DRIVER */ - -#if defined (TERMIO_TTY_DRIVER) - ioctl (tty, TCSETAW, &shell_tty_info); -#endif /* TERMIO_TTY_DRIVER */ - -#if defined (TERMIOS_TTY_DRIVER) - if (tcsetattr (tty, TCSADRAIN, &shell_tty_info) < 0) - { - /* Only print an error message if we're really interactive at - this time. */ - if (interactive) - sys_error ("[%ld: %d] tcsetattr", (long)getpid (), shell_level); - return -1; - } -#endif /* TERMIOS_TTY_DRIVER */ - } - return 0; -} - -/* Given an index into the jobs array JOB, return the pid of the last - process in that job's pipeline. This is the one whose exit status - counts. Must be called with SIGCHLD blocked or queued. */ -static pid_t -find_last_pid (job, block) - int job; - int block; -{ - register PROCESS *p; - sigset_t set, oset; - - if (block) - BLOCK_CHILD (set, oset); - - p = jobs[job]->pipe; - while (p->next != jobs[job]->pipe) - p = p->next; - - if (block) - UNBLOCK_CHILD (oset); - - return (p->pid); -} - -/* Wait for a particular child of the shell to finish executing. - This low-level function prints an error message if PID is not - a child of this shell. It returns -1 if it fails, or whatever - wait_for returns otherwise. If the child is not found in the - jobs table, it returns 127. */ -int -wait_for_single_pid (pid) - pid_t pid; -{ - register PROCESS *child; - sigset_t set, oset; - int r, job; - - BLOCK_CHILD (set, oset); - child = find_pipeline (pid, 0, (int *)NULL); - UNBLOCK_CHILD (oset); - - if (child == 0) - { - internal_error (_("wait: pid %ld is not a child of this shell"), (long)pid); - return (127); - } - - r = wait_for (pid); - - /* POSIX.2: if we just waited for a job, we can remove it from the jobs - table. */ - BLOCK_CHILD (set, oset); - job = find_job (pid, 0); - if (job != NO_JOB && jobs[job] && DEADJOB (job)) - jobs[job]->flags |= J_NOTIFIED; - UNBLOCK_CHILD (oset); - - return r; -} - -/* Wait for all of the backgrounds of this shell to finish. */ -void -wait_for_background_pids () -{ - register int i, r, waited_for; - sigset_t set, oset; - pid_t pid; - - for (waited_for = 0;;) - { - BLOCK_CHILD (set, oset); - - /* find first running job; if none running in foreground, break */ - /* XXX could use js.j_firstj here */ - for (i = 0; i < js.j_jobslots; i++) -{ -if (i < js.j_firstj && jobs[i]) - itrace("wait_for_background_pids: job %d non-null before js.j_firstj (%d)", i, js.j_firstj); - if (jobs[i] && RUNNING (i) && IS_FOREGROUND (i) == 0) - break; -} - if (i == js.j_jobslots) - { - UNBLOCK_CHILD (oset); - break; - } - - /* now wait for the last pid in that job. */ - pid = find_last_pid (i, 0); - UNBLOCK_CHILD (oset); - QUIT; - errno = 0; /* XXX */ - r = wait_for_single_pid (pid); - if (r == -1) - { - /* If we're mistaken about job state, compensate. */ - if (errno == ECHILD) - mark_all_jobs_as_dead (); - } - else - waited_for++; - } - - /* POSIX.2 says the shell can discard the statuses of all completed jobs if - `wait' is called with no arguments. */ - mark_dead_jobs_as_notified (1); - cleanup_dead_jobs (); -} - -/* Make OLD_SIGINT_HANDLER the SIGINT signal handler. */ -#define INVALID_SIGNAL_HANDLER (SigHandler *)wait_for_background_pids -static SigHandler *old_sigint_handler = INVALID_SIGNAL_HANDLER; - -static void -restore_sigint_handler () -{ - if (old_sigint_handler != INVALID_SIGNAL_HANDLER) - { - set_signal_handler (SIGINT, old_sigint_handler); - old_sigint_handler = INVALID_SIGNAL_HANDLER; - } -} - -static int wait_sigint_received; - -/* Handle SIGINT while we are waiting for children in a script to exit. - The `wait' builtin should be interruptible, but all others should be - effectively ignored (i.e. not cause the shell to exit). */ -static sighandler -wait_sigint_handler (sig) - int sig; -{ - SigHandler *sigint_handler; - - if (interrupt_immediately || - (this_shell_builtin && this_shell_builtin == wait_builtin)) - { - last_command_exit_value = EXECUTION_FAILURE; - restore_sigint_handler (); - /* If we got a SIGINT while in `wait', and SIGINT is trapped, do - what POSIX.2 says (see builtins/wait.def for more info). */ - if (this_shell_builtin && this_shell_builtin == wait_builtin && - signal_is_trapped (SIGINT) && - ((sigint_handler = trap_to_sighandler (SIGINT)) == trap_handler)) - { - interrupt_immediately = 0; - trap_handler (SIGINT); /* set pending_traps[SIGINT] */ - wait_signal_received = SIGINT; - longjmp (wait_intr_buf, 1); - } - - ADDINTERRUPT; - QUIT; - } - - /* XXX - should this be interrupt_state? If it is, the shell will act - as if it got the SIGINT interrupt. */ - wait_sigint_received = 1; - - /* Otherwise effectively ignore the SIGINT and allow the running job to - be killed. */ - SIGRETURN (0); -} - -static int -process_exit_signal (status) - WAIT status; -{ - return (WIFSIGNALED (status) ? WTERMSIG (status) : 0); -} - -static int -process_exit_status (status) - WAIT status; -{ - if (WIFSIGNALED (status)) - return (128 + WTERMSIG (status)); - else if (WIFSTOPPED (status) == 0) - return (WEXITSTATUS (status)); - else - return (EXECUTION_SUCCESS); -} - -/* Return the exit status of the last process in the pipeline for job JOB. - This is the exit status of the entire job. */ -static WAIT -raw_job_exit_status (job) - int job; -{ - register PROCESS *p; - int fail; - - if (pipefail_opt) - { - fail = 0; - p = jobs[job]->pipe; - do - { - if (p->status != EXECUTION_SUCCESS) fail = p->status; - p = p->next; - } - while (p != jobs[job]->pipe); - return fail; - } - - for (p = jobs[job]->pipe; p->next != jobs[job]->pipe; p = p->next) - ; - return (p->status); -} - -/* Return the exit status of job JOB. This is the exit status of the last - (rightmost) process in the job's pipeline, modified if the job was killed - by a signal or stopped. */ -static int -job_exit_status (job) - int job; -{ - return (process_exit_status (raw_job_exit_status (job))); -} - -static int -job_exit_signal (job) - int job; -{ - return (process_exit_signal (raw_job_exit_status (job))); -} - -#define FIND_CHILD(pid, child) \ - do \ - { \ - child = find_pipeline (pid, 0, (int *)NULL); \ - if (child == 0) \ - { \ - give_terminal_to (shell_pgrp, 0); \ - UNBLOCK_CHILD (oset); \ - internal_error (_("wait_for: No record of process %ld"), (long)pid); \ - restore_sigint_handler (); \ - return (termination_state = 127); \ - } \ - } \ - while (0) - -/* Wait for pid (one of our children) to terminate, then - return the termination state. Returns 127 if PID is not found in - the jobs table. Returns -1 if waitchld() returns -1, indicating - that there are no unwaited-for child processes. */ -int -wait_for (pid) - pid_t pid; -{ - int job, termination_state, r; - WAIT s; - register PROCESS *child; - sigset_t set, oset; - register PROCESS *p; - - /* In the case that this code is interrupted, and we longjmp () out of it, - we are relying on the code in throw_to_top_level () to restore the - top-level signal mask. */ - BLOCK_CHILD (set, oset); - - /* Ignore interrupts while waiting for a job run without job control - to finish. We don't want the shell to exit if an interrupt is - received, only if one of the jobs run is killed via SIGINT. If - job control is not set, the job will be run in the same pgrp as - the shell, and the shell will see any signals the job gets. */ - - /* This is possibly a race condition -- should it go in stop_pipeline? */ - wait_sigint_received = 0; - if (job_control == 0) - old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler); - - termination_state = last_command_exit_value; - - if (interactive && job_control == 0) - QUIT; - - /* If we say wait_for (), then we have a record of this child somewhere. - If it and none of its peers are running, don't call waitchld(). */ - - job = NO_JOB; - do - { - FIND_CHILD (pid, child); - - /* If this child is part of a job, then we are really waiting for the - job to finish. Otherwise, we are waiting for the child to finish. - We check for JDEAD in case the job state has been set by waitchld - after receipt of a SIGCHLD. */ - if (job == NO_JOB) - job = find_job (pid, 0); - - /* waitchld() takes care of setting the state of the job. If the job - has already exited before this is called, sigchld_handler will have - called waitchld and the state will be set to JDEAD. */ - - if (child->running || (job != NO_JOB && RUNNING (job))) - { -#if defined (WAITPID_BROKEN) /* SCOv4 */ - sigset_t suspend_set; - sigemptyset (&suspend_set); - sigsuspend (&suspend_set); -#else /* !WAITPID_BROKEN */ -# if defined (MUST_UNBLOCK_CHLD) - struct sigaction act, oact; - sigset_t nullset, chldset; - - sigemptyset (&nullset); - sigemptyset (&chldset); - sigprocmask (SIG_SETMASK, &nullset, &chldset); - act.sa_handler = SIG_DFL; - sigemptyset (&act.sa_mask); - sigemptyset (&oact.sa_mask); - act.sa_flags = 0; - sigaction (SIGCHLD, &act, &oact); -# endif - queue_sigchld = 1; - r = waitchld (pid, 1); -# if defined (MUST_UNBLOCK_CHLD) - sigaction (SIGCHLD, &oact, (struct sigaction *)NULL); - sigprocmask (SIG_SETMASK, &chldset, (sigset_t *)NULL); -# endif - queue_sigchld = 0; - if (r == -1 && errno == ECHILD && this_shell_builtin == wait_builtin) - { - termination_state = -1; - goto wait_for_return; - } - - /* If child is marked as running, but waitpid() returns -1/ECHILD, - there is something wrong. Somewhere, wait should have returned - that child's pid. Mark the child as not running and the job, - if it exists, as JDEAD. */ - if (r == -1 && errno == ECHILD) - { - child->running = PS_DONE; - child->status = 0; /* XXX -- can't find true status */ - if (job != NO_JOB) - jobs[job]->state = JDEAD; - } -#endif /* WAITPID_BROKEN */ - } - - /* If the shell is interactive, and job control is disabled, see - if the foreground process has died due to SIGINT and jump out - of the wait loop if it has. waitchld has already restored the - old SIGINT signal handler. */ - if (interactive && job_control == 0) - QUIT; - } - while (child->running || (job != NO_JOB && RUNNING (job))); - - /* The exit state of the command is either the termination state of the - child, or the termination state of the job. If a job, the status - of the last child in the pipeline is the significant one. If the command - or job was terminated by a signal, note that value also. */ - termination_state = (job != NO_JOB) ? job_exit_status (job) - : process_exit_status (child->status); - last_command_exit_signal = (job != NO_JOB) ? job_exit_signal (job) - : process_exit_signal (child->status); - - /* XXX */ - if ((job != NO_JOB && JOBSTATE (job) == JSTOPPED) || WIFSTOPPED (child->status)) - termination_state = 128 + WSTOPSIG (child->status); - - if (job == NO_JOB || IS_JOBCONTROL (job)) - { - /* XXX - under what circumstances is a job not present in the jobs - table (job == NO_JOB)? - 1. command substitution - - In the case of command substitution, at least, it's probably not - the right thing to give the terminal to the shell's process group, - even though there is code in subst.c:command_substitute to work - around it. - - Things that don't: - $PROMPT_COMMAND execution - process substitution - */ -#if 0 -if (job == NO_JOB) - itrace("wait_for: job == NO_JOB, giving the terminal to shell_pgrp (%ld)", (long)shell_pgrp); -#endif - - give_terminal_to (shell_pgrp, 0); - } - - /* If the command did not exit cleanly, or the job is just - being stopped, then reset the tty state back to what it - was before this command. Reset the tty state and notify - the user of the job termination only if the shell is - interactive. Clean up any dead jobs in either case. */ - if (job != NO_JOB) - { - if (interactive_shell && subshell_environment == 0) - { - /* This used to use `child->status'. That's wrong, however, for - pipelines. `child' is the first process in the pipeline. It's - likely that the process we want to check for abnormal termination - or stopping is the last process in the pipeline, especially if - it's long-lived and the first process is short-lived. Since we - know we have a job here, we can check all the processes in this - job's pipeline and see if one of them stopped or terminated due - to a signal. We might want to change this later to just check - the last process in the pipeline. If no process exits due to a - signal, S is left as the status of the last job in the pipeline. */ - p = jobs[job]->pipe; - do - { - s = p->status; - if (WIFSIGNALED(s) || WIFSTOPPED(s)) - break; - p = p->next; - } - while (p != jobs[job]->pipe); - - if (WIFSIGNALED (s) || WIFSTOPPED (s)) - { - set_tty_state (); - - /* If the current job was stopped or killed by a signal, and - the user has requested it, get a possibly new window size */ - if (check_window_size && (job == js.j_current || IS_FOREGROUND (job))) - get_new_window_size (0); - } - else - get_tty_state (); - - /* If job control is enabled, the job was started with job - control, the job was the foreground job, and it was killed - by SIGINT, then print a newline to compensate for the kernel - printing the ^C without a trailing newline. */ - if (job_control && IS_JOBCONTROL (job) && IS_FOREGROUND (job) && - WIFSIGNALED (s) && WTERMSIG (s) == SIGINT) - { - /* If SIGINT is not trapped and the shell is in a for, while, - or until loop, act as if the shell received SIGINT as - well, so the loop can be broken. This doesn't call the - SIGINT signal handler; maybe it should. */ - if (signal_is_trapped (SIGINT) == 0 && loop_level) - ADDINTERRUPT; - else - { - putchar ('\n'); - fflush (stdout); - } - } - } - - /* Moved here from set_job_status_and_cleanup, which is in the SIGCHLD - signal handler path */ - if (DEADJOB (job) && IS_FOREGROUND (job) /*&& subshell_environment == 0*/) - setjstatus (job); - - /* If this job is dead, notify the user of the status. If the shell - is interactive, this will display a message on the terminal. If - the shell is not interactive, make sure we turn on the notify bit - so we don't get an unwanted message about the job's termination, - and so delete_job really clears the slot in the jobs table. */ - notify_and_cleanup (); - } - -wait_for_return: - - UNBLOCK_CHILD (oset); - - /* Restore the original SIGINT signal handler before we return. */ - restore_sigint_handler (); - - return (termination_state); -} - -/* Wait for the last process in the pipeline for JOB. Returns whatever - wait_for returns: the last process's termination state or -1 if there - are no unwaited-for child processes or an error occurs. */ -int -wait_for_job (job) - int job; -{ - pid_t pid; - int r; - sigset_t set, oset; - - BLOCK_CHILD(set, oset); - if (JOBSTATE (job) == JSTOPPED) - internal_warning (_("wait_for_job: job %d is stopped"), job+1); - - pid = find_last_pid (job, 0); - UNBLOCK_CHILD(oset); - r = wait_for (pid); - - /* POSIX.2: we can remove the job from the jobs table if we just waited - for it. */ - BLOCK_CHILD (set, oset); - if (job != NO_JOB && jobs[job] && DEADJOB (job)) - jobs[job]->flags |= J_NOTIFIED; - UNBLOCK_CHILD (oset); - - return r; -} - -/* Print info about dead jobs, and then delete them from the list - of known jobs. This does not actually delete jobs when the - shell is not interactive, because the dead jobs are not marked - as notified. */ -void -notify_and_cleanup () -{ - if (jobs_list_frozen) - return; - - if (interactive || interactive_shell == 0 || sourcelevel) - notify_of_job_status (); - - cleanup_dead_jobs (); -} - -/* Make dead jobs disappear from the jobs array without notification. - This is used when the shell is not interactive. */ -void -reap_dead_jobs () -{ - mark_dead_jobs_as_notified (0); - cleanup_dead_jobs (); -} - -/* Return the next closest (chronologically) job to JOB which is in - STATE. STATE can be JSTOPPED, JRUNNING. NO_JOB is returned if - there is no next recent job. */ -static int -most_recent_job_in_state (job, state) - int job; - JOB_STATE state; -{ - register int i, result; - sigset_t set, oset; - - BLOCK_CHILD (set, oset); - - for (result = NO_JOB, i = job - 1; i >= 0; i--) - { - if (jobs[i] && (JOBSTATE (i) == state)) - { - result = i; - break; - } - } - - UNBLOCK_CHILD (oset); - - return (result); -} - -/* Return the newest *stopped* job older than JOB, or NO_JOB if not - found. */ -static int -job_last_stopped (job) - int job; -{ - return (most_recent_job_in_state (job, JSTOPPED)); -} - -/* Return the newest *running* job older than JOB, or NO_JOB if not - found. */ -static int -job_last_running (job) - int job; -{ - return (most_recent_job_in_state (job, JRUNNING)); -} - -/* Make JOB be the current job, and make previous be useful. Must be - called with SIGCHLD blocked. */ -static void -set_current_job (job) - int job; -{ - int candidate; - - if (js.j_current != job) - { - js.j_previous = js.j_current; - js.j_current = job; - } - - /* First choice for previous job is the old current job. */ - if (js.j_previous != js.j_current && - js.j_previous != NO_JOB && - jobs[js.j_previous] && - STOPPED (js.j_previous)) - return; - - /* Second choice: Newest stopped job that is older than - the current job. */ - candidate = NO_JOB; - if (STOPPED (js.j_current)) - { - candidate = job_last_stopped (js.j_current); - - if (candidate != NO_JOB) - { - js.j_previous = candidate; - return; - } - } - - /* If we get here, there is either only one stopped job, in which case it is - the current job and the previous job should be set to the newest running - job, or there are only running jobs and the previous job should be set to - the newest running job older than the current job. We decide on which - alternative to use based on whether or not JOBSTATE(js.j_current) is - JSTOPPED. */ - - candidate = RUNNING (js.j_current) ? job_last_running (js.j_current) - : job_last_running (js.j_jobslots); - - if (candidate != NO_JOB) - { - js.j_previous = candidate; - return; - } - - /* There is only a single job, and it is both `+' and `-'. */ - js.j_previous = js.j_current; -} - -/* Make current_job be something useful, if it isn't already. */ - -/* Here's the deal: The newest non-running job should be `+', and the - next-newest non-running job should be `-'. If there is only a single - stopped job, the js.j_previous is the newest non-running job. If there - are only running jobs, the newest running job is `+' and the - next-newest running job is `-'. Must be called with SIGCHLD blocked. */ - -static void -reset_current () -{ - int candidate; - - if (js.j_jobslots && js.j_current != NO_JOB && jobs[js.j_current] && STOPPED (js.j_current)) - candidate = js.j_current; - else - { - candidate = NO_JOB; - - /* First choice: the previous job. */ - if (js.j_previous != NO_JOB && jobs[js.j_previous] && STOPPED (js.j_previous)) - candidate = js.j_previous; - - /* Second choice: the most recently stopped job. */ - if (candidate == NO_JOB) - candidate = job_last_stopped (js.j_jobslots); - - /* Third choice: the newest running job. */ - if (candidate == NO_JOB) - candidate = job_last_running (js.j_jobslots); - } - - /* If we found a job to use, then use it. Otherwise, there - are no jobs period. */ - if (candidate != NO_JOB) - set_current_job (candidate); - else - js.j_current = js.j_previous = NO_JOB; -} - -/* Set up the job structures so we know the job and its processes are - all running. */ -static void -set_job_running (job) - int job; -{ - register PROCESS *p; - - /* Each member of the pipeline is now running. */ - p = jobs[job]->pipe; - - do - { - if (WIFSTOPPED (p->status)) - p->running = PS_RUNNING; /* XXX - could be PS_STOPPED */ - p = p->next; - } - while (p != jobs[job]->pipe); - - /* This means that the job is running. */ - JOBSTATE (job) = JRUNNING; -} - -/* Start a job. FOREGROUND if non-zero says to do that. Otherwise, - start the job in the background. JOB is a zero-based index into - JOBS. Returns -1 if it is unable to start a job, and the return - status of the job otherwise. */ -int -start_job (job, foreground) - int job, foreground; -{ - register PROCESS *p; - int already_running; - sigset_t set, oset; - char *wd; - static TTYSTRUCT save_stty; - - BLOCK_CHILD (set, oset); - - if (DEADJOB (job)) - { - internal_error (_("%s: job has terminated"), this_command_name); - UNBLOCK_CHILD (oset); - return (-1); - } - - already_running = RUNNING (job); - - if (foreground == 0 && already_running) - { - internal_error (_("%s: job %d already in background"), this_command_name, job + 1); - UNBLOCK_CHILD (oset); - return (-1); - } - - wd = current_working_directory (); - - /* You don't know about the state of this job. Do you? */ - jobs[job]->flags &= ~J_NOTIFIED; - - if (foreground) - { - set_current_job (job); - jobs[job]->flags |= J_FOREGROUND; - } - - /* Tell the outside world what we're doing. */ - p = jobs[job]->pipe; - - if (foreground == 0) - printf ("[%d]%c ", job + 1, - (job == js.j_current) ? '+': ((job == js.j_previous) ? '-' : ' ')); - - do - { - printf ("%s%s", - p->command ? p->command : "", - p->next != jobs[job]->pipe? " | " : ""); - p = p->next; - } - while (p != jobs[job]->pipe); - - if (foreground == 0) - printf (" &"); - - if (strcmp (wd, jobs[job]->wd) != 0) - printf (" (wd: %s)", polite_directory_format (jobs[job]->wd)); - - printf ("\n"); - - /* Run the job. */ - if (already_running == 0) - set_job_running (job); - - /* Save the tty settings before we start the job in the foreground. */ - if (foreground) - { - get_tty_state (); - save_stty = shell_tty_info; - /* Give the terminal to this job. */ - if (IS_JOBCONTROL (job)) - give_terminal_to (jobs[job]->pgrp, 0); - } - else - jobs[job]->flags &= ~J_FOREGROUND; - - /* If the job is already running, then don't bother jump-starting it. */ - if (already_running == 0) - { - jobs[job]->flags |= J_NOTIFIED; - killpg (jobs[job]->pgrp, SIGCONT); - } - - if (foreground) - { - pid_t pid; - int s; - - pid = find_last_pid (job, 0); - UNBLOCK_CHILD (oset); - s = wait_for (pid); - shell_tty_info = save_stty; - set_tty_state (); - return (s); - } - else - { - reset_current (); - UNBLOCK_CHILD (oset); - return (0); - } -} - -/* Give PID SIGNAL. This determines what job the pid belongs to (if any). - If PID does belong to a job, and the job is stopped, then CONTinue the - job after giving it SIGNAL. Returns -1 on failure. If GROUP is non-null, - then kill the process group associated with PID. */ -int -kill_pid (pid, sig, group) - pid_t pid; - int sig, group; -{ - register PROCESS *p; - int job, result; - sigset_t set, oset; - - result = EXECUTION_SUCCESS; - if (group) - { - BLOCK_CHILD (set, oset); - p = find_pipeline (pid, 0, &job); - - if (job != NO_JOB) - { - jobs[job]->flags &= ~J_NOTIFIED; - - /* Kill process in backquotes or one started without job control? */ - if (jobs[job]->pgrp == shell_pgrp) - { - p = jobs[job]->pipe; - - do - { - kill (p->pid, sig); - if (p->running == PS_DONE && (sig == SIGTERM || sig == SIGHUP)) - kill (p->pid, SIGCONT); - p = p->next; - } - while (p != jobs[job]->pipe); - } - else - { - result = killpg (jobs[job]->pgrp, sig); - if (p && STOPPED (job) && (sig == SIGTERM || sig == SIGHUP)) - killpg (jobs[job]->pgrp, SIGCONT); - /* If we're continuing a stopped job via kill rather than bg or - fg, emulate the `bg' behavior. */ - if (p && STOPPED (job) && (sig == SIGCONT)) - { - set_job_running (job); - jobs[job]->flags &= ~J_FOREGROUND; - jobs[job]->flags |= J_NOTIFIED; - } - } - } - else - result = killpg (pid, sig); - - UNBLOCK_CHILD (oset); - } - else - result = kill (pid, sig); - - return (result); -} - -/* sigchld_handler () flushes at least one of the children that we are - waiting for. It gets run when we have gotten a SIGCHLD signal. */ -static sighandler -sigchld_handler (sig) - int sig; -{ - int n, oerrno; - - oerrno = errno; - REINSTALL_SIGCHLD_HANDLER; - sigchld++; - n = 0; - if (queue_sigchld == 0) - n = waitchld (-1, 0); - errno = oerrno; - SIGRETURN (n); -} - -/* waitchld() reaps dead or stopped children. It's called by wait_for and - sigchld_handler, and runs until there aren't any children terminating any - more. - If BLOCK is 1, this is to be a blocking wait for a single child, although - an arriving SIGCHLD could cause the wait to be non-blocking. It returns - the number of children reaped, or -1 if there are no unwaited-for child - processes. */ -static int -waitchld (wpid, block) - pid_t wpid; - int block; -{ - WAIT status; - PROCESS *child; - pid_t pid; - int call_set_current, last_stopped_job, job, children_exited, waitpid_flags; - - call_set_current = children_exited = 0; - last_stopped_job = NO_JOB; - - do - { - /* We don't want to be notified about jobs stopping if job control - is not active. XXX - was interactive_shell instead of job_control */ - waitpid_flags = (job_control && subshell_environment == 0) - ? (WUNTRACED|WCONTINUED) - : 0; - if (sigchld || block == 0) - waitpid_flags |= WNOHANG; - pid = WAITPID (-1, &status, waitpid_flags); - - /* The check for WNOHANG is to make sure we decrement sigchld only - if it was non-zero before we called waitpid. */ - if (sigchld > 0 && (waitpid_flags & WNOHANG)) - sigchld--; - - /* If waitpid returns -1 with errno == ECHILD, there are no more - unwaited-for child processes of this shell. */ - if (pid < 0 && errno == ECHILD) - { - if (children_exited == 0) - return -1; - else - break; - } - - /* If waitpid returns 0, there are running children. If it returns -1, - the only other error POSIX says it can return is EINTR. */ - if (pid <= 0) - continue; /* jumps right to the test */ - - /* children_exited is used to run traps on SIGCHLD. We don't want to - run the trap if a process is just being continued. */ - if (WIFCONTINUED(status) == 0) - children_exited++; - - /* Locate our PROCESS for this pid. */ - child = find_pipeline (pid, 1, &job); /* want running procs only */ - - /* It is not an error to have a child terminate that we did - not have a record of. This child could have been part of - a pipeline in backquote substitution. Even so, I'm not - sure child is ever non-zero. */ - if (child == 0) - continue; - - while (child->pid != pid) - child = child->next; - - /* Remember status, and whether or not the process is running. */ - child->status = status; - child->running = WIFCONTINUED(status) ? PS_RUNNING : PS_DONE; - - if (child->running == PS_DONE) - { - js.c_totreaped++; - if (job != NO_JOB) - js.c_reaped++; - } - - if (job == NO_JOB) - continue; - - call_set_current += set_job_status_and_cleanup (job); - - if (STOPPED (job)) - last_stopped_job = job; - else if (DEADJOB (job) && last_stopped_job == job) - last_stopped_job = NO_JOB; - } - while ((sigchld || block == 0) && pid > (pid_t)0); - - /* If a job was running and became stopped, then set the current - job. Otherwise, don't change a thing. */ - if (call_set_current) - { - if (last_stopped_job != NO_JOB) - set_current_job (last_stopped_job); - else - reset_current (); - } - - /* Call a SIGCHLD trap handler for each child that exits, if one is set. */ - if (job_control && signal_is_trapped (SIGCHLD) && children_exited && - trap_list[SIGCHLD] != (char *)IGNORE_SIG) - run_sigchld_trap (children_exited); - - /* We have successfully recorded the useful information about this process - that has just changed state. If we notify asynchronously, and the job - that this process belongs to is no longer running, then notify the user - of that fact now. */ - if (asynchronous_notification && interactive) - notify_of_job_status (); - - return (children_exited); -} - -/* Set the status of JOB and perform any necessary cleanup if the job is - marked as JDEAD. - - Currently, the cleanup activity is restricted to handling any SIGINT - received while waiting for a foreground job to finish. */ -static int -set_job_status_and_cleanup (job) - int job; -{ - PROCESS *child; - int tstatus, job_state, any_stopped, any_tstped, call_set_current; - SigHandler *temp_handler; - - child = jobs[job]->pipe; - jobs[job]->flags &= ~J_NOTIFIED; - - call_set_current = 0; - - /* - * COMPUTE JOB STATUS - */ - - /* If all children are not running, but any of them is stopped, then - the job is stopped, not dead. */ - job_state = any_stopped = any_tstped = 0; - do - { - job_state |= child->running; - if (child->running == PS_DONE && (WIFSTOPPED (child->status))) - { - any_stopped = 1; - any_tstped |= interactive && job_control && - (WSTOPSIG (child->status) == SIGTSTP); - } - child = child->next; - } - while (child != jobs[job]->pipe); - - /* If job_state != 0, the job is still running, so don't bother with - setting the process exit status and job state unless we're - transitioning from stopped to running. */ - if (job_state != 0 && JOBSTATE(job) != JSTOPPED) - return 0; - - /* - * SET JOB STATUS - */ - - /* The job is either stopped or dead. Set the state of the job accordingly. */ - if (any_stopped) - { - jobs[job]->state = JSTOPPED; - jobs[job]->flags &= ~J_FOREGROUND; - call_set_current++; - /* Suspending a job with SIGTSTP breaks all active loops. */ - if (any_tstped && loop_level) - breaking = loop_level; - } - else if (job_state != 0) /* was stopped, now running */ - { - jobs[job]->state = JRUNNING; - call_set_current++; - } - else - { - jobs[job]->state = JDEAD; -itrace("job %d marked as JDEAD", job); -#if 0 - if (IS_FOREGROUND (job)) - setjstatus (job); -#endif - - /* If this job has a cleanup function associated with it, call it - with `cleanarg' as the single argument, then set the function - pointer to NULL so it is not inadvertently called twice. The - cleanup function is responsible for deallocating cleanarg. */ - if (jobs[job]->j_cleanup) - { - (*jobs[job]->j_cleanup) (jobs[job]->cleanarg); - jobs[job]->j_cleanup = (sh_vptrfunc_t *)NULL; - } - } - - /* - * CLEANUP - * - * Currently, we just do special things if we got a SIGINT while waiting - * for a foreground job to complete - */ - - if (JOBSTATE (job) == JDEAD) - { - /* If we're running a shell script and we get a SIGINT with a - SIGINT trap handler, but the foreground job handles it and - does not exit due to SIGINT, run the trap handler but do not - otherwise act as if we got the interrupt. */ - if (wait_sigint_received && interactive_shell == 0 && - WIFSIGNALED (child->status) == 0 && IS_FOREGROUND (job) && - signal_is_trapped (SIGINT)) - { - int old_frozen; - wait_sigint_received = 0; - last_command_exit_value = process_exit_status (child->status); - - old_frozen = jobs_list_frozen; - jobs_list_frozen = 1; - tstatus = maybe_call_trap_handler (SIGINT); - jobs_list_frozen = old_frozen; - } - - /* If the foreground job is killed by SIGINT when job control is not - active, we need to perform some special handling. - - The check of wait_sigint_received is a way to determine if the - SIGINT came from the keyboard (in which case the shell has already - seen it, and wait_sigint_received is non-zero, because keyboard - signals are sent to process groups) or via kill(2) to the foreground - process by another process (or itself). If the shell did receive the - SIGINT, it needs to perform normal SIGINT processing. */ - else if (wait_sigint_received && (WTERMSIG (child->status) == SIGINT) && - IS_FOREGROUND (job) && IS_JOBCONTROL (job) == 0) - { - int old_frozen; - - wait_sigint_received = 0; - - /* If SIGINT is trapped, set the exit status so that the trap - handler can see it. */ - if (signal_is_trapped (SIGINT)) - last_command_exit_value = process_exit_status (child->status); - - /* If the signal is trapped, let the trap handler get it no matter - what and simply return if the trap handler returns. - maybe_call_trap_handler() may cause dead jobs to be removed from - the job table because of a call to execute_command. We work - around this by setting JOBS_LIST_FROZEN. */ - old_frozen = jobs_list_frozen; - jobs_list_frozen = 1; - tstatus = maybe_call_trap_handler (SIGINT); - jobs_list_frozen = old_frozen; - if (tstatus == 0 && old_sigint_handler != INVALID_SIGNAL_HANDLER) - { - /* wait_sigint_handler () has already seen SIGINT and - allowed the wait builtin to jump out. We need to - call the original SIGINT handler, if necessary. If - the original handler is SIG_DFL, we need to resend - the signal to ourselves. */ - - temp_handler = old_sigint_handler; - - /* Bogus. If we've reset the signal handler as the result - of a trap caught on SIGINT, then old_sigint_handler - will point to trap_handler, which now knows nothing about - SIGINT (if we reset the sighandler to the default). - In this case, we have to fix things up. What a crock. */ - if (temp_handler == trap_handler && signal_is_trapped (SIGINT) == 0) - temp_handler = trap_to_sighandler (SIGINT); - restore_sigint_handler (); - if (temp_handler == SIG_DFL) - termination_unwind_protect (SIGINT); - else if (temp_handler != SIG_IGN) - (*temp_handler) (SIGINT); - } - } - } - - return call_set_current; -} - -/* Build the array of values for the $PIPESTATUS variable from the set of - exit statuses of all processes in the job J. */ -static void -setjstatus (j) - int j; -{ -#if defined (ARRAY_VARS) - register int i; - register PROCESS *p; - - for (i = 1, p = jobs[j]->pipe; p->next != jobs[j]->pipe; p = p->next, i++) - ; - i++; - if (statsize < i) - { - pstatuses = (int *)xrealloc (pstatuses, i * sizeof (int)); - statsize = i; - } - i = 0; - p = jobs[j]->pipe; - do - { - pstatuses[i++] = process_exit_status (p->status); - p = p->next; - } - while (p != jobs[j]->pipe); - - pstatuses[i] = -1; /* sentinel */ - set_pipestatus_array (pstatuses, i); -#endif -} - -static void -run_sigchld_trap (nchild) - int nchild; -{ - char *trap_command; - int i; - - /* Turn off the trap list during the call to parse_and_execute () - to avoid potentially infinite recursive calls. Preserve the - values of last_command_exit_value, last_made_pid, and the_pipeline - around the execution of the trap commands. */ - trap_command = savestring (trap_list[SIGCHLD]); - - begin_unwind_frame ("SIGCHLD trap"); - unwind_protect_int (last_command_exit_value); - unwind_protect_int (last_command_exit_signal); - unwind_protect_var (last_made_pid); - unwind_protect_int (interrupt_immediately); - unwind_protect_int (jobs_list_frozen); - unwind_protect_pointer (the_pipeline); - unwind_protect_pointer (subst_assign_varlist); - - /* We have to add the commands this way because they will be run - in reverse order of adding. We don't want maybe_set_sigchld_trap () - to reference freed memory. */ - add_unwind_protect (xfree, trap_command); - add_unwind_protect (maybe_set_sigchld_trap, trap_command); - - subst_assign_varlist = (WORD_LIST *)NULL; - the_pipeline = (PROCESS *)NULL; - - restore_default_signal (SIGCHLD); - jobs_list_frozen = 1; - for (i = 0; i < nchild; i++) - { - interrupt_immediately = 1; - parse_and_execute (savestring (trap_command), "trap", SEVAL_NOHIST|SEVAL_RESETLINE); - } - - run_unwind_frame ("SIGCHLD trap"); -} - -/* Function to call when you want to notify people of changes - in job status. This prints out all jobs which are pending - notification to stderr, and marks those printed as already - notified, thus making them candidates for cleanup. */ -static void -notify_of_job_status () -{ - register int job, termsig; - char *dir; - sigset_t set, oset; - WAIT s; - - if (jobs == 0 || js.j_jobslots == 0) - return; - - if (old_ttou != 0) - { - sigemptyset (&set); - sigaddset (&set, SIGCHLD); - sigaddset (&set, SIGTTOU); - sigemptyset (&oset); - sigprocmask (SIG_BLOCK, &set, &oset); - } - else - queue_sigchld++; - - /* XXX could use js.j_firstj here */ - for (job = 0, dir = (char *)NULL; job < js.j_jobslots; job++) - { - if (jobs[job] && IS_NOTIFIED (job) == 0) - { - s = raw_job_exit_status (job); - termsig = WTERMSIG (s); - - /* POSIX.2 says we have to hang onto the statuses of at most the - last CHILD_MAX background processes if the shell is running a - script. If the shell is not interactive, don't print anything - unless the job was killed by a signal. */ - if (startup_state == 0 && WIFSIGNALED (s) == 0 && - ((DEADJOB (job) && IS_FOREGROUND (job) == 0) || STOPPED (job))) - continue; - -#if 0 - /* If job control is disabled, don't print the status messages. - Mark dead jobs as notified so that they get cleaned up. If - startup_state == 2, we were started to run `-c command', so - don't print anything. */ - if ((job_control == 0 && interactive_shell) || startup_state == 2) -#else - /* If job control is disabled, don't print the status messages. - Mark dead jobs as notified so that they get cleaned up. If - startup_state == 2 and subshell_environment has the - SUBSHELL_COMSUB bit turned on, we were started to run a command - substitution, so don't print anything. */ - if ((job_control == 0 && interactive_shell) || - (startup_state == 2 && (subshell_environment & SUBSHELL_COMSUB))) -#endif - { - /* POSIX.2 compatibility: if the shell is not interactive, - hang onto the job corresponding to the last asynchronous - pid until the user has been notified of its status or does - a `wait'. */ - if (DEADJOB (job) && (interactive_shell || (find_last_pid (job, 0) != last_asynchronous_pid))) - jobs[job]->flags |= J_NOTIFIED; - continue; - } - - /* Print info on jobs that are running in the background, - and on foreground jobs that were killed by anything - except SIGINT (and possibly SIGPIPE). */ - switch (JOBSTATE (job)) - { - case JDEAD: - if (interactive_shell == 0 && termsig && WIFSIGNALED (s) && - termsig != SIGINT && -#if defined (DONT_REPORT_SIGPIPE) - termsig != SIGPIPE && -#endif - signal_is_trapped (termsig) == 0) - { - /* Don't print `0' for a line number. */ - fprintf (stderr, "%s: line %d: ", get_name_for_error (), (line_number == 0) ? 1 : line_number); - pretty_print_job (job, JLIST_NONINTERACTIVE, stderr); - } - else if (IS_FOREGROUND (job)) - { -#if !defined (DONT_REPORT_SIGPIPE) - if (termsig && WIFSIGNALED (s) && termsig != SIGINT) -#else - if (termsig && WIFSIGNALED (s) && termsig != SIGINT && termsig != SIGPIPE) -#endif - { - fprintf (stderr, "%s", j_strsignal (termsig)); - - if (WIFCORED (s)) - fprintf (stderr, " (core dumped)"); - - fprintf (stderr, "\n"); - } - } - else - { - if (dir == 0) - dir = current_working_directory (); - pretty_print_job (job, JLIST_STANDARD, stderr); - if (dir && strcmp (dir, jobs[job]->wd) != 0) - fprintf (stderr, - "(wd now: %s)\n", polite_directory_format (dir)); - } - - jobs[job]->flags |= J_NOTIFIED; - break; - - case JSTOPPED: - fprintf (stderr, "\n"); - if (dir == 0) - dir = current_working_directory (); - pretty_print_job (job, JLIST_STANDARD, stderr); - if (dir && (strcmp (dir, jobs[job]->wd) != 0)) - fprintf (stderr, - "(wd now: %s)\n", polite_directory_format (dir)); - jobs[job]->flags |= J_NOTIFIED; - break; - - case JRUNNING: - case JMIXED: - break; - - default: - programming_error ("notify_of_job_status"); - } - } - } - if (old_ttou != 0) - sigprocmask (SIG_SETMASK, &oset, (sigset_t *)NULL); - else - queue_sigchld--; -} - -/* Initialize the job control mechanism, and set up the tty stuff. */ -int -initialize_job_control (force) - int force; -{ - shell_pgrp = getpgid (0); - - if (shell_pgrp == -1) - { - sys_error ("initialize_job_control: getpgrp failed"); - exit (1); - } - - /* We can only have job control if we are interactive. */ - if (interactive == 0) - { - job_control = 0; - original_pgrp = NO_PID; - shell_tty = fileno (stderr); - } - else - { - /* Get our controlling terminal. If job_control is set, or - interactive is set, then this is an interactive shell no - matter where fd 2 is directed. */ - shell_tty = dup (fileno (stderr)); /* fd 2 */ - - shell_tty = move_to_high_fd (shell_tty, 1, -1); - - /* Compensate for a bug in systems that compiled the BSD - rlogind with DEBUG defined, like NeXT and Alliant. */ - if (shell_pgrp == 0) - { - shell_pgrp = getpid (); - setpgid (0, shell_pgrp); - tcsetpgrp (shell_tty, shell_pgrp); - } - - while ((terminal_pgrp = tcgetpgrp (shell_tty)) != -1) - { - if (shell_pgrp != terminal_pgrp) - { - SigHandler *ottin; - - ottin = set_signal_handler(SIGTTIN, SIG_DFL); - kill (0, SIGTTIN); - set_signal_handler (SIGTTIN, ottin); - continue; - } - break; - } - - /* Make sure that we are using the new line discipline. */ - if (set_new_line_discipline (shell_tty) < 0) - { - sys_error ("initialize_job_control: line discipline"); - job_control = 0; - } - else - { - original_pgrp = shell_pgrp; - shell_pgrp = getpid (); - - if ((original_pgrp != shell_pgrp) && (setpgid (0, shell_pgrp) < 0)) - { - sys_error ("initialize_job_control: setpgid"); - shell_pgrp = original_pgrp; - } - - job_control = 1; - - /* If (and only if) we just set our process group to our pid, - thereby becoming a process group leader, and the terminal - is not in the same process group as our (new) process group, - then set the terminal's process group to our (new) process - group. If that fails, set our process group back to what it - was originally (so we can still read from the terminal) and - turn off job control. */ - if (shell_pgrp != original_pgrp && shell_pgrp != terminal_pgrp) - { - if (give_terminal_to (shell_pgrp, 0) < 0) - { - setpgid (0, original_pgrp); - shell_pgrp = original_pgrp; - job_control = 0; - } - } - } - if (job_control == 0) - internal_error (_("no job control in this shell")); - } - - if (shell_tty != fileno (stderr)) - SET_CLOSE_ON_EXEC (shell_tty); - - set_signal_handler (SIGCHLD, sigchld_handler); - - change_flag ('m', job_control ? '-' : '+'); - - if (interactive) - get_tty_state (); - - return job_control; -} - -#ifdef DEBUG -void -debug_print_pgrps () -{ - itrace("original_pgrp = %ld shell_pgrp = %ld terminal_pgrp = %ld", - (long)original_pgrp, (long)shell_pgrp, (long)terminal_pgrp); - itrace("tcgetpgrp(%d) -> %ld, getpgid(0) -> %ld", - shell_tty, (long)tcgetpgrp (shell_tty), (long)getpgid(0)); -} -#endif - -/* Set the line discipline to the best this system has to offer. - Return -1 if this is not possible. */ -static int -set_new_line_discipline (tty) - int tty; -{ -#if defined (NEW_TTY_DRIVER) - int ldisc; - - if (ioctl (tty, TIOCGETD, &ldisc) < 0) - return (-1); - - if (ldisc != NTTYDISC) - { - ldisc = NTTYDISC; - - if (ioctl (tty, TIOCSETD, &ldisc) < 0) - return (-1); - } - return (0); -#endif /* NEW_TTY_DRIVER */ - -#if defined (TERMIO_TTY_DRIVER) -# if defined (TERMIO_LDISC) && (NTTYDISC) - if (ioctl (tty, TCGETA, &shell_tty_info) < 0) - return (-1); - - if (shell_tty_info.c_line != NTTYDISC) - { - shell_tty_info.c_line = NTTYDISC; - if (ioctl (tty, TCSETAW, &shell_tty_info) < 0) - return (-1); - } -# endif /* TERMIO_LDISC && NTTYDISC */ - return (0); -#endif /* TERMIO_TTY_DRIVER */ - -#if defined (TERMIOS_TTY_DRIVER) -# if defined (TERMIOS_LDISC) && defined (NTTYDISC) - if (tcgetattr (tty, &shell_tty_info) < 0) - return (-1); - - if (shell_tty_info.c_line != NTTYDISC) - { - shell_tty_info.c_line = NTTYDISC; - if (tcsetattr (tty, TCSADRAIN, &shell_tty_info) < 0) - return (-1); - } -# endif /* TERMIOS_LDISC && NTTYDISC */ - return (0); -#endif /* TERMIOS_TTY_DRIVER */ - -#if !defined (NEW_TTY_DRIVER) && !defined (TERMIO_TTY_DRIVER) && !defined (TERMIOS_TTY_DRIVER) - return (-1); -#endif -} - -#if defined (TIOCGWINSZ) && defined (SIGWINCH) -static void -get_new_window_size (from_sig) - int from_sig; -{ - struct winsize win; - - if ((ioctl (shell_tty, TIOCGWINSZ, &win) == 0) && - win.ws_row > 0 && win.ws_col > 0) - { -#if defined (aixpc) - shell_tty_info.c_winsize = win; /* structure copying */ -#endif - sh_set_lines_and_columns (win.ws_row, win.ws_col); -#if defined (READLINE) - rl_set_screen_size (win.ws_row, win.ws_col); -#endif - } -} - -static sighandler -sigwinch_sighandler (sig) - int sig; -{ -#if defined (MUST_REINSTALL_SIGHANDLERS) - set_signal_handler (SIGWINCH, sigwinch_sighandler); -#endif /* MUST_REINSTALL_SIGHANDLERS */ - get_new_window_size (1); - SIGRETURN (0); -} -#else -static void -get_new_window_size (from_sig) - int from_sig; -{ -} -#endif /* TIOCGWINSZ && SIGWINCH */ - -void -set_sigwinch_handler () -{ -#if defined (TIOCGWINSZ) && defined (SIGWINCH) - old_winch = set_signal_handler (SIGWINCH, sigwinch_sighandler); -#endif -} - -void -unset_sigwinch_handler () -{ -#if defined (TIOCGWINSZ) && defined (SIGWINCH) - set_signal_handler (SIGWINCH, old_winch); -#endif -} - -/* Setup this shell to handle C-C, etc. */ -void -initialize_job_signals () -{ - if (interactive) - { - set_signal_handler (SIGINT, sigint_sighandler); - set_signal_handler (SIGTSTP, SIG_IGN); - set_signal_handler (SIGTTOU, SIG_IGN); - set_signal_handler (SIGTTIN, SIG_IGN); - set_sigwinch_handler (); - } - else if (job_control) - { - old_tstp = set_signal_handler (SIGTSTP, sigstop_sighandler); - old_ttin = set_signal_handler (SIGTTIN, sigstop_sighandler); - old_ttou = set_signal_handler (SIGTTOU, sigstop_sighandler); - } - /* Leave these things alone for non-interactive shells without job - control. */ -} - -/* Here we handle CONT signals. */ -static sighandler -sigcont_sighandler (sig) - int sig; -{ - initialize_job_signals (); - set_signal_handler (SIGCONT, old_cont); - kill (getpid (), SIGCONT); - - SIGRETURN (0); -} - -/* Here we handle stop signals while we are running not as a login shell. */ -static sighandler -sigstop_sighandler (sig) - int sig; -{ - set_signal_handler (SIGTSTP, old_tstp); - set_signal_handler (SIGTTOU, old_ttou); - set_signal_handler (SIGTTIN, old_ttin); - - old_cont = set_signal_handler (SIGCONT, sigcont_sighandler); - - give_terminal_to (shell_pgrp, 0); - - kill (getpid (), sig); - - SIGRETURN (0); -} - -/* Give the terminal to PGRP. */ -int -give_terminal_to (pgrp, force) - pid_t pgrp; - int force; -{ - sigset_t set, oset; - int r; - - r = 0; - if (job_control || force) - { - sigemptyset (&set); - sigaddset (&set, SIGTTOU); - sigaddset (&set, SIGTTIN); - sigaddset (&set, SIGTSTP); - sigaddset (&set, SIGCHLD); - sigemptyset (&oset); - sigprocmask (SIG_BLOCK, &set, &oset); - - if (tcsetpgrp (shell_tty, pgrp) < 0) - { - /* Maybe we should print an error message? */ -#if 0 - sys_error ("tcsetpgrp(%d) failed: pid %ld to pgrp %ld", - shell_tty, (long)getpid(), (long)pgrp); -#endif - r = -1; - } - else - terminal_pgrp = pgrp; - sigprocmask (SIG_SETMASK, &oset, (sigset_t *)NULL); - } - - return r; -} - -/* Clear out any jobs in the job array. This is intended to be used by - children of the shell, who should not have any job structures as baggage - when they start executing (forking subshells for parenthesized execution - and functions with pipes are the two that spring to mind). If RUNNING_ONLY - is nonzero, only running jobs are removed from the table. */ -void -delete_all_jobs (running_only) - int running_only; -{ - register int i; - sigset_t set, oset; - - BLOCK_CHILD (set, oset); - - /* XXX - need to set j_lastj, j_firstj appropriately if running_only != 0. */ - if (js.j_jobslots) - { - js.j_current = js.j_previous = NO_JOB; - - /* XXX could use js.j_firstj here */ - for (i = 0; i < js.j_jobslots; i++) -{ -if (i < js.j_firstj && jobs[i]) - itrace("delete_all_jobs: job %d non-null before js.j_firstj (%d)", i, js.j_firstj); - if (jobs[i] && (running_only == 0 || (running_only && RUNNING(i)))) - delete_job (i, 1); -} - if (running_only == 0) - { - free ((char *)jobs); - js.j_jobslots = 0; - js.j_firstj = js.j_lastj = js.j_njobs = 0; - } - } - - UNBLOCK_CHILD (oset); -} - -/* Mark all jobs in the job array so that they don't get a SIGHUP when the - shell gets one. If RUNNING_ONLY is nonzero, mark only running jobs. */ -void -nohup_all_jobs (running_only) - int running_only; -{ - register int i; - sigset_t set, oset; - - BLOCK_CHILD (set, oset); - - if (js.j_jobslots) - { - /* XXX could use js.j_firstj here */ - for (i = 0; i < js.j_jobslots; i++) - if (jobs[i] && (running_only == 0 || (running_only && RUNNING(i)))) - nohup_job (i); - } - - UNBLOCK_CHILD (oset); -} - -int -count_all_jobs () -{ - int i, n; - sigset_t set, oset; - - /* This really counts all non-dead jobs. */ - BLOCK_CHILD (set, oset); - /* XXX could use js.j_firstj here */ - for (i = n = 0; i < js.j_jobslots; i++) -{ -if (i < js.j_firstj && jobs[i]) - itrace("count_all_jobs: job %d non-null before js.j_firstj (%d)", i, js.j_firstj); - if (jobs[i] && DEADJOB(i) == 0) - n++; -} - UNBLOCK_CHILD (oset); - return n; -} - -static void -mark_all_jobs_as_dead () -{ - register int i; - sigset_t set, oset; - - if (js.j_jobslots == 0) - return; - - BLOCK_CHILD (set, oset); - - /* XXX could use js.j_firstj here */ - for (i = 0; i < js.j_jobslots; i++) - if (jobs[i]) - jobs[i]->state = JDEAD; - - UNBLOCK_CHILD (oset); -} - -/* Mark all dead jobs as notified, so delete_job () cleans them out - of the job table properly. POSIX.2 says we need to save the - status of the last CHILD_MAX jobs, so we count the number of dead - jobs and mark only enough as notified to save CHILD_MAX statuses. */ -static void -mark_dead_jobs_as_notified (force) - int force; -{ - register int i, ndead, ndeadproc; - sigset_t set, oset; - - if (js.j_jobslots == 0) - return; - - BLOCK_CHILD (set, oset); - - /* If FORCE is non-zero, we don't have to keep CHILD_MAX statuses - around; just run through the array. */ - if (force) - { - /* XXX could use js.j_firstj here */ - for (i = 0; i < js.j_jobslots; i++) - { - if (jobs[i] && DEADJOB (i) && (interactive_shell || (find_last_pid (i, 0) != last_asynchronous_pid))) - jobs[i]->flags |= J_NOTIFIED; - } - UNBLOCK_CHILD (oset); - return; - } - - /* Mark enough dead jobs as notified to keep CHILD_MAX processes left in the - array with the corresponding not marked as notified. */ - - /* Count the number of dead jobs */ - /* XXX could use js.j_firstj here */ - for (i = ndead = ndeadproc = 0; i < js.j_jobslots; i++) - { -if (i < js.j_firstj && jobs[i]) - itrace("mark_dead_jobs_as_notified: job %d non-null before js.j_firstj (%d)", i, js.j_firstj); - if (jobs[i] && DEADJOB (i)) - { - ndead++; - ndeadproc += processes_in_job (i); - } - } - -if (ndeadproc != js.c_reaped) - itrace("mark_dead_jobs_as_notified: ndeadproc (%d) != js.c_reaped (%d)", ndeadproc, js.c_reaped); - if (js.c_childmax < 0) - js.c_childmax = getmaxchild (); - if (js.c_childmax < 0) - js.c_childmax = DEFAULT_CHILD_MAX; - -itrace("mark_dead_jobs_as_notified: child_max = %d ndead = %d ndeadproc = %d", js.c_childmax, ndead, ndeadproc); - /* Don't do anything if the number of dead processes is less than CHILD_MAX - and we're not forcing a cleanup. */ - if (ndeadproc <= js.c_childmax) - { - UNBLOCK_CHILD (oset); - return; - } - -itrace("marking up to %d jobs as notified", ndead, ndeadproc); - /* Mark enough dead jobs as notified that we keep CHILD_MAX jobs in - the list. This isn't exactly right yet; changes need to be made - to stop_pipeline so we don't mark the newer jobs after we've - created CHILD_MAX slots in the jobs array. This needs to be - integrated with a way to keep the jobs array from growing without - bound. Maybe we wrap back around to 0 after we reach some max - limit, and there are sufficient job slots free (keep track of total - size of jobs array (js.j_jobslots) and running count of number of jobs - in jobs array. Then keep a job index corresponding to the `oldest job' - and start this loop there, wrapping around as necessary. In effect, - we turn the list into a circular buffer. */ - /* XXX could use js.j_firstj here */ - for (i = 0; i < js.j_jobslots; i++) - { - if (jobs[i] && DEADJOB (i) && (interactive_shell || (find_last_pid (i, 0) != last_asynchronous_pid))) - { -if (i < js.j_firstj && jobs[i]) - itrace("mark_dead_jobs_as_notified: job %d non-null before js.j_firstj (%d)", i, js.j_firstj); - /* If marking this job as notified would drop us down below - child_max, don't mark it so we can keep at least child_max - statuses. XXX -- need to check what Posix actually says - about keeping statuses. */ - if ((ndeadproc -= processes_in_job (i)) <= js.c_childmax) - break; - jobs[i]->flags |= J_NOTIFIED; -itrace("marking job %d as notified", i); - } - } - - UNBLOCK_CHILD (oset); -} - -/* Here to allow other parts of the shell (like the trap stuff) to - unfreeze the jobs list. */ -void -unfreeze_jobs_list () -{ - jobs_list_frozen = 0; -} - -/* Allow or disallow job control to take place. Returns the old value - of job_control. */ -int -set_job_control (arg) - int arg; -{ - int old; - - old = job_control; - job_control = arg; - - /* If we're turning on job control, reset pipeline_pgrp so make_child will - put new child processes into the right pgrp */ - if (job_control != old && job_control) - pipeline_pgrp = 0; - - return (old); -} - -/* Turn off all traces of job control. This is run by children of the shell - which are going to do shellsy things, like wait (), etc. */ -void -without_job_control () -{ - stop_making_children (); - start_pipeline (); - delete_all_jobs (0); - set_job_control (0); -} - -/* If this shell is interactive, terminate all stopped jobs and - restore the original terminal process group. This is done - before the `exec' builtin calls shell_execve. */ -void -end_job_control () -{ - if (interactive_shell) /* XXX - should it be interactive? */ - { - terminate_stopped_jobs (); - - if (original_pgrp >= 0) - give_terminal_to (original_pgrp, 1); - } - - if (original_pgrp >= 0) - setpgid (0, original_pgrp); -} - -/* Restart job control by closing shell tty and reinitializing. This is - called after an exec fails in an interactive shell and we do not exit. */ -void -restart_job_control () -{ - if (shell_tty != -1) - close (shell_tty); - initialize_job_control (0); -} - -/* Set the handler to run when the shell receives a SIGCHLD signal. */ -void -set_sigchld_handler () -{ - set_signal_handler (SIGCHLD, sigchld_handler); -} - -#if defined (PGRP_PIPE) -/* Read from the read end of a pipe. This is how the process group leader - blocks until all of the processes in a pipeline have been made. */ -static void -pipe_read (pp) - int *pp; -{ - char ch; - - if (pp[1] >= 0) - { - close (pp[1]); - pp[1] = -1; - } - - if (pp[0] >= 0) - { - while (read (pp[0], &ch, 1) == -1 && errno == EINTR) - ; - } -} - -/* Close the read and write ends of PP, an array of file descriptors. */ -static void -pipe_close (pp) - int *pp; -{ - if (pp[0] >= 0) - close (pp[0]); - - if (pp[1] >= 0) - close (pp[1]); - - pp[0] = pp[1] = -1; -} - -/* Functional interface closes our local-to-job-control pipes. */ -void -close_pgrp_pipe () -{ - pipe_close (pgrp_pipe); -} - -#endif /* PGRP_PIPE */ diff --git a/jobs.c.trace b/jobs.c.trace deleted file mode 100644 index 229c47617..000000000 --- a/jobs.c.trace +++ /dev/null @@ -1,4028 +0,0 @@ -/* The thing that makes children, remembers them, and contains wait loops. */ - -/* This file works with both POSIX and BSD systems. It implements job - control. */ - -/* Copyright (C) 1989-2005 Free Software Foundation, Inc. - - This file is part of GNU Bash, the Bourne Again SHell. - - Bash is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License as published by the Free - Software Foundation; either version 2, or (at your option) any later - version. - - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with Bash; see the file COPYING. If not, write to the Free Software - Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ - -#include "config.h" - -#include "bashtypes.h" -#include "trap.h" -#include -#include -#include - -#if defined (HAVE_UNISTD_H) -# include -#endif - -#include "posixtime.h" - -#if defined (HAVE_SYS_RESOURCE_H) && defined (HAVE_WAIT3) && !defined (_POSIX_VERSION) && !defined (RLIMTYPE) -# include -#endif /* !_POSIX_VERSION && HAVE_SYS_RESOURCE_H && HAVE_WAIT3 && !RLIMTYPE */ - -#if defined (HAVE_SYS_FILE_H) -# include -#endif - -#include "filecntl.h" -#include -#include - -#if defined (BUFFERED_INPUT) -# include "input.h" -#endif - -/* Need to include this up here for *_TTY_DRIVER definitions. */ -#include "shtty.h" - -/* Define this if your output is getting swallowed. It's a no-op on - machines with the termio or termios tty drivers. */ -/* #define DRAIN_OUTPUT */ - -/* For the TIOCGPGRP and TIOCSPGRP ioctl parameters on HP-UX */ -#if defined (hpux) && !defined (TERMIOS_TTY_DRIVER) -# include -#endif /* hpux && !TERMIOS_TTY_DRIVER */ - -#if !defined (STRUCT_WINSIZE_IN_SYS_IOCTL) -/* For struct winsize on SCO */ -/* sys/ptem.h has winsize but needs mblk_t from sys/stream.h */ -# if defined (HAVE_SYS_PTEM_H) && defined (TIOCGWINSZ) && defined (SIGWINCH) -# if defined (HAVE_SYS_STREAM_H) -# include -# endif -# include -# endif /* HAVE_SYS_PTEM_H && TIOCGWINSZ && SIGWINCH */ -#endif /* !STRUCT_WINSIZE_IN_SYS_IOCTL */ - -#include "bashansi.h" -#include "bashintl.h" -#include "shell.h" -#include "jobs.h" -#include "flags.h" - -#include "builtins/builtext.h" -#include "builtins/common.h" - -#if !defined (errno) -extern int errno; -#endif /* !errno */ - -#define DEFAULT_CHILD_MAX 32 -#define MAX_JOBS_IN_ARRAY 4096 /* testing */ - -/* Take care of system dependencies that must be handled when waiting for - children. The arguments to the WAITPID macro match those to the Posix.1 - waitpid() function. */ - -#if defined (ultrix) && defined (mips) && defined (_POSIX_VERSION) -# define WAITPID(pid, statusp, options) \ - wait3 ((union wait *)statusp, options, (struct rusage *)0) -#else -# if defined (_POSIX_VERSION) || defined (HAVE_WAITPID) -# define WAITPID(pid, statusp, options) \ - waitpid ((pid_t)pid, statusp, options) -# else -# if defined (HAVE_WAIT3) -# define WAITPID(pid, statusp, options) \ - wait3 (statusp, options, (struct rusage *)0) -# else -# define WAITPID(pid, statusp, options) \ - wait3 (statusp, options, (int *)0) -# endif /* HAVE_WAIT3 */ -# endif /* !_POSIX_VERSION && !HAVE_WAITPID*/ -#endif /* !(Ultrix && mips && _POSIX_VERSION) */ - -/* getpgrp () varies between systems. Even systems that claim to be - Posix.1 compatible lie sometimes (Ultrix, SunOS4, apollo). */ -#if defined (GETPGRP_VOID) -# define getpgid(p) getpgrp () -#else -# define getpgid(p) getpgrp (p) -#endif /* !GETPGRP_VOID */ - -/* If the system needs it, REINSTALL_SIGCHLD_HANDLER will reinstall the - handler for SIGCHLD. */ -#if defined (MUST_REINSTALL_SIGHANDLERS) -# define REINSTALL_SIGCHLD_HANDLER signal (SIGCHLD, sigchld_handler) -#else -# define REINSTALL_SIGCHLD_HANDLER -#endif /* !MUST_REINSTALL_SIGHANDLERS */ - -/* Some systems let waitpid(2) tell callers about stopped children. */ -#if !defined (WCONTINUED) || defined (WCONTINUED_BROKEN) -# undef WCONTINUED -# define WCONTINUED 0 -#endif -#if !defined (WIFCONTINUED) -# define WIFCONTINUED(s) (0) -#endif - -/* The number of additional slots to allocate when we run out. */ -#define JOB_SLOTS 8 - -typedef int sh_job_map_func_t __P((JOB *, int, int, int)); - -#if defined (READLINE) -extern void rl_set_screen_size __P((int, int)); -#endif - -/* Variables used here but defined in other files. */ -extern int subshell_environment, line_number; -extern int posixly_correct, shell_level; -extern int interrupt_immediately; -extern int last_command_exit_value, last_command_exit_signal; -extern int loop_level, breaking; -extern int sourcelevel; -extern sh_builtin_func_t *this_shell_builtin; -extern char *shell_name, *this_command_name; -extern sigset_t top_level_mask; -extern procenv_t wait_intr_buf; -extern int wait_signal_received; -extern WORD_LIST *subst_assign_varlist; - -static struct jobstats zerojs = { -1L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NO_JOB, NO_JOB, 0, 0 }; -struct jobstats js = { -1L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NO_JOB, NO_JOB, 0, 0 }; - -struct bgpids bgpids = { 0, 0, 0 }; - -/* The array of known jobs. */ -JOB **jobs = (JOB **)NULL; - -#if 0 -/* The number of slots currently allocated to JOBS. */ -int job_slots = 0; -#endif - -/* The controlling tty for this shell. */ -int shell_tty = -1; - -/* The shell's process group. */ -pid_t shell_pgrp = NO_PID; - -/* The terminal's process group. */ -pid_t terminal_pgrp = NO_PID; - -/* The process group of the shell's parent. */ -pid_t original_pgrp = NO_PID; - -/* The process group of the pipeline currently being made. */ -pid_t pipeline_pgrp = (pid_t)0; - -#if defined (PGRP_PIPE) -/* Pipes which each shell uses to communicate with the process group leader - until all of the processes in a pipeline have been started. Then the - process leader is allowed to continue. */ -int pgrp_pipe[2] = { -1, -1 }; -#endif - -#if 0 -/* The job which is current; i.e. the one that `%+' stands for. */ -int current_job = NO_JOB; - -/* The previous job; i.e. the one that `%-' stands for. */ -int previous_job = NO_JOB; -#endif - -/* Last child made by the shell. */ -pid_t last_made_pid = NO_PID; - -/* Pid of the last asynchronous child. */ -pid_t last_asynchronous_pid = NO_PID; - -/* The pipeline currently being built. */ -PROCESS *the_pipeline = (PROCESS *)NULL; - -/* If this is non-zero, do job control. */ -int job_control = 1; - -/* Call this when you start making children. */ -int already_making_children = 0; - -/* If this is non-zero, $LINES and $COLUMNS are reset after every process - exits from get_tty_state(). */ -int check_window_size; - -/* Functions local to this file. */ - -static void get_new_window_size __P((int)); - -static void run_sigchld_trap __P((int)); - -static sighandler wait_sigint_handler __P((int)); -static sighandler sigchld_handler __P((int)); -static sighandler sigwinch_sighandler __P((int)); -static sighandler sigcont_sighandler __P((int)); -static sighandler sigstop_sighandler __P((int)); - -static int waitchld __P((pid_t, int)); - -static PROCESS *find_pipeline __P((pid_t, int, int *)); -static PROCESS *find_process __P((pid_t, int, int *)); - -static char *current_working_directory __P((void)); -static char *job_working_directory __P((void)); -static char *j_strsignal __P((int)); -static char *printable_job_status __P((int, PROCESS *, int)); - -static PROCESS *find_last_proc __P((int, int)); -static pid_t find_last_pid __P((int, int)); - -static int set_new_line_discipline __P((int)); -static int map_over_jobs __P((sh_job_map_func_t *, int, int)); -static int job_last_stopped __P((int)); -static int job_last_running __P((int)); -static int most_recent_job_in_state __P((int, JOB_STATE)); -static int find_job __P((pid_t, int, PROCESS **)); -static int print_job __P((JOB *, int, int, int)); -static int process_exit_status __P((WAIT)); -static int process_exit_signal __P((WAIT)); -static int job_exit_status __P((int)); -static int job_exit_signal __P((int)); -static int set_job_status_and_cleanup __P((int)); - -static WAIT raw_job_exit_status __P((int)); - -static void notify_of_job_status __P((void)); -static void reset_job_indices __P((void)); -static void cleanup_dead_jobs __P((void)); -static int processes_in_job __P((int)); -static void realloc_jobs_list __P((void)); -static int compact_jobs_list __P((int)); -static int discard_pipeline __P((PROCESS *)); -static void add_process __P((char *, pid_t)); -static void print_pipeline __P((PROCESS *, int, int, FILE *)); -static void pretty_print_job __P((int, int, FILE *)); -static void set_current_job __P((int)); -static void reset_current __P((void)); -static void set_job_running __P((int)); -static void setjstatus __P((int)); -static void mark_all_jobs_as_dead __P((void)); -static void mark_dead_jobs_as_notified __P((int)); -static void restore_sigint_handler __P((void)); -#if defined (PGRP_PIPE) -static void pipe_read __P((int *)); -static void pipe_close __P((int *)); -#endif - -static struct pidstat *bgp_alloc __P((pid_t, int)); -static struct pidstat *bgp_add __P((pid_t, int)); -static int bgp_delete __P((pid_t)); -static void bgp_clear __P((void)); -static int bgp_search __P((pid_t)); -static void bgp_prune __P((void)); - -#if defined (ARRAY_VARS) -static int *pstatuses; /* list of pipeline statuses */ -static int statsize; -#endif - -/* Used to synchronize between wait_for and other functions and the SIGCHLD - signal handler. */ -static int sigchld; -static int queue_sigchld; - -#define QUEUE_SIGCHLD(os) (os) = sigchld, queue_sigchld++ - -#define UNQUEUE_SIGCHLD(os) \ - do { \ - queue_sigchld--; \ - if (queue_sigchld == 0 && os != sigchld) \ - waitchld (-1, 0); \ - } while (0) - -static SigHandler *old_tstp, *old_ttou, *old_ttin; -static SigHandler *old_cont = (SigHandler *)SIG_DFL; - -#if defined (TIOCGWINSZ) && defined (SIGWINCH) -static SigHandler *old_winch = (SigHandler *)SIG_DFL; -#endif - -/* A place to temporarily save the current pipeline. */ -static PROCESS *saved_pipeline; -static int saved_already_making_children; - -/* Set this to non-zero whenever you don't want the jobs list to change at - all: no jobs deleted and no status change notifications. This is used, - for example, when executing SIGCHLD traps, which may run arbitrary - commands. */ -static int jobs_list_frozen; - -static char retcode_name_buffer[64]; - -#if !defined (_POSIX_VERSION) - -/* These are definitions to map POSIX 1003.1 functions onto existing BSD - library functions and system calls. */ -#define setpgid(pid, pgrp) setpgrp (pid, pgrp) -#define tcsetpgrp(fd, pgrp) ioctl ((fd), TIOCSPGRP, &(pgrp)) - -pid_t -tcgetpgrp (fd) - int fd; -{ - pid_t pgrp; - - /* ioctl will handle setting errno correctly. */ - if (ioctl (fd, TIOCGPGRP, &pgrp) < 0) - return (-1); - return (pgrp); -} - -#endif /* !_POSIX_VERSION */ - -/* Initialize the global job stats structure. */ -void -init_job_stats () -{ - js = zerojs; -} - -/* Return the working directory for the current process. Unlike - job_working_directory, this does not call malloc (), nor do any - of the functions it calls. This is so that it can safely be called - from a signal handler. */ -static char * -current_working_directory () -{ - char *dir; - static char d[PATH_MAX]; - - dir = get_string_value ("PWD"); - - if (dir == 0 && the_current_working_directory && no_symbolic_links) - dir = the_current_working_directory; - - if (dir == 0) - { - dir = getcwd (d, sizeof(d)); - if (dir) - dir = d; - } - - return (dir == 0) ? "" : dir; -} - -/* Return the working directory for the current process. */ -static char * -job_working_directory () -{ - char *dir; - - dir = get_string_value ("PWD"); - if (dir) - return (savestring (dir)); - - dir = get_working_directory ("job-working-directory"); - if (dir) - return (dir); - - return (savestring ("")); -} - -void -making_children () -{ - if (already_making_children) - return; - - already_making_children = 1; - start_pipeline (); -} - -void -stop_making_children () -{ - already_making_children = 0; -} - -void -cleanup_the_pipeline () -{ - PROCESS *disposer; - sigset_t set, oset; - -itrace("cleanup_the_pipeline: the_pipeline = 0x%x", the_pipeline); - BLOCK_CHILD (set, oset); - disposer = the_pipeline; - the_pipeline = (PROCESS *)NULL; - UNBLOCK_CHILD (oset); - - if (disposer) - discard_pipeline (disposer); -} - -void -save_pipeline (clear) - int clear; -{ - saved_pipeline = the_pipeline; - if (clear) - the_pipeline = (PROCESS *)NULL; - saved_already_making_children = already_making_children; -} - -void -restore_pipeline (discard) - int discard; -{ - PROCESS *old_pipeline; - - old_pipeline = the_pipeline; - the_pipeline = saved_pipeline; - already_making_children = saved_already_making_children; - if (discard) - discard_pipeline (old_pipeline); -} - -/* Start building a pipeline. */ -void -start_pipeline () -{ - if (the_pipeline) - { - cleanup_the_pipeline (); - pipeline_pgrp = 0; -#if defined (PGRP_PIPE) - pipe_close (pgrp_pipe); -#endif - } - -#if defined (PGRP_PIPE) - if (job_control) - { - if (pipe (pgrp_pipe) == -1) - sys_error ("start_pipeline: pgrp pipe"); - } -#endif -} - -/* Stop building a pipeline. Install the process list in the job array. - This returns the index of the newly installed job. - DEFERRED is a command structure to be executed upon satisfactory - execution exit of this pipeline. */ -int -stop_pipeline (async, deferred) - int async; - COMMAND *deferred; -{ - register int i, j; - JOB *newjob; - sigset_t set, oset; - - BLOCK_CHILD (set, oset); - -#if defined (PGRP_PIPE) - /* The parent closes the process group synchronization pipe. */ - pipe_close (pgrp_pipe); -#endif - - cleanup_dead_jobs (); - - if (js.j_jobslots == 0) - { - js.j_jobslots = JOB_SLOTS; - jobs = (JOB **)xmalloc (js.j_jobslots * sizeof (JOB *)); - - /* Now blank out these new entries. */ - for (i = 0; i < js.j_jobslots; i++) - jobs[i] = (JOB *)NULL; - - js.j_firstj = js.j_lastj = js.j_njobs = 0; - } - - /* Scan from the last slot backward, looking for the next free one. */ - /* XXX - revisit this interactive assumption */ - /* XXX - this way for now */ - if (interactive) - { - for (i = js.j_jobslots; i; i--) - if (jobs[i - 1]) - break; - } - else - { -#if 0 - /* This wraps around, but makes it inconvenient to extend the array */ - for (i = js.j_lastj+1; i != js.j_lastj; i++) - { - if (i >= js.j_jobslots) - i = 0; - if (jobs[i] == 0) - break; - } - if (i == js.j_lastj) - i = js.j_jobslots; -#else - /* This doesn't wrap around yet. */ - for (i = js.j_lastj ? js.j_lastj + 1 : js.j_lastj; i < js.j_jobslots; i++) - if (jobs[i] == 0) - break; -#endif - } - - /* Do we need more room? */ - - /* First try compaction */ - if ((interactive_shell == 0 || subshell_environment) && i == js.j_jobslots && js.j_jobslots >= MAX_JOBS_IN_ARRAY) - i = compact_jobs_list (0); - - /* If we can't compact, reallocate */ - if (i == js.j_jobslots) - { - js.j_jobslots += JOB_SLOTS; - jobs = (JOB **)xrealloc (jobs, (js.j_jobslots * sizeof (JOB *))); - - for (j = i; j < js.j_jobslots; j++) - jobs[j] = (JOB *)NULL; - } - - /* Add the current pipeline to the job list. */ - if (the_pipeline) - { - register PROCESS *p; - int any_running, any_stopped, n; - -itrace("stop_pipeline: adding 0x%x as new job", the_pipeline); - newjob = (JOB *)xmalloc (sizeof (JOB)); - - for (n = 1, p = the_pipeline; p->next != the_pipeline; n++, p = p->next) - ; - p->next = (PROCESS *)NULL; - newjob->pipe = REVERSE_LIST (the_pipeline, PROCESS *); - for (p = newjob->pipe; p->next; p = p->next) - ; - p->next = newjob->pipe; - - the_pipeline = (PROCESS *)NULL; - newjob->pgrp = pipeline_pgrp; - pipeline_pgrp = 0; - - newjob->flags = 0; - - /* Flag to see if in another pgrp. */ - if (job_control) - newjob->flags |= J_JOBCONTROL; - - /* Set the state of this pipeline. */ - p = newjob->pipe; - any_running = any_stopped = 0; - do - { - any_running |= PRUNNING (p); - any_stopped |= PSTOPPED (p); - p = p->next; - } - while (p != newjob->pipe); - - newjob->state = any_running ? JRUNNING : (any_stopped ? JSTOPPED : JDEAD); - newjob->wd = job_working_directory (); - newjob->deferred = deferred; - - newjob->j_cleanup = (sh_vptrfunc_t *)NULL; - newjob->cleanarg = (PTR_T) NULL; - - jobs[i] = newjob; - if (newjob->state == JDEAD && (newjob->flags & J_FOREGROUND)) - setjstatus (i); - if (newjob->state == JDEAD) - { - js.c_reaped += n; /* wouldn't have been done since this was not part of a job */ - js.j_ndead++; - } - js.c_injobs += n; - - js.j_lastj = i; - js.j_njobs++; - } - else - newjob = (JOB *)NULL; - - if (newjob) - js.j_lastmade = newjob; - - if (async) - { - if (newjob) - { - newjob->flags &= ~J_FOREGROUND; - newjob->flags |= J_ASYNC; - js.j_lastasync = newjob; - } - reset_current (); - } - else - { - if (newjob) - { - newjob->flags |= J_FOREGROUND; - /* - * !!!!! NOTE !!!!! (chet@ins.cwru.edu) - * - * The currently-accepted job control wisdom says to set the - * terminal's process group n+1 times in an n-step pipeline: - * once in the parent and once in each child. This is where - * the parent gives it away. - * - */ - if (job_control && newjob->pgrp) - give_terminal_to (newjob->pgrp, 0); - } - } - - stop_making_children (); - UNBLOCK_CHILD (oset); - return (js.j_current); -} - -/* Functions to manage the list of exited background pids whose status has - been saved. */ - -static struct pidstat * -bgp_alloc (pid, status) - pid_t pid; - int status; -{ - struct pidstat *ps; - - ps = (struct pidstat *)xmalloc (sizeof (struct pidstat)); - ps->pid = pid; - ps->status = status; - ps->next = (struct pidstat *)0; - return ps; -} - -static struct pidstat * -bgp_add (pid, status) - pid_t pid; - int status; -{ - struct pidstat *ps; - - ps = bgp_alloc (pid, status); - - if (bgpids.list == 0) - { - bgpids.list = bgpids.end = ps; - bgpids.npid = 0; /* just to make sure */ - } - else - { - bgpids.end->next = ps; - bgpids.end = ps; - } - bgpids.npid++; - - if (bgpids.npid > js.c_childmax) - bgp_prune (); - - return ps; -} - -static int -bgp_delete (pid) - pid_t pid; -{ - struct pidstat *prev, *p; - - for (prev = p = bgpids.list; p; prev = p, p = p->next) - if (p->pid == pid) - { - prev->next = p->next; /* remove from list */ - break; - } - - if (p == 0) - return 0; /* not found */ - -#if defined (DEBUG) - itrace("bgp_delete: deleting %d", pid); -#endif - - /* Housekeeping in the border cases. */ - if (p == bgpids.list) - bgpids.list = bgpids.list->next; - else if (p == bgpids.end) - bgpids.end = prev; - - bgpids.npid--; - if (bgpids.npid == 0) - bgpids.list = bgpids.end = 0; - else if (bgpids.npid == 1) - bgpids.end = bgpids.list; /* just to make sure */ - - free (p); - return 1; -} - -/* Clear out the list of saved statuses */ -static void -bgp_clear () -{ - struct pidstat *ps, *p; - - for (ps = bgpids.list; ps; ) - { - p = ps; - ps = ps->next; - free (p); - } - bgpids.list = bgpids.end = 0; - bgpids.npid = 0; -} - -/* Search for PID in the list of saved background pids; return its status if - found. If not found, return -1. */ -static int -bgp_search (pid) - pid_t pid; -{ - struct pidstat *ps; - - for (ps = bgpids.list ; ps; ps = ps->next) - if (ps->pid == pid) - return ps->status; - return -1; -} - -static void -bgp_prune () -{ - struct pidstat *ps, *p; - - while (bgpids.npid > js.c_childmax) - { - ps = bgpids.list; - bgpids.list = bgpids.list->next; - free (ps); - bgpids.npid--; - } -} - -/* Reset the values of js.j_lastj and js.j_firstj after one or both have - been deleted. The caller should check whether js.j_njobs is 0 before - calling this. This wraps around, but the rest of the code does not. At - this point, it should not matter. */ -static void -reset_job_indices () -{ - int old; - - if (jobs[js.j_firstj] == 0) - { - old = js.j_firstj++; - while (js.j_firstj != old) - { - if (js.j_firstj >= js.j_jobslots) - js.j_firstj = 0; - if (jobs[js.j_firstj]) - break; - js.j_firstj++; - } - if (js.j_firstj == old) - js.j_firstj = js.j_lastj = js.j_njobs = 0; - } - if (jobs[js.j_lastj] == 0) - { - old = js.j_lastj--; - while (js.j_lastj != old) - { - if (js.j_lastj < 0) - js.j_lastj = js.j_jobslots - 1; - if (jobs[js.j_lastj]) - break; - js.j_lastj--; - } - if (js.j_lastj == old) - js.j_firstj = js.j_lastj = js.j_njobs = 0; - } -} - -/* Delete all DEAD jobs that the user had received notification about. */ -static void -cleanup_dead_jobs () -{ - register int i; - int os; - - if (js.j_jobslots == 0 || jobs_list_frozen) - return; - - QUEUE_SIGCHLD(os); - - /* XXX could use js.j_firstj here */ - for (i = 0; i < js.j_jobslots; i++) - { -#if defined (DEBUG) - if (i < js.j_firstj && jobs[i]) - itrace("cleanup_dead_jobs: job %d non-null before js.j_firstj (%d)", i, js.j_firstj); -#endif - - if (jobs[i] && DEADJOB (i) && IS_NOTIFIED (i)) - delete_job (i, 0); - } - UNQUEUE_SIGCHLD(os); -} - -static int -processes_in_job (job) -{ - int nproc; - register PROCESS *p; - - nproc = 0; - p = jobs[job]->pipe; - do - { - p = p->next; - nproc++; - } - while (p != jobs[job]->pipe); - - return nproc; -} - -/* Reallocate and compress the jobs list. This returns with a jobs array - whose size is a multiple of JOB_SLOTS and can hold the current number of - jobs. Heuristics are used to minimize the number of new reallocs. */ -static void -realloc_jobs_list () -{ - sigset_t set, oset; - int nsize, i, j; - JOB **nlist; - - nsize = ((js.j_njobs + JOB_SLOTS - 1) / JOB_SLOTS); - nsize *= JOB_SLOTS; - i = js.j_njobs % JOB_SLOTS; - if (i == 0 || i > (JOB_SLOTS >> 1)) - nsize += JOB_SLOTS; - - BLOCK_CHILD (set, oset); - nlist = (JOB **) xmalloc (nsize * sizeof (JOB *)); - for (i = j = 0; i < js.j_jobslots; i++) - if (jobs[i]) - nlist[j++] = jobs[i]; - - js.j_firstj = 0; - js.j_lastj = (j > 0) ? j - 1: 0; - js.j_jobslots = nsize; - - free (jobs); - jobs = nlist; - - UNBLOCK_CHILD (oset); -} - -/* Compact the jobs list by removing dead jobs. Assumed that we have filled - the jobs array to some predefined maximum. Called when the shell is not - the foreground process (subshell_environment != 0). Returns the first - available slot in the compacted list. If that value is js.j_jobslots, then - the list needs to be reallocated. The jobs array is in new memory if - this returns > 0 and < js.j_jobslots. FLAGS is reserved for future use. */ -static int -compact_jobs_list (flags) - int flags; -{ - if (js.j_jobslots == 0 || jobs_list_frozen) - return js.j_jobslots; - - reap_dead_jobs (); - realloc_jobs_list (); - - return (js.j_lastj); -} - -/* Delete the job at INDEX from the job list. Must be called - with SIGCHLD blocked. */ -void -delete_job (job_index, warn_stopped) - int job_index, warn_stopped; -{ - register JOB *temp; - PROCESS *proc; - int ndel, status; - pid_t pid; - - if (js.j_jobslots == 0 || jobs_list_frozen) - return; - - if (warn_stopped && subshell_environment == 0 && STOPPED (job_index)) - internal_warning (_("deleting stopped job %d with process group %ld"), job_index+1, (long)jobs[job_index]->pgrp); - temp = jobs[job_index]; - if (job_index == js.j_current || job_index == js.j_previous) - reset_current (); - - proc = find_last_proc (job_index, 0); - /* Could do this just for J_ASYNC jobs, but we save all. */ - bgp_add (proc->pid, process_exit_status (proc->status)); - - jobs[job_index] = (JOB *)NULL; - - if (temp == js.j_lastmade) - js.j_lastmade = 0; - else if (temp == js.j_lastasync) - js.j_lastasync = 0; - - free (temp->wd); - ndel = discard_pipeline (temp->pipe); - - js.c_injobs -= ndel; - if (temp->state == JDEAD) - { - js.c_reaped -= ndel; - js.j_ndead--; - if (js.c_reaped < 0) - { -#ifdef DEBUG - itrace("delete_job (%d pgrp %d): js.c_reaped (%d) < 0 ndel = %d js.j_ndead = %d", job_index, temp->pgrp, js.c_reaped, ndel, js.j_ndead); -#endif - js.c_reaped = 0; - } - } - - if (temp->deferred) - dispose_command (temp->deferred); - - free (temp); - - js.j_njobs--; - if (js.j_njobs == 0) - js.j_firstj = js.j_lastj = 0; - else if (jobs[js.j_firstj] == 0 || jobs[js.j_lastj] == 0) - reset_job_indices (); -} - -/* Must be called with SIGCHLD blocked. */ -void -nohup_job (job_index) - int job_index; -{ - register JOB *temp; - - if (js.j_jobslots == 0) - return; - - if (temp = jobs[job_index]) - temp->flags |= J_NOHUP; -} - -/* Get rid of the data structure associated with a process chain. */ -static int -discard_pipeline (chain) - register PROCESS *chain; -{ - register PROCESS *this, *next; - int n; - - this = chain; - n = 0; - do - { - next = this->next; - FREE (this->command); - free (this); - n++; - this = next; - } - while (this != chain); - - return n; -} - -/* Add this process to the chain being built in the_pipeline. - NAME is the command string that will be exec'ed later. - PID is the process id of the child. */ -static void -add_process (name, pid) - char *name; - pid_t pid; -{ - PROCESS *t, *p; - -#if defined (RECYCLES_PIDS) - int j; - p = find_process (pid, 0, &j); - if (p) - { -# ifdef DEBUG - if (j == NO_JOB) - internal_warning ("add_process: process %5ld (%s) in the_pipeline", (long)p->pid, p->command); -# endif - if (PALIVE (p)) - internal_warning ("add_process: pid %5ld (%s) marked as still alive", (long)p->pid, p->command); - p->running = PS_RECYCLED; /* mark as recycled */ - } -#endif - - t = (PROCESS *)xmalloc (sizeof (PROCESS)); -itrace("add_process: adding 0x%x to 0x%x", t, the_pipeline); - t->next = the_pipeline; - t->pid = pid; - WSTATUS (t->status) = 0; - t->running = PS_RUNNING; - t->command = name; - the_pipeline = t; - - if (t->next == 0) - t->next = t; - else - { - p = t->next; - while (p->next != t->next) - p = p->next; - p->next = t; - } -} - -#if 0 -/* Take the last job and make it the first job. Must be called with - SIGCHLD blocked. */ -int -rotate_the_pipeline () -{ - PROCESS *p; - - if (the_pipeline->next == the_pipeline) - return; - for (p = the_pipeline; p->next != the_pipeline; p = p->next) - ; - the_pipeline = p; -} - -/* Reverse the order of the processes in the_pipeline. Must be called with - SIGCHLD blocked. */ -int -reverse_the_pipeline () -{ - PROCESS *p, *n; - - if (the_pipeline->next == the_pipeline) - return; - - for (p = the_pipeline; p->next != the_pipeline; p = p->next) - ; - p->next = (PROCESS *)NULL; - - n = REVERSE_LIST (the_pipeline, PROCESS *); - - the_pipeline = n; - for (p = the_pipeline; p->next; p = p->next) - ; - p->next = the_pipeline; -} -#endif - -/* Map FUNC over the list of jobs. If FUNC returns non-zero, - then it is time to stop mapping, and that is the return value - for map_over_jobs. FUNC is called with a JOB, arg1, arg2, - and INDEX. */ -static int -map_over_jobs (func, arg1, arg2) - sh_job_map_func_t *func; - int arg1, arg2; -{ - register int i; - int result; - sigset_t set, oset; - - if (js.j_jobslots == 0) - return 0; - - BLOCK_CHILD (set, oset); - - /* XXX could use js.j_firstj here */ - for (i = result = 0; i < js.j_jobslots; i++) - { -#if defined (DEBUG) - if (i < js.j_firstj && jobs[i]) - itrace("map_over_jobs: job %d non-null before js.j_firstj (%d)", i, js.j_firstj); -#endif - if (jobs[i]) - { - result = (*func)(jobs[i], arg1, arg2, i); - if (result) - break; - } - } - - UNBLOCK_CHILD (oset); - - return (result); -} - -/* Cause all the jobs in the current pipeline to exit. */ -void -terminate_current_pipeline () -{ - if (pipeline_pgrp && pipeline_pgrp != shell_pgrp) - { - killpg (pipeline_pgrp, SIGTERM); - killpg (pipeline_pgrp, SIGCONT); - } -} - -/* Cause all stopped jobs to exit. */ -void -terminate_stopped_jobs () -{ - register int i; - - /* XXX could use js.j_firstj here */ - for (i = 0; i < js.j_jobslots; i++) - { - if (jobs[i] && STOPPED (i)) - { - killpg (jobs[i]->pgrp, SIGTERM); - killpg (jobs[i]->pgrp, SIGCONT); - } - } -} - -/* Cause all jobs, running or stopped, to receive a hangup signal. If - a job is marked J_NOHUP, don't send the SIGHUP. */ -void -hangup_all_jobs () -{ - register int i; - - /* XXX could use js.j_firstj here */ - for (i = 0; i < js.j_jobslots; i++) - { - if (jobs[i]) - { - if ((jobs[i]->flags & J_NOHUP) == 0) - killpg (jobs[i]->pgrp, SIGHUP); - if (STOPPED (i)) - killpg (jobs[i]->pgrp, SIGCONT); - } - } -} - -void -kill_current_pipeline () -{ - stop_making_children (); - start_pipeline (); -} - -/* Return the pipeline that PID belongs to. Note that the pipeline - doesn't have to belong to a job. Must be called with SIGCHLD blocked. - If JOBP is non-null, return the index of the job containing PID. */ -static PROCESS * -find_pipeline (pid, alive_only, jobp) - pid_t pid; - int alive_only; - int *jobp; /* index into jobs list or NO_JOB */ -{ - int job; - PROCESS *p; - - /* See if this process is in the pipeline that we are building. */ - if (jobp) - *jobp = NO_JOB; - if (the_pipeline) - { - p = the_pipeline; - do - { - /* Return it if we found it. Don't ever return a recycled pid. */ - if (p->pid == pid && ((alive_only == 0 && PRECYCLED(p) == 0) || PALIVE(p))) - return (p); - - p = p->next; - } - while (p != the_pipeline); - } - - job = find_job (pid, alive_only, &p); - if (jobp) - *jobp = job; - return (job == NO_JOB) ? (PROCESS *)NULL : jobs[job]->pipe; -} - -/* Return the PROCESS * describing PID. If JOBP is non-null return the index - into the jobs array of the job containing PID. Must be called with - SIGCHLD blocked. */ -static PROCESS * -find_process (pid, alive_only, jobp) - pid_t pid; - int alive_only; - int *jobp; /* index into jobs list or NO_JOB */ -{ - PROCESS *p; - - p = find_pipeline (pid, alive_only, jobp); - while (p && p->pid != pid) - p = p->next; - return p; -} - -/* Return the job index that PID belongs to, or NO_JOB if it doesn't - belong to any job. Must be called with SIGCHLD blocked. */ -static int -find_job (pid, alive_only, procp) - pid_t pid; - int alive_only; - PROCESS **procp; -{ - register int i; - PROCESS *p; - - /* XXX could use js.j_firstj here */ - for (i = 0; i < js.j_jobslots; i++) - { -#if defined (DEBUG) - if (i < js.j_firstj && jobs[i]) - itrace("find_job: job %d non-null before js.j_firstj (%d)", i, js.j_firstj); -#endif - if (jobs[i]) - { - p = jobs[i]->pipe; - - do - { - if (p->pid == pid && ((alive_only == 0 && PRECYCLED(p) == 0) || PALIVE(p))) - { - if (procp) - *procp = p; - return (i); - } - - p = p->next; - } - while (p != jobs[i]->pipe); - } - } - - return (NO_JOB); -} - -/* Find a job given a PID. If BLOCK is non-zero, block SIGCHLD as - required by find_job. */ -int -get_job_by_pid (pid, block) - pid_t pid; - int block; -{ - int job; - sigset_t set, oset; - - if (block) - BLOCK_CHILD (set, oset); - - job = find_job (pid, 0, NULL); - - if (block) - UNBLOCK_CHILD (oset); - - return job; -} - -/* Print descriptive information about the job with leader pid PID. */ -void -describe_pid (pid) - pid_t pid; -{ - int job; - sigset_t set, oset; - - BLOCK_CHILD (set, oset); - - job = find_job (pid, 0, NULL); - - if (job != NO_JOB) - fprintf (stderr, "[%d] %ld\n", job + 1, (long)pid); - else - programming_error (_("describe_pid: %ld: no such pid"), (long)pid); - - UNBLOCK_CHILD (oset); -} - -static char * -j_strsignal (s) - int s; -{ - char *x; - - x = strsignal (s); - if (x == 0) - { - x = retcode_name_buffer; - sprintf (x, "Signal %d", s); - } - return x; -} - -static char * -printable_job_status (j, p, format) - int j; - PROCESS *p; - int format; -{ - static char *temp; - int es; - - temp = "Done"; - - if (STOPPED (j) && format == 0) - { - if (posixly_correct == 0 || p == 0 || (WIFSTOPPED (p->status) == 0)) - temp = "Stopped"; - else - { - temp = retcode_name_buffer; - sprintf (temp, "Stopped(%s)", signal_name (WSTOPSIG (p->status))); - } - } - else if (RUNNING (j)) - temp = "Running"; - else - { - if (WIFSTOPPED (p->status)) - temp = j_strsignal (WSTOPSIG (p->status)); - else if (WIFSIGNALED (p->status)) - temp = j_strsignal (WTERMSIG (p->status)); - else if (WIFEXITED (p->status)) - { - temp = retcode_name_buffer; - es = WEXITSTATUS (p->status); - if (es == 0) - strcpy (temp, "Done"); - else if (posixly_correct) - sprintf (temp, "Done(%d)", es); - else - sprintf (temp, "Exit %d", es); - } - else - temp = "Unknown status"; - } - - return temp; -} - -/* This is the way to print out information on a job if you - know the index. FORMAT is: - - JLIST_NORMAL) [1]+ Running emacs - JLIST_LONG ) [1]+ 2378 Running emacs - -1 ) [1]+ 2378 emacs - - JLIST_NORMAL) [1]+ Stopped ls | more - JLIST_LONG ) [1]+ 2369 Stopped ls - 2367 | more - JLIST_PID_ONLY) - Just list the pid of the process group leader (really - the process group). - JLIST_CHANGED_ONLY) - Use format JLIST_NORMAL, but list only jobs about which - the user has not been notified. */ - -/* Print status for pipeline P. If JOB_INDEX is >= 0, it is the index into - the JOBS array corresponding to this pipeline. FORMAT is as described - above. Must be called with SIGCHLD blocked. - - If you're printing a pipeline that's not in the jobs array, like the - current pipeline as it's being created, pass -1 for JOB_INDEX */ -static void -print_pipeline (p, job_index, format, stream) - PROCESS *p; - int job_index, format; - FILE *stream; -{ - PROCESS *first, *last, *show; - int es, name_padding; - char *temp; - - if (p == 0) - return; - - first = last = p; - while (last->next != first) - last = last->next; - - for (;;) - { - if (p != first) - fprintf (stream, format ? " " : " |"); - - if (format != JLIST_STANDARD) - fprintf (stream, "%5ld", (long)p->pid); - - fprintf (stream, " "); - - if (format > -1 && job_index >= 0) - { - show = format ? p : last; - temp = printable_job_status (job_index, show, format); - - if (p != first) - { - if (format) - { - if (show->running == first->running && - WSTATUS (show->status) == WSTATUS (first->status)) - temp = ""; - } - else - temp = (char *)NULL; - } - - if (temp) - { - fprintf (stream, "%s", temp); - - es = STRLEN (temp); - if (es == 0) - es = 2; /* strlen ("| ") */ - name_padding = LONGEST_SIGNAL_DESC - es; - - fprintf (stream, "%*s", name_padding, ""); - - if ((WIFSTOPPED (show->status) == 0) && - (WIFCONTINUED (show->status) == 0) && - WIFCORED (show->status)) - fprintf (stream, "(core dumped) "); - } - } - - if (p != first && format) - fprintf (stream, "| "); - - if (p->command) - fprintf (stream, "%s", p->command); - - if (p == last && job_index >= 0) - { - temp = current_working_directory (); - - if (RUNNING (job_index) && (IS_FOREGROUND (job_index) == 0)) - fprintf (stream, " &"); - - if (strcmp (temp, jobs[job_index]->wd) != 0) - fprintf (stream, - " (wd: %s)", polite_directory_format (jobs[job_index]->wd)); - } - - if (format || (p == last)) - { - /* We need to add a CR only if this is an interactive shell, and - we're reporting the status of a completed job asynchronously. - We can't really check whether this particular job is being - reported asynchronously, so just add the CR if the shell is - currently interactive and asynchronous notification is enabled. */ - if (asynchronous_notification && interactive) - fprintf (stream, "\r\n"); - else - fprintf (stream, "\n"); - } - - if (p == last) - break; - p = p->next; - } - fflush (stream); -} - -/* Print information to STREAM about jobs[JOB_INDEX] according to FORMAT. - Must be called with SIGCHLD blocked or queued with queue_sigchld */ -static void -pretty_print_job (job_index, format, stream) - int job_index, format; - FILE *stream; -{ - register PROCESS *p; - - /* Format only pid information about the process group leader? */ - if (format == JLIST_PID_ONLY) - { - fprintf (stream, "%ld\n", (long)jobs[job_index]->pipe->pid); - return; - } - - if (format == JLIST_CHANGED_ONLY) - { - if (IS_NOTIFIED (job_index)) - return; - format = JLIST_STANDARD; - } - - if (format != JLIST_NONINTERACTIVE) - fprintf (stream, "[%d]%c ", job_index + 1, - (job_index == js.j_current) ? '+': - (job_index == js.j_previous) ? '-' : ' '); - - if (format == JLIST_NONINTERACTIVE) - format = JLIST_LONG; - - p = jobs[job_index]->pipe; - - print_pipeline (p, job_index, format, stream); - - /* We have printed information about this job. When the job's - status changes, waitchld () sets the notification flag to 0. */ - jobs[job_index]->flags |= J_NOTIFIED; -} - -static int -print_job (job, format, state, job_index) - JOB *job; - int format, state, job_index; -{ - if (state == -1 || (JOB_STATE)state == job->state) - pretty_print_job (job_index, format, stdout); - return (0); -} - -void -list_one_job (job, format, ignore, job_index) - JOB *job; - int format, ignore, job_index; -{ - pretty_print_job (job_index, format, stdout); -} - -void -list_stopped_jobs (format) - int format; -{ - cleanup_dead_jobs (); - map_over_jobs (print_job, format, (int)JSTOPPED); -} - -void -list_running_jobs (format) - int format; -{ - cleanup_dead_jobs (); - map_over_jobs (print_job, format, (int)JRUNNING); -} - -/* List jobs. If FORMAT is non-zero, then the long form of the information - is printed, else just a short version. */ -void -list_all_jobs (format) - int format; -{ - cleanup_dead_jobs (); - map_over_jobs (print_job, format, -1); -} - -/* Fork, handling errors. Returns the pid of the newly made child, or 0. - COMMAND is just for remembering the name of the command; we don't do - anything else with it. ASYNC_P says what to do with the tty. If - non-zero, then don't give it away. */ -pid_t -make_child (command, async_p) - char *command; - int async_p; -{ - sigset_t set, oset; - pid_t pid; - - sigemptyset (&set); - sigaddset (&set, SIGCHLD); - sigaddset (&set, SIGINT); - sigemptyset (&oset); - sigprocmask (SIG_BLOCK, &set, &oset); - - making_children (); - -#if defined (BUFFERED_INPUT) - /* If default_buffered_input is active, we are reading a script. If - the command is asynchronous, we have already duplicated /dev/null - as fd 0, but have not changed the buffered stream corresponding to - the old fd 0. We don't want to sync the stream in this case. */ - if (default_buffered_input != -1 && - (!async_p || default_buffered_input > 0)) - sync_buffered_stream (default_buffered_input); -#endif /* BUFFERED_INPUT */ - - /* Create the child, handle severe errors. */ - if ((pid = fork ()) < 0) - { - sys_error ("fork"); - - /* Kill all of the processes in the current pipeline. */ - terminate_current_pipeline (); - - /* Discard the current pipeline, if any. */ - if (the_pipeline) - kill_current_pipeline (); - - throw_to_top_level (); /* Reset signals, etc. */ - } - - if (pid == 0) - { - /* In the child. Give this child the right process group, set the - signals to the default state for a new process. */ - pid_t mypid; - - mypid = getpid (); -#if defined (BUFFERED_INPUT) - /* Close default_buffered_input if it's > 0. We don't close it if it's - 0 because that's the file descriptor used when redirecting input, - and it's wrong to close the file in that case. */ - unset_bash_input (0); -#endif /* BUFFERED_INPUT */ - - /* Restore top-level signal mask. */ - sigprocmask (SIG_SETMASK, &top_level_mask, (sigset_t *)NULL); - - if (job_control) - { - /* All processes in this pipeline belong in the same - process group. */ - - if (pipeline_pgrp == 0) /* This is the first child. */ - pipeline_pgrp = mypid; - - /* Check for running command in backquotes. */ - if (pipeline_pgrp == shell_pgrp) - ignore_tty_job_signals (); - else - default_tty_job_signals (); - - /* Set the process group before trying to mess with the terminal's - process group. This is mandated by POSIX. */ - /* This is in accordance with the Posix 1003.1 standard, - section B.7.2.4, which says that trying to set the terminal - process group with tcsetpgrp() to an unused pgrp value (like - this would have for the first child) is an error. Section - B.4.3.3, p. 237 also covers this, in the context of job control - shells. */ - if (setpgid (mypid, pipeline_pgrp) < 0) - sys_error ("child setpgid (%ld to %ld)", (long)mypid, (long)pipeline_pgrp); - - /* By convention (and assumption above), if - pipeline_pgrp == shell_pgrp, we are making a child for - command substitution. - In this case, we don't want to give the terminal to the - shell's process group (we could be in the middle of a - pipeline, for example). */ - if (async_p == 0 && pipeline_pgrp != shell_pgrp) - give_terminal_to (pipeline_pgrp, 0); - -#if defined (PGRP_PIPE) - if (pipeline_pgrp == mypid) - pipe_read (pgrp_pipe); -#endif - } - else /* Without job control... */ - { - if (pipeline_pgrp == 0) - pipeline_pgrp = shell_pgrp; - - /* If these signals are set to SIG_DFL, we encounter the curious - situation of an interactive ^Z to a running process *working* - and stopping the process, but being unable to do anything with - that process to change its state. On the other hand, if they - are set to SIG_IGN, jobs started from scripts do not stop when - the shell running the script gets a SIGTSTP and stops. */ - - default_tty_job_signals (); - } - -#if defined (PGRP_PIPE) - /* Release the process group pipe, since our call to setpgid () - is done. The last call to pipe_close is done in stop_pipeline. */ - pipe_close (pgrp_pipe); -#endif /* PGRP_PIPE */ - - if (async_p) - last_asynchronous_pid = mypid; -#if defined (RECYCLES_PIDS) - else if (last_asynchronous_pid == mypid) - /* Avoid pid aliasing. 1 seems like a safe, unusual pid value. */ - last_asynchronous_pid = 1; -#endif - } - else - { - /* In the parent. Remember the pid of the child just created - as the proper pgrp if this is the first child. */ - - if (job_control) - { - if (pipeline_pgrp == 0) - { - pipeline_pgrp = pid; - /* Don't twiddle terminal pgrps in the parent! This is the bug, - not the good thing of twiddling them in the child! */ - /* give_terminal_to (pipeline_pgrp, 0); */ - } - /* This is done on the recommendation of the Rationale section of - the POSIX 1003.1 standard, where it discusses job control and - shells. It is done to avoid possible race conditions. (Ref. - 1003.1 Rationale, section B.4.3.3, page 236). */ - setpgid (pid, pipeline_pgrp); - } - else - { - if (pipeline_pgrp == 0) - pipeline_pgrp = shell_pgrp; - } - - /* Place all processes into the jobs array regardless of the - state of job_control. */ - add_process (command, pid); - - if (async_p) - last_asynchronous_pid = pid; -#if defined (RECYCLES_PIDS) - else if (last_asynchronous_pid == pid) - /* Avoid pid aliasing. 1 seems like a safe, unusual pid value. */ - last_asynchronous_pid = 1; -#endif - -#if !defined (RECYCLES_PIDS) - /* Only check for saved status if we've saved more than CHILD_MAX - statuses, unless the system recycles pids. */ - if ((js.c_reaped + bgpids.npid) >= js.c_childmax) -#endif - bgp_delete (pid); /* new process, discard any saved status */ - - last_made_pid = pid; - - /* keep stats */ - js.c_totforked++; - js.c_living++; - - /* Unblock SIGINT and SIGCHLD unless creating a pipeline, in which case - SIGCHLD remains blocked until all commands in the pipeline have been - created. */ - sigprocmask (SIG_SETMASK, &oset, (sigset_t *)NULL); - } - - return (pid); -} - -/* These two functions are called only in child processes. */ -void -ignore_tty_job_signals () -{ - set_signal_handler (SIGTSTP, SIG_IGN); - set_signal_handler (SIGTTIN, SIG_IGN); - set_signal_handler (SIGTTOU, SIG_IGN); -} - -void -default_tty_job_signals () -{ - set_signal_handler (SIGTSTP, SIG_DFL); - set_signal_handler (SIGTTIN, SIG_DFL); - set_signal_handler (SIGTTOU, SIG_DFL); -} - -/* When we end a job abnormally, or if we stop a job, we set the tty to the - state kept in here. When a job ends normally, we set the state in here - to the state of the tty. */ - -static TTYSTRUCT shell_tty_info; - -#if defined (NEW_TTY_DRIVER) -static struct tchars shell_tchars; -static struct ltchars shell_ltchars; -#endif /* NEW_TTY_DRIVER */ - -#if defined (NEW_TTY_DRIVER) && defined (DRAIN_OUTPUT) -/* Since the BSD tty driver does not allow us to change the tty modes - while simultaneously waiting for output to drain and preserving - typeahead, we have to drain the output ourselves before calling - ioctl. We cheat by finding the length of the output queue, and - using select to wait for an appropriate length of time. This is - a hack, and should be labeled as such (it's a hastily-adapted - mutation of a `usleep' implementation). It's only reason for - existing is the flaw in the BSD tty driver. */ - -static int ttspeeds[] = -{ - 0, 50, 75, 110, 134, 150, 200, 300, 600, 1200, - 1800, 2400, 4800, 9600, 19200, 38400 -}; - -static void -draino (fd, ospeed) - int fd, ospeed; -{ - register int delay = ttspeeds[ospeed]; - int n; - - if (!delay) - return; - - while ((ioctl (fd, TIOCOUTQ, &n) == 0) && n) - { - if (n > (delay / 100)) - { - struct timeval tv; - - n *= 10; /* 2 bits more for conservativeness. */ - tv.tv_sec = n / delay; - tv.tv_usec = ((n % delay) * 1000000) / delay; - select (fd, (fd_set *)0, (fd_set *)0, (fd_set *)0, &tv); - } - else - break; - } -} -#endif /* NEW_TTY_DRIVER && DRAIN_OUTPUT */ - -/* Return the fd from which we are actually getting input. */ -#define input_tty() (shell_tty != -1) ? shell_tty : fileno (stderr) - -/* Fill the contents of shell_tty_info with the current tty info. */ -int -get_tty_state () -{ - int tty; - - tty = input_tty (); - if (tty != -1) - { -#if defined (NEW_TTY_DRIVER) - ioctl (tty, TIOCGETP, &shell_tty_info); - ioctl (tty, TIOCGETC, &shell_tchars); - ioctl (tty, TIOCGLTC, &shell_ltchars); -#endif /* NEW_TTY_DRIVER */ - -#if defined (TERMIO_TTY_DRIVER) - ioctl (tty, TCGETA, &shell_tty_info); -#endif /* TERMIO_TTY_DRIVER */ - -#if defined (TERMIOS_TTY_DRIVER) - if (tcgetattr (tty, &shell_tty_info) < 0) - { -#if 0 - /* Only print an error message if we're really interactive at - this time. */ - if (interactive) - sys_error ("[%ld: %d] tcgetattr", (long)getpid (), shell_level); -#endif - return -1; - } -#endif /* TERMIOS_TTY_DRIVER */ - if (check_window_size) - get_new_window_size (0); - } - return 0; -} - -/* Make the current tty use the state in shell_tty_info. */ -int -set_tty_state () -{ - int tty; - - tty = input_tty (); - if (tty != -1) - { -#if defined (NEW_TTY_DRIVER) -# if defined (DRAIN_OUTPUT) - draino (tty, shell_tty_info.sg_ospeed); -# endif /* DRAIN_OUTPUT */ - ioctl (tty, TIOCSETN, &shell_tty_info); - ioctl (tty, TIOCSETC, &shell_tchars); - ioctl (tty, TIOCSLTC, &shell_ltchars); -#endif /* NEW_TTY_DRIVER */ - -#if defined (TERMIO_TTY_DRIVER) - ioctl (tty, TCSETAW, &shell_tty_info); -#endif /* TERMIO_TTY_DRIVER */ - -#if defined (TERMIOS_TTY_DRIVER) - if (tcsetattr (tty, TCSADRAIN, &shell_tty_info) < 0) - { - /* Only print an error message if we're really interactive at - this time. */ - if (interactive) - sys_error ("[%ld: %d] tcsetattr", (long)getpid (), shell_level); - return -1; - } -#endif /* TERMIOS_TTY_DRIVER */ - } - return 0; -} - -/* Given an index into the jobs array JOB, return the PROCESS struct of the last - process in that job's pipeline. This is the one whose exit status - counts. Must be called with SIGCHLD blocked or queued. */ -static PROCESS * -find_last_proc (job, block) - int job; - int block; -{ - register PROCESS *p; - sigset_t set, oset; - - if (block) - BLOCK_CHILD (set, oset); - - p = jobs[job]->pipe; - while (p->next != jobs[job]->pipe) - p = p->next; - - if (block) - UNBLOCK_CHILD (oset); - - return (p); -} - -static pid_t -find_last_pid (job, block) - int job; - int block; -{ - PROCESS *p; - - p = find_last_proc (job, block); - /* Possible race condition here. */ - return p->pid; -} - -/* Wait for a particular child of the shell to finish executing. - This low-level function prints an error message if PID is not - a child of this shell. It returns -1 if it fails, or whatever - wait_for returns otherwise. If the child is not found in the - jobs table, it returns 127. */ -int -wait_for_single_pid (pid) - pid_t pid; -{ - register PROCESS *child; - sigset_t set, oset; - int r, job; - - BLOCK_CHILD (set, oset); - child = find_pipeline (pid, 0, (int *)NULL); - UNBLOCK_CHILD (oset); - - if (child == 0) - { - r = bgp_search (pid); - if (r >= 0) - return r; - } - - if (child == 0) - { - internal_error (_("wait: pid %ld is not a child of this shell"), (long)pid); - return (127); - } - - r = wait_for (pid); - - /* POSIX.2: if we just waited for a job, we can remove it from the jobs - table. */ - BLOCK_CHILD (set, oset); - job = find_job (pid, 0, NULL); - if (job != NO_JOB && jobs[job] && DEADJOB (job)) - jobs[job]->flags |= J_NOTIFIED; - UNBLOCK_CHILD (oset); - - /* If running in posix mode, remove the job from the jobs table immediately */ - if (posixly_correct) - cleanup_dead_jobs (); - - return r; -} - -/* Wait for all of the backgrounds of this shell to finish. */ -void -wait_for_background_pids () -{ - register int i, r, waited_for; - sigset_t set, oset; - pid_t pid; - - for (waited_for = 0;;) - { - BLOCK_CHILD (set, oset); - - /* find first running job; if none running in foreground, break */ - /* XXX could use js.j_firstj here */ - for (i = 0; i < js.j_jobslots; i++) - { -#if defined (DEBUG) - if (i < js.j_firstj && jobs[i]) - itrace("wait_for_background_pids: job %d non-null before js.j_firstj (%d)", i, js.j_firstj); -#endif - if (jobs[i] && RUNNING (i) && IS_FOREGROUND (i) == 0) - break; - } - if (i == js.j_jobslots) - { - UNBLOCK_CHILD (oset); - break; - } - - /* now wait for the last pid in that job. */ - pid = find_last_pid (i, 0); - UNBLOCK_CHILD (oset); - QUIT; - errno = 0; /* XXX */ - r = wait_for_single_pid (pid); - if (r == -1) - { - /* If we're mistaken about job state, compensate. */ - if (errno == ECHILD) - mark_all_jobs_as_dead (); - } - else - waited_for++; - } - - /* POSIX.2 says the shell can discard the statuses of all completed jobs if - `wait' is called with no arguments. */ - mark_dead_jobs_as_notified (1); - cleanup_dead_jobs (); - bgp_clear (); -} - -/* Make OLD_SIGINT_HANDLER the SIGINT signal handler. */ -#define INVALID_SIGNAL_HANDLER (SigHandler *)wait_for_background_pids -static SigHandler *old_sigint_handler = INVALID_SIGNAL_HANDLER; - -static void -restore_sigint_handler () -{ - if (old_sigint_handler != INVALID_SIGNAL_HANDLER) - { - set_signal_handler (SIGINT, old_sigint_handler); - old_sigint_handler = INVALID_SIGNAL_HANDLER; - } -} - -static int wait_sigint_received; - -/* Handle SIGINT while we are waiting for children in a script to exit. - The `wait' builtin should be interruptible, but all others should be - effectively ignored (i.e. not cause the shell to exit). */ -static sighandler -wait_sigint_handler (sig) - int sig; -{ - SigHandler *sigint_handler; - - if (interrupt_immediately || - (this_shell_builtin && this_shell_builtin == wait_builtin)) - { - last_command_exit_value = EXECUTION_FAILURE; - restore_sigint_handler (); - /* If we got a SIGINT while in `wait', and SIGINT is trapped, do - what POSIX.2 says (see builtins/wait.def for more info). */ - if (this_shell_builtin && this_shell_builtin == wait_builtin && - signal_is_trapped (SIGINT) && - ((sigint_handler = trap_to_sighandler (SIGINT)) == trap_handler)) - { - interrupt_immediately = 0; - trap_handler (SIGINT); /* set pending_traps[SIGINT] */ - wait_signal_received = SIGINT; - longjmp (wait_intr_buf, 1); - } - - ADDINTERRUPT; - QUIT; - } - - /* XXX - should this be interrupt_state? If it is, the shell will act - as if it got the SIGINT interrupt. */ - wait_sigint_received = 1; - - /* Otherwise effectively ignore the SIGINT and allow the running job to - be killed. */ - SIGRETURN (0); -} - -static int -process_exit_signal (status) - WAIT status; -{ - return (WIFSIGNALED (status) ? WTERMSIG (status) : 0); -} - -static int -process_exit_status (status) - WAIT status; -{ - if (WIFSIGNALED (status)) - return (128 + WTERMSIG (status)); - else if (WIFSTOPPED (status) == 0) - return (WEXITSTATUS (status)); - else - return (EXECUTION_SUCCESS); -} - -/* Return the exit status of the last process in the pipeline for job JOB. - This is the exit status of the entire job. */ -static WAIT -raw_job_exit_status (job) - int job; -{ - register PROCESS *p; - int fail; - - if (pipefail_opt) - { - fail = 0; - p = jobs[job]->pipe; - do - { - if (p->status != EXECUTION_SUCCESS) fail = p->status; - p = p->next; - } - while (p != jobs[job]->pipe); - return fail; - } - - for (p = jobs[job]->pipe; p->next != jobs[job]->pipe; p = p->next) - ; - return (p->status); -} - -/* Return the exit status of job JOB. This is the exit status of the last - (rightmost) process in the job's pipeline, modified if the job was killed - by a signal or stopped. */ -static int -job_exit_status (job) - int job; -{ - return (process_exit_status (raw_job_exit_status (job))); -} - -static int -job_exit_signal (job) - int job; -{ - return (process_exit_signal (raw_job_exit_status (job))); -} - -#define FIND_CHILD(pid, child) \ - do \ - { \ - child = find_pipeline (pid, 0, (int *)NULL); \ - if (child == 0) \ - { \ - give_terminal_to (shell_pgrp, 0); \ - UNBLOCK_CHILD (oset); \ - internal_error (_("wait_for: No record of process %ld"), (long)pid); \ - restore_sigint_handler (); \ - return (termination_state = 127); \ - } \ - } \ - while (0) - -/* Wait for pid (one of our children) to terminate, then - return the termination state. Returns 127 if PID is not found in - the jobs table. Returns -1 if waitchld() returns -1, indicating - that there are no unwaited-for child processes. */ -int -wait_for (pid) - pid_t pid; -{ - int job, termination_state, r; - WAIT s; - register PROCESS *child; - sigset_t set, oset; - register PROCESS *p; - - /* In the case that this code is interrupted, and we longjmp () out of it, - we are relying on the code in throw_to_top_level () to restore the - top-level signal mask. */ - BLOCK_CHILD (set, oset); - - /* Ignore interrupts while waiting for a job run without job control - to finish. We don't want the shell to exit if an interrupt is - received, only if one of the jobs run is killed via SIGINT. If - job control is not set, the job will be run in the same pgrp as - the shell, and the shell will see any signals the job gets. */ - - /* This is possibly a race condition -- should it go in stop_pipeline? */ - wait_sigint_received = 0; - if (job_control == 0) - old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler); - - termination_state = last_command_exit_value; - - if (interactive && job_control == 0) - QUIT; - - /* If we say wait_for (), then we have a record of this child somewhere. - If it and none of its peers are running, don't call waitchld(). */ - - job = NO_JOB; - do - { - FIND_CHILD (pid, child); - - /* If this child is part of a job, then we are really waiting for the - job to finish. Otherwise, we are waiting for the child to finish. - We check for JDEAD in case the job state has been set by waitchld - after receipt of a SIGCHLD. */ - if (job == NO_JOB) - job = find_job (pid, 0, NULL); - - /* waitchld() takes care of setting the state of the job. If the job - has already exited before this is called, sigchld_handler will have - called waitchld and the state will be set to JDEAD. */ - - if (PRUNNING(child) || (job != NO_JOB && RUNNING (job))) - { -#if defined (WAITPID_BROKEN) /* SCOv4 */ - sigset_t suspend_set; - sigemptyset (&suspend_set); - sigsuspend (&suspend_set); -#else /* !WAITPID_BROKEN */ -# if defined (MUST_UNBLOCK_CHLD) - struct sigaction act, oact; - sigset_t nullset, chldset; - - sigemptyset (&nullset); - sigemptyset (&chldset); - sigprocmask (SIG_SETMASK, &nullset, &chldset); - act.sa_handler = SIG_DFL; - sigemptyset (&act.sa_mask); - sigemptyset (&oact.sa_mask); - act.sa_flags = 0; - sigaction (SIGCHLD, &act, &oact); -# endif - queue_sigchld = 1; - r = waitchld (pid, 1); -# if defined (MUST_UNBLOCK_CHLD) - sigaction (SIGCHLD, &oact, (struct sigaction *)NULL); - sigprocmask (SIG_SETMASK, &chldset, (sigset_t *)NULL); -# endif - queue_sigchld = 0; - if (r == -1 && errno == ECHILD && this_shell_builtin == wait_builtin) - { - termination_state = -1; - goto wait_for_return; - } - - /* If child is marked as running, but waitpid() returns -1/ECHILD, - there is something wrong. Somewhere, wait should have returned - that child's pid. Mark the child as not running and the job, - if it exists, as JDEAD. */ - if (r == -1 && errno == ECHILD) - { - child->running = PS_DONE; - child->status = 0; /* XXX -- can't find true status */ - if (job != NO_JOB) - { - jobs[job]->state = JDEAD; - js.c_reaped++; - js.j_ndead++; - } - } -#endif /* WAITPID_BROKEN */ - } - - /* If the shell is interactive, and job control is disabled, see - if the foreground process has died due to SIGINT and jump out - of the wait loop if it has. waitchld has already restored the - old SIGINT signal handler. */ - if (interactive && job_control == 0) - QUIT; - } - while (PRUNNING (child) || (job != NO_JOB && RUNNING (job))); - - /* The exit state of the command is either the termination state of the - child, or the termination state of the job. If a job, the status - of the last child in the pipeline is the significant one. If the command - or job was terminated by a signal, note that value also. */ - termination_state = (job != NO_JOB) ? job_exit_status (job) - : process_exit_status (child->status); - last_command_exit_signal = (job != NO_JOB) ? job_exit_signal (job) - : process_exit_signal (child->status); - - /* XXX */ - if ((job != NO_JOB && JOBSTATE (job) == JSTOPPED) || WIFSTOPPED (child->status)) - termination_state = 128 + WSTOPSIG (child->status); - - if (job == NO_JOB || IS_JOBCONTROL (job)) - { - /* XXX - under what circumstances is a job not present in the jobs - table (job == NO_JOB)? - 1. command substitution - - In the case of command substitution, at least, it's probably not - the right thing to give the terminal to the shell's process group, - even though there is code in subst.c:command_substitute to work - around it. - - Things that don't: - $PROMPT_COMMAND execution - process substitution - */ -#if 0 -if (job == NO_JOB) - itrace("wait_for: job == NO_JOB, giving the terminal to shell_pgrp (%ld)", (long)shell_pgrp); -#endif - - give_terminal_to (shell_pgrp, 0); - } - - /* If the command did not exit cleanly, or the job is just - being stopped, then reset the tty state back to what it - was before this command. Reset the tty state and notify - the user of the job termination only if the shell is - interactive. Clean up any dead jobs in either case. */ - if (job != NO_JOB) - { - if (interactive_shell && subshell_environment == 0) - { - /* This used to use `child->status'. That's wrong, however, for - pipelines. `child' is the first process in the pipeline. It's - likely that the process we want to check for abnormal termination - or stopping is the last process in the pipeline, especially if - it's long-lived and the first process is short-lived. Since we - know we have a job here, we can check all the processes in this - job's pipeline and see if one of them stopped or terminated due - to a signal. We might want to change this later to just check - the last process in the pipeline. If no process exits due to a - signal, S is left as the status of the last job in the pipeline. */ - p = jobs[job]->pipe; - do - { - s = p->status; - if (WIFSIGNALED(s) || WIFSTOPPED(s)) - break; - p = p->next; - } - while (p != jobs[job]->pipe); - - if (WIFSIGNALED (s) || WIFSTOPPED (s)) - { - set_tty_state (); - - /* If the current job was stopped or killed by a signal, and - the user has requested it, get a possibly new window size */ - if (check_window_size && (job == js.j_current || IS_FOREGROUND (job))) - get_new_window_size (0); - } - else - get_tty_state (); - - /* If job control is enabled, the job was started with job - control, the job was the foreground job, and it was killed - by SIGINT, then print a newline to compensate for the kernel - printing the ^C without a trailing newline. */ - if (job_control && IS_JOBCONTROL (job) && IS_FOREGROUND (job) && - WIFSIGNALED (s) && WTERMSIG (s) == SIGINT) - { - /* If SIGINT is not trapped and the shell is in a for, while, - or until loop, act as if the shell received SIGINT as - well, so the loop can be broken. This doesn't call the - SIGINT signal handler; maybe it should. */ - if (signal_is_trapped (SIGINT) == 0 && loop_level) - ADDINTERRUPT; - else - { - putchar ('\n'); - fflush (stdout); - } - } - } - - /* Moved here from set_job_status_and_cleanup, which is in the SIGCHLD - signal handler path */ - if (DEADJOB (job) && IS_FOREGROUND (job) /*&& subshell_environment == 0*/) - setjstatus (job); - - /* If this job is dead, notify the user of the status. If the shell - is interactive, this will display a message on the terminal. If - the shell is not interactive, make sure we turn on the notify bit - so we don't get an unwanted message about the job's termination, - and so delete_job really clears the slot in the jobs table. */ - notify_and_cleanup (); - } - -wait_for_return: - - UNBLOCK_CHILD (oset); - - /* Restore the original SIGINT signal handler before we return. */ - restore_sigint_handler (); - - return (termination_state); -} - -/* Wait for the last process in the pipeline for JOB. Returns whatever - wait_for returns: the last process's termination state or -1 if there - are no unwaited-for child processes or an error occurs. */ -int -wait_for_job (job) - int job; -{ - pid_t pid; - int r; - sigset_t set, oset; - - BLOCK_CHILD(set, oset); - if (JOBSTATE (job) == JSTOPPED) - internal_warning (_("wait_for_job: job %d is stopped"), job+1); - - pid = find_last_pid (job, 0); - UNBLOCK_CHILD(oset); - r = wait_for (pid); - - /* POSIX.2: we can remove the job from the jobs table if we just waited - for it. */ - BLOCK_CHILD (set, oset); - if (job != NO_JOB && jobs[job] && DEADJOB (job)) - jobs[job]->flags |= J_NOTIFIED; - UNBLOCK_CHILD (oset); - - return r; -} - -/* Print info about dead jobs, and then delete them from the list - of known jobs. This does not actually delete jobs when the - shell is not interactive, because the dead jobs are not marked - as notified. */ -void -notify_and_cleanup () -{ - if (jobs_list_frozen) - return; - - if (interactive || interactive_shell == 0 || sourcelevel) - notify_of_job_status (); - - cleanup_dead_jobs (); -} - -/* Make dead jobs disappear from the jobs array without notification. - This is used when the shell is not interactive. */ -void -reap_dead_jobs () -{ - mark_dead_jobs_as_notified (0); - cleanup_dead_jobs (); -} - -/* Return the next closest (chronologically) job to JOB which is in - STATE. STATE can be JSTOPPED, JRUNNING. NO_JOB is returned if - there is no next recent job. */ -static int -most_recent_job_in_state (job, state) - int job; - JOB_STATE state; -{ - register int i, result; - sigset_t set, oset; - - BLOCK_CHILD (set, oset); - - for (result = NO_JOB, i = job - 1; i >= 0; i--) - { - if (jobs[i] && (JOBSTATE (i) == state)) - { - result = i; - break; - } - } - - UNBLOCK_CHILD (oset); - - return (result); -} - -/* Return the newest *stopped* job older than JOB, or NO_JOB if not - found. */ -static int -job_last_stopped (job) - int job; -{ - return (most_recent_job_in_state (job, JSTOPPED)); -} - -/* Return the newest *running* job older than JOB, or NO_JOB if not - found. */ -static int -job_last_running (job) - int job; -{ - return (most_recent_job_in_state (job, JRUNNING)); -} - -/* Make JOB be the current job, and make previous be useful. Must be - called with SIGCHLD blocked. */ -static void -set_current_job (job) - int job; -{ - int candidate; - - if (js.j_current != job) - { - js.j_previous = js.j_current; - js.j_current = job; - } - - /* First choice for previous job is the old current job. */ - if (js.j_previous != js.j_current && - js.j_previous != NO_JOB && - jobs[js.j_previous] && - STOPPED (js.j_previous)) - return; - - /* Second choice: Newest stopped job that is older than - the current job. */ - candidate = NO_JOB; - if (STOPPED (js.j_current)) - { - candidate = job_last_stopped (js.j_current); - - if (candidate != NO_JOB) - { - js.j_previous = candidate; - return; - } - } - - /* If we get here, there is either only one stopped job, in which case it is - the current job and the previous job should be set to the newest running - job, or there are only running jobs and the previous job should be set to - the newest running job older than the current job. We decide on which - alternative to use based on whether or not JOBSTATE(js.j_current) is - JSTOPPED. */ - - candidate = RUNNING (js.j_current) ? job_last_running (js.j_current) - : job_last_running (js.j_jobslots); - - if (candidate != NO_JOB) - { - js.j_previous = candidate; - return; - } - - /* There is only a single job, and it is both `+' and `-'. */ - js.j_previous = js.j_current; -} - -/* Make current_job be something useful, if it isn't already. */ - -/* Here's the deal: The newest non-running job should be `+', and the - next-newest non-running job should be `-'. If there is only a single - stopped job, the js.j_previous is the newest non-running job. If there - are only running jobs, the newest running job is `+' and the - next-newest running job is `-'. Must be called with SIGCHLD blocked. */ - -static void -reset_current () -{ - int candidate; - - if (js.j_jobslots && js.j_current != NO_JOB && jobs[js.j_current] && STOPPED (js.j_current)) - candidate = js.j_current; - else - { - candidate = NO_JOB; - - /* First choice: the previous job. */ - if (js.j_previous != NO_JOB && jobs[js.j_previous] && STOPPED (js.j_previous)) - candidate = js.j_previous; - - /* Second choice: the most recently stopped job. */ - if (candidate == NO_JOB) - candidate = job_last_stopped (js.j_jobslots); - - /* Third choice: the newest running job. */ - if (candidate == NO_JOB) - candidate = job_last_running (js.j_jobslots); - } - - /* If we found a job to use, then use it. Otherwise, there - are no jobs period. */ - if (candidate != NO_JOB) - set_current_job (candidate); - else - js.j_current = js.j_previous = NO_JOB; -} - -/* Set up the job structures so we know the job and its processes are - all running. */ -static void -set_job_running (job) - int job; -{ - register PROCESS *p; - - /* Each member of the pipeline is now running. */ - p = jobs[job]->pipe; - - do - { - if (WIFSTOPPED (p->status)) - p->running = PS_RUNNING; /* XXX - could be PS_STOPPED */ - p = p->next; - } - while (p != jobs[job]->pipe); - - /* This means that the job is running. */ - JOBSTATE (job) = JRUNNING; -} - -/* Start a job. FOREGROUND if non-zero says to do that. Otherwise, - start the job in the background. JOB is a zero-based index into - JOBS. Returns -1 if it is unable to start a job, and the return - status of the job otherwise. */ -int -start_job (job, foreground) - int job, foreground; -{ - register PROCESS *p; - int already_running; - sigset_t set, oset; - char *wd, *s; - static TTYSTRUCT save_stty; - - BLOCK_CHILD (set, oset); - - if (DEADJOB (job)) - { - internal_error (_("%s: job has terminated"), this_command_name); - UNBLOCK_CHILD (oset); - return (-1); - } - - already_running = RUNNING (job); - - if (foreground == 0 && already_running) - { - internal_error (_("%s: job %d already in background"), this_command_name, job + 1); - UNBLOCK_CHILD (oset); - return (0); /* XPG6/SUSv3 says this is not an error */ - } - - wd = current_working_directory (); - - /* You don't know about the state of this job. Do you? */ - jobs[job]->flags &= ~J_NOTIFIED; - - if (foreground) - { - set_current_job (job); - jobs[job]->flags |= J_FOREGROUND; - } - - /* Tell the outside world what we're doing. */ - p = jobs[job]->pipe; - - if (foreground == 0) - { - /* POSIX.2 says `bg' doesn't give any indication about current or - previous job. */ - if (posixly_correct == 0) - s = (job == js.j_current) ? "+ ": ((job == js.j_previous) ? "- " : " "); - else - s = " "; - printf ("[%d]%s", job + 1, s); - } - - do - { - printf ("%s%s", - p->command ? p->command : "", - p->next != jobs[job]->pipe? " | " : ""); - p = p->next; - } - while (p != jobs[job]->pipe); - - if (foreground == 0) - printf (" &"); - - if (strcmp (wd, jobs[job]->wd) != 0) - printf (" (wd: %s)", polite_directory_format (jobs[job]->wd)); - - printf ("\n"); - - /* Run the job. */ - if (already_running == 0) - set_job_running (job); - - /* Save the tty settings before we start the job in the foreground. */ - if (foreground) - { - get_tty_state (); - save_stty = shell_tty_info; - /* Give the terminal to this job. */ - if (IS_JOBCONTROL (job)) - give_terminal_to (jobs[job]->pgrp, 0); - } - else - jobs[job]->flags &= ~J_FOREGROUND; - - /* If the job is already running, then don't bother jump-starting it. */ - if (already_running == 0) - { - jobs[job]->flags |= J_NOTIFIED; - killpg (jobs[job]->pgrp, SIGCONT); - } - - if (foreground) - { - pid_t pid; - int s; - - pid = find_last_pid (job, 0); - UNBLOCK_CHILD (oset); - s = wait_for (pid); - shell_tty_info = save_stty; - set_tty_state (); - return (s); - } - else - { - reset_current (); - UNBLOCK_CHILD (oset); - return (0); - } -} - -/* Give PID SIGNAL. This determines what job the pid belongs to (if any). - If PID does belong to a job, and the job is stopped, then CONTinue the - job after giving it SIGNAL. Returns -1 on failure. If GROUP is non-null, - then kill the process group associated with PID. */ -int -kill_pid (pid, sig, group) - pid_t pid; - int sig, group; -{ - register PROCESS *p; - int job, result, negative; - sigset_t set, oset; - - if (pid < -1) - { - pid = -pid; - group = negative = 1; - } - else - negative = 0; - - result = EXECUTION_SUCCESS; - if (group) - { - BLOCK_CHILD (set, oset); - p = find_pipeline (pid, 0, &job); - - if (job != NO_JOB) - { - jobs[job]->flags &= ~J_NOTIFIED; - - /* Kill process in backquotes or one started without job control? */ - - /* If we're passed a pid < -1, just call killpg and see what happens */ - if (negative && jobs[job]->pgrp == shell_pgrp) - result = killpg (pid, sig); - /* If we're killing using job control notification, for example, - without job control active, we have to do things ourselves. */ - else if (jobs[job]->pgrp == shell_pgrp) - { - p = jobs[job]->pipe; - do - { - if (PALIVE (p) == 0) - continue; /* avoid pid recycling problem */ - kill (p->pid, sig); - if (PEXITED (p) && (sig == SIGTERM || sig == SIGHUP)) - kill (p->pid, SIGCONT); - p = p->next; - } - while (p != jobs[job]->pipe); - } - else - { - result = killpg (jobs[job]->pgrp, sig); - if (p && STOPPED (job) && (sig == SIGTERM || sig == SIGHUP)) - killpg (jobs[job]->pgrp, SIGCONT); - /* If we're continuing a stopped job via kill rather than bg or - fg, emulate the `bg' behavior. */ - if (p && STOPPED (job) && (sig == SIGCONT)) - { - set_job_running (job); - jobs[job]->flags &= ~J_FOREGROUND; - jobs[job]->flags |= J_NOTIFIED; - } - } - } - else - result = killpg (pid, sig); - - UNBLOCK_CHILD (oset); - } - else - result = kill (pid, sig); - - return (result); -} - -/* sigchld_handler () flushes at least one of the children that we are - waiting for. It gets run when we have gotten a SIGCHLD signal. */ -static sighandler -sigchld_handler (sig) - int sig; -{ - int n, oerrno; - - oerrno = errno; - REINSTALL_SIGCHLD_HANDLER; - sigchld++; - n = 0; - if (queue_sigchld == 0) - n = waitchld (-1, 0); - errno = oerrno; - SIGRETURN (n); -} - -/* waitchld() reaps dead or stopped children. It's called by wait_for and - sigchld_handler, and runs until there aren't any children terminating any - more. - If BLOCK is 1, this is to be a blocking wait for a single child, although - an arriving SIGCHLD could cause the wait to be non-blocking. It returns - the number of children reaped, or -1 if there are no unwaited-for child - processes. */ -static int -waitchld (wpid, block) - pid_t wpid; - int block; -{ - WAIT status; - PROCESS *child; - pid_t pid; - int call_set_current, last_stopped_job, job, children_exited, waitpid_flags; - static int wcontinued = WCONTINUED; /* run-time fix for glibc problem */ - - call_set_current = children_exited = 0; - last_stopped_job = NO_JOB; - - do - { - /* We don't want to be notified about jobs stopping if job control - is not active. XXX - was interactive_shell instead of job_control */ - waitpid_flags = (job_control && subshell_environment == 0) - ? (WUNTRACED|wcontinued) - : 0; - if (sigchld || block == 0) - waitpid_flags |= WNOHANG; - pid = WAITPID (-1, &status, waitpid_flags); - - /* WCONTINUED may be rejected by waitpid as invalid even when defined */ - if (wcontinued && pid < 0 && errno == EINVAL) - { - wcontinued = 0; - continue; /* jump back to the test and retry without WCONTINUED */ - } - - /* The check for WNOHANG is to make sure we decrement sigchld only - if it was non-zero before we called waitpid. */ - if (sigchld > 0 && (waitpid_flags & WNOHANG)) - sigchld--; - - /* If waitpid returns -1 with errno == ECHILD, there are no more - unwaited-for child processes of this shell. */ - if (pid < 0 && errno == ECHILD) - { - if (children_exited == 0) - return -1; - else - break; - } - - /* If waitpid returns 0, there are running children. If it returns -1, - the only other error POSIX says it can return is EINTR. */ - if (pid <= 0) - continue; /* jumps right to the test */ - - /* children_exited is used to run traps on SIGCHLD. We don't want to - run the trap if a process is just being continued. */ - if (WIFCONTINUED(status) == 0) - children_exited++; - - /* Locate our PROCESS for this pid. */ - child = find_process (pid, 1, &job); /* want living procs only */ - - /* It is not an error to have a child terminate that we did - not have a record of. This child could have been part of - a pipeline in backquote substitution. Even so, I'm not - sure child is ever non-zero. */ - if (child == 0) - continue; - - /* Remember status, and whether or not the process is running. */ - child->status = status; - child->running = WIFCONTINUED(status) ? PS_RUNNING : PS_DONE; - - if (PEXITED (child)) - { - js.c_totreaped++; - if (job != NO_JOB) - js.c_reaped++; - } - - if (job == NO_JOB) - continue; - - call_set_current += set_job_status_and_cleanup (job); - - if (STOPPED (job)) - last_stopped_job = job; - else if (DEADJOB (job) && last_stopped_job == job) - last_stopped_job = NO_JOB; - } - while ((sigchld || block == 0) && pid > (pid_t)0); - - /* If a job was running and became stopped, then set the current - job. Otherwise, don't change a thing. */ - if (call_set_current) - { - if (last_stopped_job != NO_JOB) - set_current_job (last_stopped_job); - else - reset_current (); - } - - /* Call a SIGCHLD trap handler for each child that exits, if one is set. */ - if (job_control && signal_is_trapped (SIGCHLD) && children_exited && - trap_list[SIGCHLD] != (char *)IGNORE_SIG) - run_sigchld_trap (children_exited); - - /* We have successfully recorded the useful information about this process - that has just changed state. If we notify asynchronously, and the job - that this process belongs to is no longer running, then notify the user - of that fact now. */ - if (asynchronous_notification && interactive) - notify_of_job_status (); - - return (children_exited); -} - -/* Set the status of JOB and perform any necessary cleanup if the job is - marked as JDEAD. - - Currently, the cleanup activity is restricted to handling any SIGINT - received while waiting for a foreground job to finish. */ -static int -set_job_status_and_cleanup (job) - int job; -{ - PROCESS *child; - int tstatus, job_state, any_stopped, any_tstped, call_set_current; - SigHandler *temp_handler; - - child = jobs[job]->pipe; - jobs[job]->flags &= ~J_NOTIFIED; - - call_set_current = 0; - - /* - * COMPUTE JOB STATUS - */ - - /* If all children are not running, but any of them is stopped, then - the job is stopped, not dead. */ - job_state = any_stopped = any_tstped = 0; - do - { - job_state |= PRUNNING (child); -#if 0 - if (PEXITED (child) && (WIFSTOPPED (child->status))) -#else - /* Only checking for WIFSTOPPED now, not for PS_DONE */ - if (PSTOPPED (child)) -#endif - { - any_stopped = 1; - any_tstped |= interactive && job_control && - (WSTOPSIG (child->status) == SIGTSTP); - } - child = child->next; - } - while (child != jobs[job]->pipe); - - /* If job_state != 0, the job is still running, so don't bother with - setting the process exit status and job state unless we're - transitioning from stopped to running. */ - if (job_state != 0 && JOBSTATE(job) != JSTOPPED) - return 0; - - /* - * SET JOB STATUS - */ - - /* The job is either stopped or dead. Set the state of the job accordingly. */ - if (any_stopped) - { - jobs[job]->state = JSTOPPED; - jobs[job]->flags &= ~J_FOREGROUND; - call_set_current++; - /* Suspending a job with SIGTSTP breaks all active loops. */ - if (any_tstped && loop_level) - breaking = loop_level; - } - else if (job_state != 0) /* was stopped, now running */ - { - jobs[job]->state = JRUNNING; - call_set_current++; - } - else - { - jobs[job]->state = JDEAD; - js.j_ndead++; - -#if 0 - if (IS_FOREGROUND (job)) - setjstatus (job); -#endif - - /* If this job has a cleanup function associated with it, call it - with `cleanarg' as the single argument, then set the function - pointer to NULL so it is not inadvertently called twice. The - cleanup function is responsible for deallocating cleanarg. */ - if (jobs[job]->j_cleanup) - { - (*jobs[job]->j_cleanup) (jobs[job]->cleanarg); - jobs[job]->j_cleanup = (sh_vptrfunc_t *)NULL; - } - } - - /* - * CLEANUP - * - * Currently, we just do special things if we got a SIGINT while waiting - * for a foreground job to complete - */ - - if (JOBSTATE (job) == JDEAD) - { - /* If we're running a shell script and we get a SIGINT with a - SIGINT trap handler, but the foreground job handles it and - does not exit due to SIGINT, run the trap handler but do not - otherwise act as if we got the interrupt. */ - if (wait_sigint_received && interactive_shell == 0 && - WIFSIGNALED (child->status) == 0 && IS_FOREGROUND (job) && - signal_is_trapped (SIGINT)) - { - int old_frozen; - wait_sigint_received = 0; - last_command_exit_value = process_exit_status (child->status); - - old_frozen = jobs_list_frozen; - jobs_list_frozen = 1; - tstatus = maybe_call_trap_handler (SIGINT); - jobs_list_frozen = old_frozen; - } - - /* If the foreground job is killed by SIGINT when job control is not - active, we need to perform some special handling. - - The check of wait_sigint_received is a way to determine if the - SIGINT came from the keyboard (in which case the shell has already - seen it, and wait_sigint_received is non-zero, because keyboard - signals are sent to process groups) or via kill(2) to the foreground - process by another process (or itself). If the shell did receive the - SIGINT, it needs to perform normal SIGINT processing. */ - else if (wait_sigint_received && (WTERMSIG (child->status) == SIGINT) && - IS_FOREGROUND (job) && IS_JOBCONTROL (job) == 0) - { - int old_frozen; - - wait_sigint_received = 0; - - /* If SIGINT is trapped, set the exit status so that the trap - handler can see it. */ - if (signal_is_trapped (SIGINT)) - last_command_exit_value = process_exit_status (child->status); - - /* If the signal is trapped, let the trap handler get it no matter - what and simply return if the trap handler returns. - maybe_call_trap_handler() may cause dead jobs to be removed from - the job table because of a call to execute_command. We work - around this by setting JOBS_LIST_FROZEN. */ - old_frozen = jobs_list_frozen; - jobs_list_frozen = 1; - tstatus = maybe_call_trap_handler (SIGINT); - jobs_list_frozen = old_frozen; - if (tstatus == 0 && old_sigint_handler != INVALID_SIGNAL_HANDLER) - { - /* wait_sigint_handler () has already seen SIGINT and - allowed the wait builtin to jump out. We need to - call the original SIGINT handler, if necessary. If - the original handler is SIG_DFL, we need to resend - the signal to ourselves. */ - - temp_handler = old_sigint_handler; - - /* Bogus. If we've reset the signal handler as the result - of a trap caught on SIGINT, then old_sigint_handler - will point to trap_handler, which now knows nothing about - SIGINT (if we reset the sighandler to the default). - In this case, we have to fix things up. What a crock. */ - if (temp_handler == trap_handler && signal_is_trapped (SIGINT) == 0) - temp_handler = trap_to_sighandler (SIGINT); - restore_sigint_handler (); - if (temp_handler == SIG_DFL) - termination_unwind_protect (SIGINT); - else if (temp_handler != SIG_IGN) - (*temp_handler) (SIGINT); - } - } - } - - return call_set_current; -} - -/* Build the array of values for the $PIPESTATUS variable from the set of - exit statuses of all processes in the job J. */ -static void -setjstatus (j) - int j; -{ -#if defined (ARRAY_VARS) - register int i; - register PROCESS *p; - - for (i = 1, p = jobs[j]->pipe; p->next != jobs[j]->pipe; p = p->next, i++) - ; - i++; - if (statsize < i) - { - pstatuses = (int *)xrealloc (pstatuses, i * sizeof (int)); - statsize = i; - } - i = 0; - p = jobs[j]->pipe; - do - { - pstatuses[i++] = process_exit_status (p->status); - p = p->next; - } - while (p != jobs[j]->pipe); - - pstatuses[i] = -1; /* sentinel */ - set_pipestatus_array (pstatuses, i); -#endif -} - -static void -run_sigchld_trap (nchild) - int nchild; -{ - char *trap_command; - int i; - - /* Turn off the trap list during the call to parse_and_execute () - to avoid potentially infinite recursive calls. Preserve the - values of last_command_exit_value, last_made_pid, and the_pipeline - around the execution of the trap commands. */ - trap_command = savestring (trap_list[SIGCHLD]); - - begin_unwind_frame ("SIGCHLD trap"); - unwind_protect_int (last_command_exit_value); - unwind_protect_int (last_command_exit_signal); - unwind_protect_var (last_made_pid); - unwind_protect_int (interrupt_immediately); - unwind_protect_int (jobs_list_frozen); - unwind_protect_pointer (the_pipeline); - unwind_protect_pointer (subst_assign_varlist); - - /* We have to add the commands this way because they will be run - in reverse order of adding. We don't want maybe_set_sigchld_trap () - to reference freed memory. */ - add_unwind_protect (xfree, trap_command); - add_unwind_protect (maybe_set_sigchld_trap, trap_command); - - subst_assign_varlist = (WORD_LIST *)NULL; - the_pipeline = (PROCESS *)NULL; - - restore_default_signal (SIGCHLD); - jobs_list_frozen = 1; - for (i = 0; i < nchild; i++) - { - interrupt_immediately = 1; - parse_and_execute (savestring (trap_command), "trap", SEVAL_NOHIST|SEVAL_RESETLINE); - } - - run_unwind_frame ("SIGCHLD trap"); -} - -/* Function to call when you want to notify people of changes - in job status. This prints out all jobs which are pending - notification to stderr, and marks those printed as already - notified, thus making them candidates for cleanup. */ -static void -notify_of_job_status () -{ - register int job, termsig; - char *dir; - sigset_t set, oset; - WAIT s; - - if (jobs == 0 || js.j_jobslots == 0) - return; - - if (old_ttou != 0) - { - sigemptyset (&set); - sigaddset (&set, SIGCHLD); - sigaddset (&set, SIGTTOU); - sigemptyset (&oset); - sigprocmask (SIG_BLOCK, &set, &oset); - } - else - queue_sigchld++; - - /* XXX could use js.j_firstj here */ - for (job = 0, dir = (char *)NULL; job < js.j_jobslots; job++) - { - if (jobs[job] && IS_NOTIFIED (job) == 0) - { - s = raw_job_exit_status (job); - termsig = WTERMSIG (s); - - /* POSIX.2 says we have to hang onto the statuses of at most the - last CHILD_MAX background processes if the shell is running a - script. If the shell is running a script, either from a file - or standard input, don't print anything unless the job was - killed by a signal. */ - if (startup_state == 0 && WIFSIGNALED (s) == 0 && - ((DEADJOB (job) && IS_FOREGROUND (job) == 0) || STOPPED (job))) - continue; - -#if 0 - /* If job control is disabled, don't print the status messages. - Mark dead jobs as notified so that they get cleaned up. If - startup_state == 2, we were started to run `-c command', so - don't print anything. */ - if ((job_control == 0 && interactive_shell) || startup_state == 2) -#else - /* If job control is disabled, don't print the status messages. - Mark dead jobs as notified so that they get cleaned up. If - startup_state == 2 and subshell_environment has the - SUBSHELL_COMSUB bit turned on, we were started to run a command - substitution, so don't print anything. */ - if ((job_control == 0 && interactive_shell) || - (startup_state == 2 && (subshell_environment & SUBSHELL_COMSUB))) -#endif - { - /* POSIX.2 compatibility: if the shell is not interactive, - hang onto the job corresponding to the last asynchronous - pid until the user has been notified of its status or does - a `wait'. */ - if (DEADJOB (job) && (interactive_shell || (find_last_pid (job, 0) != last_asynchronous_pid))) - jobs[job]->flags |= J_NOTIFIED; - continue; - } - - /* Print info on jobs that are running in the background, - and on foreground jobs that were killed by anything - except SIGINT (and possibly SIGPIPE). */ - switch (JOBSTATE (job)) - { - case JDEAD: - if (interactive_shell == 0 && termsig && WIFSIGNALED (s) && - termsig != SIGINT && -#if defined (DONT_REPORT_SIGPIPE) - termsig != SIGPIPE && -#endif - signal_is_trapped (termsig) == 0) - { - /* Don't print `0' for a line number. */ - fprintf (stderr, "%s: line %d: ", get_name_for_error (), (line_number == 0) ? 1 : line_number); - pretty_print_job (job, JLIST_NONINTERACTIVE, stderr); - } - else if (IS_FOREGROUND (job)) - { -#if !defined (DONT_REPORT_SIGPIPE) - if (termsig && WIFSIGNALED (s) && termsig != SIGINT) -#else - if (termsig && WIFSIGNALED (s) && termsig != SIGINT && termsig != SIGPIPE) -#endif - { - fprintf (stderr, "%s", j_strsignal (termsig)); - - if (WIFCORED (s)) - fprintf (stderr, " (core dumped)"); - - fprintf (stderr, "\n"); - } - } - else if (job_control) /* XXX job control test added */ - { - if (dir == 0) - dir = current_working_directory (); - pretty_print_job (job, JLIST_STANDARD, stderr); - if (dir && strcmp (dir, jobs[job]->wd) != 0) - fprintf (stderr, - "(wd now: %s)\n", polite_directory_format (dir)); - } - - jobs[job]->flags |= J_NOTIFIED; - break; - - case JSTOPPED: - fprintf (stderr, "\n"); - if (dir == 0) - dir = current_working_directory (); - pretty_print_job (job, JLIST_STANDARD, stderr); - if (dir && (strcmp (dir, jobs[job]->wd) != 0)) - fprintf (stderr, - "(wd now: %s)\n", polite_directory_format (dir)); - jobs[job]->flags |= J_NOTIFIED; - break; - - case JRUNNING: - case JMIXED: - break; - - default: - programming_error ("notify_of_job_status"); - } - } - } - if (old_ttou != 0) - sigprocmask (SIG_SETMASK, &oset, (sigset_t *)NULL); - else - queue_sigchld--; -} - -/* Initialize the job control mechanism, and set up the tty stuff. */ -int -initialize_job_control (force) - int force; -{ - shell_pgrp = getpgid (0); - - if (shell_pgrp == -1) - { - sys_error ("initialize_job_control: getpgrp failed"); - exit (1); - } - - /* We can only have job control if we are interactive. */ - if (interactive == 0) - { - job_control = 0; - original_pgrp = NO_PID; - shell_tty = fileno (stderr); - } - else - { - /* Get our controlling terminal. If job_control is set, or - interactive is set, then this is an interactive shell no - matter where fd 2 is directed. */ - shell_tty = dup (fileno (stderr)); /* fd 2 */ - - shell_tty = move_to_high_fd (shell_tty, 1, -1); - - /* Compensate for a bug in systems that compiled the BSD - rlogind with DEBUG defined, like NeXT and Alliant. */ - if (shell_pgrp == 0) - { - shell_pgrp = getpid (); - setpgid (0, shell_pgrp); - tcsetpgrp (shell_tty, shell_pgrp); - } - - while ((terminal_pgrp = tcgetpgrp (shell_tty)) != -1) - { - if (shell_pgrp != terminal_pgrp) - { - SigHandler *ottin; - - ottin = set_signal_handler(SIGTTIN, SIG_DFL); - kill (0, SIGTTIN); - set_signal_handler (SIGTTIN, ottin); - continue; - } - break; - } - - /* Make sure that we are using the new line discipline. */ - if (set_new_line_discipline (shell_tty) < 0) - { - sys_error ("initialize_job_control: line discipline"); - job_control = 0; - } - else - { - original_pgrp = shell_pgrp; - shell_pgrp = getpid (); - - if ((original_pgrp != shell_pgrp) && (setpgid (0, shell_pgrp) < 0)) - { - sys_error ("initialize_job_control: setpgid"); - shell_pgrp = original_pgrp; - } - - job_control = 1; - - /* If (and only if) we just set our process group to our pid, - thereby becoming a process group leader, and the terminal - is not in the same process group as our (new) process group, - then set the terminal's process group to our (new) process - group. If that fails, set our process group back to what it - was originally (so we can still read from the terminal) and - turn off job control. */ - if (shell_pgrp != original_pgrp && shell_pgrp != terminal_pgrp) - { - if (give_terminal_to (shell_pgrp, 0) < 0) - { - setpgid (0, original_pgrp); - shell_pgrp = original_pgrp; - job_control = 0; - } - } - } - if (job_control == 0) - internal_error (_("no job control in this shell")); - } - - if (shell_tty != fileno (stderr)) - SET_CLOSE_ON_EXEC (shell_tty); - - set_signal_handler (SIGCHLD, sigchld_handler); - - change_flag ('m', job_control ? '-' : '+'); - - if (interactive) - get_tty_state (); - - if (js.c_childmax < 0) - js.c_childmax = getmaxchild (); - if (js.c_childmax < 0) - js.c_childmax = DEFAULT_CHILD_MAX; - - return job_control; -} - -#ifdef DEBUG -void -debug_print_pgrps () -{ - itrace("original_pgrp = %ld shell_pgrp = %ld terminal_pgrp = %ld", - (long)original_pgrp, (long)shell_pgrp, (long)terminal_pgrp); - itrace("tcgetpgrp(%d) -> %ld, getpgid(0) -> %ld", - shell_tty, (long)tcgetpgrp (shell_tty), (long)getpgid(0)); -} -#endif - -/* Set the line discipline to the best this system has to offer. - Return -1 if this is not possible. */ -static int -set_new_line_discipline (tty) - int tty; -{ -#if defined (NEW_TTY_DRIVER) - int ldisc; - - if (ioctl (tty, TIOCGETD, &ldisc) < 0) - return (-1); - - if (ldisc != NTTYDISC) - { - ldisc = NTTYDISC; - - if (ioctl (tty, TIOCSETD, &ldisc) < 0) - return (-1); - } - return (0); -#endif /* NEW_TTY_DRIVER */ - -#if defined (TERMIO_TTY_DRIVER) -# if defined (TERMIO_LDISC) && (NTTYDISC) - if (ioctl (tty, TCGETA, &shell_tty_info) < 0) - return (-1); - - if (shell_tty_info.c_line != NTTYDISC) - { - shell_tty_info.c_line = NTTYDISC; - if (ioctl (tty, TCSETAW, &shell_tty_info) < 0) - return (-1); - } -# endif /* TERMIO_LDISC && NTTYDISC */ - return (0); -#endif /* TERMIO_TTY_DRIVER */ - -#if defined (TERMIOS_TTY_DRIVER) -# if defined (TERMIOS_LDISC) && defined (NTTYDISC) - if (tcgetattr (tty, &shell_tty_info) < 0) - return (-1); - - if (shell_tty_info.c_line != NTTYDISC) - { - shell_tty_info.c_line = NTTYDISC; - if (tcsetattr (tty, TCSADRAIN, &shell_tty_info) < 0) - return (-1); - } -# endif /* TERMIOS_LDISC && NTTYDISC */ - return (0); -#endif /* TERMIOS_TTY_DRIVER */ - -#if !defined (NEW_TTY_DRIVER) && !defined (TERMIO_TTY_DRIVER) && !defined (TERMIOS_TTY_DRIVER) - return (-1); -#endif -} - -#if defined (TIOCGWINSZ) && defined (SIGWINCH) -static void -get_new_window_size (from_sig) - int from_sig; -{ - struct winsize win; - - if ((ioctl (shell_tty, TIOCGWINSZ, &win) == 0) && - win.ws_row > 0 && win.ws_col > 0) - { -#if defined (aixpc) - shell_tty_info.c_winsize = win; /* structure copying */ -#endif - sh_set_lines_and_columns (win.ws_row, win.ws_col); -#if defined (READLINE) - rl_set_screen_size (win.ws_row, win.ws_col); -#endif - } -} - -static sighandler -sigwinch_sighandler (sig) - int sig; -{ -#if defined (MUST_REINSTALL_SIGHANDLERS) - set_signal_handler (SIGWINCH, sigwinch_sighandler); -#endif /* MUST_REINSTALL_SIGHANDLERS */ - get_new_window_size (1); - SIGRETURN (0); -} -#else -static void -get_new_window_size (from_sig) - int from_sig; -{ -} -#endif /* TIOCGWINSZ && SIGWINCH */ - -void -set_sigwinch_handler () -{ -#if defined (TIOCGWINSZ) && defined (SIGWINCH) - old_winch = set_signal_handler (SIGWINCH, sigwinch_sighandler); -#endif -} - -void -unset_sigwinch_handler () -{ -#if defined (TIOCGWINSZ) && defined (SIGWINCH) - set_signal_handler (SIGWINCH, old_winch); -#endif -} - -/* Setup this shell to handle C-C, etc. */ -void -initialize_job_signals () -{ - if (interactive) - { - set_signal_handler (SIGINT, sigint_sighandler); - set_signal_handler (SIGTSTP, SIG_IGN); - set_signal_handler (SIGTTOU, SIG_IGN); - set_signal_handler (SIGTTIN, SIG_IGN); - set_sigwinch_handler (); - } - else if (job_control) - { - old_tstp = set_signal_handler (SIGTSTP, sigstop_sighandler); - old_ttin = set_signal_handler (SIGTTIN, sigstop_sighandler); - old_ttou = set_signal_handler (SIGTTOU, sigstop_sighandler); - } - /* Leave these things alone for non-interactive shells without job - control. */ -} - -/* Here we handle CONT signals. */ -static sighandler -sigcont_sighandler (sig) - int sig; -{ - initialize_job_signals (); - set_signal_handler (SIGCONT, old_cont); - kill (getpid (), SIGCONT); - - SIGRETURN (0); -} - -/* Here we handle stop signals while we are running not as a login shell. */ -static sighandler -sigstop_sighandler (sig) - int sig; -{ - set_signal_handler (SIGTSTP, old_tstp); - set_signal_handler (SIGTTOU, old_ttou); - set_signal_handler (SIGTTIN, old_ttin); - - old_cont = set_signal_handler (SIGCONT, sigcont_sighandler); - - give_terminal_to (shell_pgrp, 0); - - kill (getpid (), sig); - - SIGRETURN (0); -} - -/* Give the terminal to PGRP. */ -int -give_terminal_to (pgrp, force) - pid_t pgrp; - int force; -{ - sigset_t set, oset; - int r; - - r = 0; - if (job_control || force) - { - sigemptyset (&set); - sigaddset (&set, SIGTTOU); - sigaddset (&set, SIGTTIN); - sigaddset (&set, SIGTSTP); - sigaddset (&set, SIGCHLD); - sigemptyset (&oset); - sigprocmask (SIG_BLOCK, &set, &oset); - - if (tcsetpgrp (shell_tty, pgrp) < 0) - { - /* Maybe we should print an error message? */ -#if 0 - sys_error ("tcsetpgrp(%d) failed: pid %ld to pgrp %ld", - shell_tty, (long)getpid(), (long)pgrp); -#endif - r = -1; - } - else - terminal_pgrp = pgrp; - sigprocmask (SIG_SETMASK, &oset, (sigset_t *)NULL); - } - - return r; -} - -/* Clear out any jobs in the job array. This is intended to be used by - children of the shell, who should not have any job structures as baggage - when they start executing (forking subshells for parenthesized execution - and functions with pipes are the two that spring to mind). If RUNNING_ONLY - is nonzero, only running jobs are removed from the table. */ -void -delete_all_jobs (running_only) - int running_only; -{ - register int i; - sigset_t set, oset; - - BLOCK_CHILD (set, oset); - - /* XXX - need to set j_lastj, j_firstj appropriately if running_only != 0. */ - if (js.j_jobslots) - { - js.j_current = js.j_previous = NO_JOB; - - /* XXX could use js.j_firstj here */ - for (i = 0; i < js.j_jobslots; i++) - { -#if defined (DEBUG) - if (i < js.j_firstj && jobs[i]) - itrace("delete_all_jobs: job %d non-null before js.j_firstj (%d)", i, js.j_firstj); -#endif - if (jobs[i] && (running_only == 0 || (running_only && RUNNING(i)))) - delete_job (i, 1); - } - if (running_only == 0) - { - free ((char *)jobs); - js.j_jobslots = 0; - js.j_firstj = js.j_lastj = js.j_njobs = 0; - } - } - - if (running_only == 0) - bgp_clear (); - - UNBLOCK_CHILD (oset); -} - -/* Mark all jobs in the job array so that they don't get a SIGHUP when the - shell gets one. If RUNNING_ONLY is nonzero, mark only running jobs. */ -void -nohup_all_jobs (running_only) - int running_only; -{ - register int i; - sigset_t set, oset; - - BLOCK_CHILD (set, oset); - - if (js.j_jobslots) - { - /* XXX could use js.j_firstj here */ - for (i = 0; i < js.j_jobslots; i++) - if (jobs[i] && (running_only == 0 || (running_only && RUNNING(i)))) - nohup_job (i); - } - - UNBLOCK_CHILD (oset); -} - -int -count_all_jobs () -{ - int i, n; - sigset_t set, oset; - - /* This really counts all non-dead jobs. */ - BLOCK_CHILD (set, oset); - /* XXX could use js.j_firstj here */ - for (i = n = 0; i < js.j_jobslots; i++) - { -#if defined (DEBUG) - if (i < js.j_firstj && jobs[i]) - itrace("count_all_jobs: job %d non-null before js.j_firstj (%d)", i, js.j_firstj); -#endif - if (jobs[i] && DEADJOB(i) == 0) - n++; - } - UNBLOCK_CHILD (oset); - return n; -} - -static void -mark_all_jobs_as_dead () -{ - register int i; - sigset_t set, oset; - - if (js.j_jobslots == 0) - return; - - BLOCK_CHILD (set, oset); - - /* XXX could use js.j_firstj here */ - for (i = 0; i < js.j_jobslots; i++) - if (jobs[i]) - { - jobs[i]->state = JDEAD; - js.j_ndead++; - } - - UNBLOCK_CHILD (oset); -} - -/* Mark all dead jobs as notified, so delete_job () cleans them out - of the job table properly. POSIX.2 says we need to save the - status of the last CHILD_MAX jobs, so we count the number of dead - jobs and mark only enough as notified to save CHILD_MAX statuses. */ -static void -mark_dead_jobs_as_notified (force) - int force; -{ - register int i, ndead, ndeadproc; - sigset_t set, oset; - - if (js.j_jobslots == 0) - return; - - BLOCK_CHILD (set, oset); - - /* If FORCE is non-zero, we don't have to keep CHILD_MAX statuses - around; just run through the array. */ - if (force) - { - /* XXX could use js.j_firstj here */ - for (i = 0; i < js.j_jobslots; i++) - { - if (jobs[i] && DEADJOB (i) && (interactive_shell || (find_last_pid (i, 0) != last_asynchronous_pid))) - jobs[i]->flags |= J_NOTIFIED; - } - UNBLOCK_CHILD (oset); - return; - } - - /* Mark enough dead jobs as notified to keep CHILD_MAX processes left in the - array with the corresponding not marked as notified. This is a better - way to avoid pid aliasing and reuse problems than keeping the POSIX- - mandated CHILD_MAX jobs around. delete_job() takes care of keeping the - bgpids list regulated. */ - - /* Count the number of dead jobs */ - /* XXX could use js.j_firstj here */ - for (i = ndead = ndeadproc = 0; i < js.j_jobslots; i++) - { -#if defined (DEBUG) - if (i < js.j_firstj && jobs[i]) - itrace("mark_dead_jobs_as_notified: job %d non-null before js.j_firstj (%d)", i, js.j_firstj); -#endif - if (jobs[i] && DEADJOB (i)) - { - ndead++; - ndeadproc += processes_in_job (i); - } - } - -#ifdef DEBUG - if (ndeadproc != js.c_reaped) - itrace("mark_dead_jobs_as_notified: ndeadproc (%d) != js.c_reaped (%d)", ndeadproc, js.c_reaped); - if (ndead != js.j_ndead) - itrace("mark_dead_jobs_as_notified: ndead (%d) != js.j_ndead (%d)", ndead, js.j_ndead); -#endif - - if (js.c_childmax < 0) - js.c_childmax = getmaxchild (); - if (js.c_childmax < 0) - js.c_childmax = DEFAULT_CHILD_MAX; - - /* Don't do anything if the number of dead processes is less than CHILD_MAX - and we're not forcing a cleanup. */ - if (ndeadproc <= js.c_childmax) - { - UNBLOCK_CHILD (oset); - return; - } - -#if 0 -itrace("mark_dead_jobs_as_notified: child_max = %d ndead = %d ndeadproc = %d", js.c_childmax, ndead, ndeadproc); -#endif - - /* Mark enough dead jobs as notified that we keep CHILD_MAX jobs in - the list. This isn't exactly right yet; changes need to be made - to stop_pipeline so we don't mark the newer jobs after we've - created CHILD_MAX slots in the jobs array. This needs to be - integrated with a way to keep the jobs array from growing without - bound. Maybe we wrap back around to 0 after we reach some max - limit, and there are sufficient job slots free (keep track of total - size of jobs array (js.j_jobslots) and running count of number of jobs - in jobs array. Then keep a job index corresponding to the `oldest job' - and start this loop there, wrapping around as necessary. In effect, - we turn the list into a circular buffer. */ - /* XXX could use js.j_firstj here */ - for (i = 0; i < js.j_jobslots; i++) - { - if (jobs[i] && DEADJOB (i) && (interactive_shell || (find_last_pid (i, 0) != last_asynchronous_pid))) - { -#if defined (DEBUG) - if (i < js.j_firstj && jobs[i]) - itrace("mark_dead_jobs_as_notified: job %d non-null before js.j_firstj (%d)", i, js.j_firstj); -#endif - /* If marking this job as notified would drop us down below - child_max, don't mark it so we can keep at least child_max - statuses. XXX -- need to check what Posix actually says - about keeping statuses. */ - if ((ndeadproc -= processes_in_job (i)) <= js.c_childmax) - break; - jobs[i]->flags |= J_NOTIFIED; - } - } - - UNBLOCK_CHILD (oset); -} - -/* Here to allow other parts of the shell (like the trap stuff) to - unfreeze the jobs list. */ -void -unfreeze_jobs_list () -{ - jobs_list_frozen = 0; -} - -/* Allow or disallow job control to take place. Returns the old value - of job_control. */ -int -set_job_control (arg) - int arg; -{ - int old; - - old = job_control; - job_control = arg; - - /* If we're turning on job control, reset pipeline_pgrp so make_child will - put new child processes into the right pgrp */ - if (job_control != old && job_control) - pipeline_pgrp = 0; - - return (old); -} - -/* Turn off all traces of job control. This is run by children of the shell - which are going to do shellsy things, like wait (), etc. */ -void -without_job_control () -{ - stop_making_children (); - start_pipeline (); -#if defined (PGRP_PIPE) - pipe_close (pgrp_pipe); -#endif - delete_all_jobs (0); - set_job_control (0); -} - -/* If this shell is interactive, terminate all stopped jobs and - restore the original terminal process group. This is done - before the `exec' builtin calls shell_execve. */ -void -end_job_control () -{ - if (interactive_shell) /* XXX - should it be interactive? */ - { - terminate_stopped_jobs (); - - if (original_pgrp >= 0) - give_terminal_to (original_pgrp, 1); - } - - if (original_pgrp >= 0) - setpgid (0, original_pgrp); -} - -/* Restart job control by closing shell tty and reinitializing. This is - called after an exec fails in an interactive shell and we do not exit. */ -void -restart_job_control () -{ - if (shell_tty != -1) - close (shell_tty); - initialize_job_control (0); -} - -/* Set the handler to run when the shell receives a SIGCHLD signal. */ -void -set_sigchld_handler () -{ - set_signal_handler (SIGCHLD, sigchld_handler); -} - -#if defined (PGRP_PIPE) -/* Read from the read end of a pipe. This is how the process group leader - blocks until all of the processes in a pipeline have been made. */ -static void -pipe_read (pp) - int *pp; -{ - char ch; - - if (pp[1] >= 0) - { - close (pp[1]); - pp[1] = -1; - } - - if (pp[0] >= 0) - { - while (read (pp[0], &ch, 1) == -1 && errno == EINTR) - ; - } -} - -/* Close the read and write ends of PP, an array of file descriptors. */ -static void -pipe_close (pp) - int *pp; -{ - if (pp[0] >= 0) - close (pp[0]); - - if (pp[1] >= 0) - close (pp[1]); - - pp[0] = pp[1] = -1; -} - -/* Functional interface closes our local-to-job-control pipes. */ -void -close_pgrp_pipe () -{ - pipe_close (pgrp_pipe); -} - -#endif /* PGRP_PIPE */ diff --git a/lib/readline/d b/lib/readline/d deleted file mode 100644 index 5acc0b3e7..000000000 --- a/lib/readline/d +++ /dev/null @@ -1,270 +0,0 @@ -*** display.c.orig Thu May 27 22:57:51 2004 ---- display.c Tue Nov 2 23:59:42 2004 -*************** -*** 125,129 **** ---- 125,134 ---- - - /* Pseudo-global variables declared here. */ -+ - /* The visible cursor position. If you print some text, adjust this. */ -+ /* NOTE: _rl_last_c_pos is used as a buffer index when not in a locale -+ supporting multibyte characters, and an absolute cursor position when -+ in such a locale. This is an artifact of the donated multibyte support. -+ Care must be taken when modifying its value. */ - int _rl_last_c_pos = 0; - int _rl_last_v_pos = 0; -*************** -*** 202,206 **** - { - char *r, *ret, *p; -! int l, rl, last, ignoring, ninvis, invfl, ind, pind, physchars; - - /* Short-circuit if we can. */ ---- 207,211 ---- - { - char *r, *ret, *p; -! int l, rl, last, ignoring, ninvis, invfl, invflset, ind, pind, physchars; - - /* Short-circuit if we can. */ -*************** -*** 223,226 **** ---- 228,232 ---- - - invfl = 0; /* invisible chars in first line of prompt */ -+ invflset = 0; /* we only want to set invfl once */ - - for (rl = ignoring = last = ninvis = physchars = 0, p = pmt; p && *p; p++) -*************** -*** 250,254 **** - *r++ = *p++; - if (!ignoring) -! rl += ind - pind; - else - ninvis += ind - pind; ---- 256,263 ---- - *r++ = *p++; - if (!ignoring) -! { -! rl += ind - pind; -! physchars += _rl_col_width (pmt, pind, ind); -! } - else - ninvis += ind - pind; -*************** -*** 260,273 **** - *r++ = *p; - if (!ignoring) -! rl++; /* visible length byte counter */ - else - ninvis++; /* invisible chars byte counter */ - } - -! if (rl >= _rl_screenwidth) -! invfl = ninvis; -! -! if (ignoring == 0) -! physchars++; - } - } ---- 269,285 ---- - *r++ = *p; - if (!ignoring) -! { -! rl++; /* visible length byte counter */ -! physchars++; -! } - else - ninvis++; /* invisible chars byte counter */ - } - -! if (invflset == 0 && rl >= _rl_screenwidth) -! { -! invfl = ninvis; -! invflset = 1; -! } - } - } -*************** -*** 352,356 **** - &prompt_last_invisible, - (int *)NULL, -! (int *)NULL); - c = *t; *t = '\0'; - /* The portion of the prompt string up to and including the ---- 364,368 ---- - &prompt_last_invisible, - (int *)NULL, -! &prompt_physical_chars); - c = *t; *t = '\0'; - /* The portion of the prompt string up to and including the -*************** -*** 359,363 **** - (int *)NULL, - &prompt_invis_chars_first_line, -! &prompt_physical_chars); - *t = c; - return (prompt_prefix_length); ---- 371,375 ---- - (int *)NULL, - &prompt_invis_chars_first_line, -! (int *)NULL); - *t = c; - return (prompt_prefix_length); -*************** -*** 418,422 **** - register char *line; - int c_pos, inv_botlin, lb_botlin, lb_linenum; -! int newlines, lpos, temp, modmark; - char *prompt_this_line; - #if defined (HANDLE_MULTIBYTE) ---- 430,434 ---- - register char *line; - int c_pos, inv_botlin, lb_botlin, lb_linenum; -! int newlines, lpos, temp, modmark, n0, num; - char *prompt_this_line; - #if defined (HANDLE_MULTIBYTE) -*************** -*** 574,577 **** ---- 586,590 ---- - #if defined (HANDLE_MULTIBYTE) - memset (_rl_wrapped_line, 0, vis_lbsize); -+ num = 0; - #endif - -*************** -*** 592,596 **** ---- 605,624 ---- - prompts that exceed two physical lines? - Additional logic fix from Edward Catmur */ -+ #if defined (HANDLE_MULTIBYTE) -+ n0 = num; -+ temp = local_prompt ? strlen (local_prompt) : 0; -+ while (num < temp) -+ { -+ if (_rl_col_width (local_prompt, n0, num) > _rl_screenwidth) -+ { -+ num = _rl_find_prev_mbchar (local_prompt, num, MB_FIND_ANY); -+ break; -+ } -+ num++; -+ } -+ temp = num + -+ #else - temp = ((newlines + 1) * _rl_screenwidth) + -+ #endif /* !HANDLE_MULTIBYTE */ - ((local_prompt_prefix == 0) ? ((newlines == 0) ? prompt_invis_chars_first_line - : ((newlines == 1) ? wrap_offset : 0)) -*************** -*** 598,602 **** ---- 626,634 ---- - - inv_lbreaks[++newlines] = temp; -+ #if defined (HANDLE_MULTIBYTE) -+ lpos -= _rl_col_width (local_prompt, n0, num); -+ #else - lpos -= _rl_screenwidth; -+ #endif - } - -*************** -*** 807,811 **** - if (_rl_horizontal_scroll_mode == 0 && _rl_term_up && *_rl_term_up) - { -! int nleft, pos, changed_screen_line; - - if (!rl_display_fixed || forced_display) ---- 839,843 ---- - if (_rl_horizontal_scroll_mode == 0 && _rl_term_up && *_rl_term_up) - { -! int nleft, pos, changed_screen_line, tx; - - if (!rl_display_fixed || forced_display) -*************** -*** 852,855 **** ---- 884,892 ---- - (_rl_last_c_pos < visible_first_line_len)) - { -+ #if defined (HANDLE_MULTIBYTE) -+ if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) -+ nleft = _rl_screenwidth - _rl_last_c_pos; -+ else -+ #endif - nleft = _rl_screenwidth + wrap_offset - _rl_last_c_pos; - if (nleft) -*************** -*** 888,892 **** - but the buffer position needs to be adjusted to account - for invisible characters. */ -! if (cursor_linenum == 0 && wrap_offset) - _rl_last_c_pos += wrap_offset; - } ---- 925,929 ---- - but the buffer position needs to be adjusted to account - for invisible characters. */ -! if ((MB_CUR_MAX == 1 || rl_byte_oriented) && cursor_linenum == 0 && wrap_offset) - _rl_last_c_pos += wrap_offset; - } -*************** -*** 926,934 **** - if (wrap_offset && cursor_linenum == 0 && nleft < _rl_last_c_pos) - { -- _rl_backspace (_rl_last_c_pos - nleft); - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) -! _rl_last_c_pos = _rl_col_width (&visible_line[pos], 0, nleft); - else -! _rl_last_c_pos = nleft; - } - ---- 963,972 ---- - if (wrap_offset && cursor_linenum == 0 && nleft < _rl_last_c_pos) - { - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) -! tx = _rl_col_width (&visible_line[pos], 0, nleft); - else -! tx = nleft; -! _rl_backspace (_rl_last_c_pos - tx); /* XXX */ -! _rl_last_c_pos = tx; - } - -*************** -*** 1091,1095 **** - emulators. In this calculation, TEMP is the physical screen - position of the cursor. */ -! temp = _rl_last_c_pos - W_OFFSET(_rl_last_v_pos, visible_wrap_offset); - if (temp == _rl_screenwidth && _rl_term_autowrap && !_rl_horizontal_scroll_mode - && _rl_last_v_pos == current_line - 1) ---- 1129,1136 ---- - emulators. In this calculation, TEMP is the physical screen - position of the cursor. */ -! if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) -! temp = _rl_last_c_pos; -! else -! temp = _rl_last_c_pos - W_OFFSET(_rl_last_v_pos, visible_wrap_offset); - if (temp == _rl_screenwidth && _rl_term_autowrap && !_rl_horizontal_scroll_mode - && _rl_last_v_pos == current_line - 1) -*************** -*** 1297,1301 **** - { - _rl_move_vert (current_line); -! if (current_line == 0 && visible_wrap_offset) - _rl_last_c_pos += visible_wrap_offset; - } ---- 1338,1342 ---- - { - _rl_move_vert (current_line); -! if ((MB_CUR_MAX == 1 || rl_byte_oriented) && current_line == 0 && visible_wrap_offset) - _rl_last_c_pos += visible_wrap_offset; - } -*************** -*** 1388,1392 **** - _rl_last_c_pos += col_lendiff; - } -! else if (*ols == 0 && lendiff > 0) - { - /* At the end of a line the characters do not have to ---- 1429,1433 ---- - _rl_last_c_pos += col_lendiff; - } -! else if ((MB_CUR_MAX == 1 || rl_byte_oriented != 0) && *ols == 0 && lendiff > 0) - { - /* At the end of a line the characters do not have to diff --git a/lib/readline/display.c.old b/lib/readline/display.c.old deleted file mode 100644 index e0df9655b..000000000 --- a/lib/readline/display.c.old +++ /dev/null @@ -1,2309 +0,0 @@ -/* display.c -- readline redisplay facility. */ - -/* Copyright (C) 1987-2004 Free Software Foundation, Inc. - - This file is part of the GNU Readline Library, a library for - reading lines of text with interactive input and history editing. - - The GNU Readline Library is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - as published by the Free Software Foundation; either version 2, or - (at your option) any later version. - - The GNU Readline Library is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ -#define READLINE_LIBRARY - -#if defined (HAVE_CONFIG_H) -# include -#endif - -#include - -#if defined (HAVE_UNISTD_H) -# include -#endif /* HAVE_UNISTD_H */ - -#include "posixstat.h" - -#if defined (HAVE_STDLIB_H) -# include -#else -# include "ansi_stdlib.h" -#endif /* HAVE_STDLIB_H */ - -#include - -/* System-specific feature definitions and include files. */ -#include "rldefs.h" -#include "rlmbutil.h" - -/* Termcap library stuff. */ -#include "tcap.h" - -/* Some standard library routines. */ -#include "readline.h" -#include "history.h" - -#include "rlprivate.h" -#include "xmalloc.h" - -#if !defined (strchr) && !defined (__STDC__) -extern char *strchr (), *strrchr (); -#endif /* !strchr && !__STDC__ */ - -#if defined (HACK_TERMCAP_MOTION) -extern char *_rl_term_forward_char; -#endif - -static void update_line PARAMS((char *, char *, int, int, int, int)); -static void space_to_eol PARAMS((int)); -static void delete_chars PARAMS((int)); -static void insert_some_chars PARAMS((char *, int, int)); -static void cr PARAMS((void)); - -#if defined (HANDLE_MULTIBYTE) -static int _rl_col_width PARAMS((const char *, int, int)); -static int *_rl_wrapped_line; -#else -# define _rl_col_width(l, s, e) (((e) <= (s)) ? 0 : (e) - (s)) -#endif - -static int *inv_lbreaks, *vis_lbreaks; -static int inv_lbsize, vis_lbsize; - -/* Heuristic used to decide whether it is faster to move from CUR to NEW - by backing up or outputting a carriage return and moving forward. */ -#define CR_FASTER(new, cur) (((new) + 1) < ((cur) - (new))) - -/* **************************************************************** */ -/* */ -/* Display stuff */ -/* */ -/* **************************************************************** */ - -/* This is the stuff that is hard for me. I never seem to write good - display routines in C. Let's see how I do this time. */ - -/* (PWP) Well... Good for a simple line updater, but totally ignores - the problems of input lines longer than the screen width. - - update_line and the code that calls it makes a multiple line, - automatically wrapping line update. Careful attention needs - to be paid to the vertical position variables. */ - -/* Keep two buffers; one which reflects the current contents of the - screen, and the other to draw what we think the new contents should - be. Then compare the buffers, and make whatever changes to the - screen itself that we should. Finally, make the buffer that we - just drew into be the one which reflects the current contents of the - screen, and place the cursor where it belongs. - - Commands that want to can fix the display themselves, and then let - this function know that the display has been fixed by setting the - RL_DISPLAY_FIXED variable. This is good for efficiency. */ - -/* Application-specific redisplay function. */ -rl_voidfunc_t *rl_redisplay_function = rl_redisplay; - -/* Global variables declared here. */ -/* What YOU turn on when you have handled all redisplay yourself. */ -int rl_display_fixed = 0; - -int _rl_suppress_redisplay = 0; - -/* The stuff that gets printed out before the actual text of the line. - This is usually pointing to rl_prompt. */ -char *rl_display_prompt = (char *)NULL; - -/* Pseudo-global variables declared here. */ -/* The visible cursor position. If you print some text, adjust this. */ -int _rl_last_c_pos = 0; -int _rl_last_v_pos = 0; - -/* Number of lines currently on screen minus 1. */ -int _rl_vis_botlin = 0; - -/* Variables used only in this file. */ -/* The last left edge of text that was displayed. This is used when - doing horizontal scrolling. It shifts in thirds of a screenwidth. */ -static int last_lmargin; - -/* The line display buffers. One is the line currently displayed on - the screen. The other is the line about to be displayed. */ -static char *visible_line = (char *)NULL; -static char *invisible_line = (char *)NULL; - -/* A buffer for `modeline' messages. */ -static char msg_buf[128]; - -/* Non-zero forces the redisplay even if we thought it was unnecessary. */ -static int forced_display; - -/* Default and initial buffer size. Can grow. */ -static int line_size = 1024; - -/* Variables to keep track of the expanded prompt string, which may - include invisible characters. */ - -static char *local_prompt, *local_prompt_prefix; -static int prompt_visible_length, prompt_prefix_length; - -/* The number of invisible characters in the line currently being - displayed on the screen. */ -static int visible_wrap_offset; - -/* The number of invisible characters in the prompt string. Static so it - can be shared between rl_redisplay and update_line */ -static int wrap_offset; - -/* The index of the last invisible character in the prompt string. */ -static int prompt_last_invisible; - -/* The length (buffer offset) of the first line of the last (possibly - multi-line) buffer displayed on the screen. */ -static int visible_first_line_len; - -/* Number of invisible characters on the first physical line of the prompt. - Only valid when the number of physical characters in the prompt exceeds - (or is equal to) _rl_screenwidth. */ -static int prompt_invis_chars_first_line; - -static int prompt_last_screen_line; - -static int prompt_physical_chars; - -/* Expand the prompt string S and return the number of visible - characters in *LP, if LP is not null. This is currently more-or-less - a placeholder for expansion. LIP, if non-null is a place to store the - index of the last invisible character in the returned string. NIFLP, - if non-zero, is a place to store the number of invisible characters in - the first prompt line. The previous are used as byte counts -- indexes - into a character buffer. */ - -/* Current implementation: - \001 (^A) start non-visible characters - \002 (^B) end non-visible characters - all characters except \001 and \002 (following a \001) are copied to - the returned string; all characters except those between \001 and - \002 are assumed to be `visible'. */ - -static char * -expand_prompt (pmt, lp, lip, niflp, vlp) - char *pmt; - int *lp, *lip, *niflp, *vlp; -{ - char *r, *ret, *p; - int l, rl, last, ignoring, ninvis, invfl, invflset, ind, pind, physchars; - - /* Short-circuit if we can. */ - if ((MB_CUR_MAX <= 1 || rl_byte_oriented) && strchr (pmt, RL_PROMPT_START_IGNORE) == 0) - { - r = savestring (pmt); - if (lp) - *lp = strlen (r); - if (lip) - *lip = 0; - if (niflp) - *niflp = 0; - if (vlp) - *vlp = lp ? *lp : strlen (r); - return r; - } - - l = strlen (pmt); - r = ret = (char *)xmalloc (l + 1); - - invfl = 0; /* invisible chars in first line of prompt */ - invflset = 0; /* we only want to set invfl once */ - - for (rl = ignoring = last = ninvis = physchars = 0, p = pmt; p && *p; p++) - { - /* This code strips the invisible character string markers - RL_PROMPT_START_IGNORE and RL_PROMPT_END_IGNORE */ - if (*p == RL_PROMPT_START_IGNORE) - { - ignoring++; - continue; - } - else if (ignoring && *p == RL_PROMPT_END_IGNORE) - { - ignoring = 0; - last = r - ret - 1; - continue; - } - else - { -#if defined (HANDLE_MULTIBYTE) - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - { - pind = p - pmt; - ind = _rl_find_next_mbchar (pmt, pind, 1, MB_FIND_NONZERO); - l = ind - pind; - while (l--) - *r++ = *p++; - if (!ignoring) - { - rl += ind - pind; - physchars += _rl_col_width (pmt, pind, ind); - } - else - ninvis += ind - pind; - p--; /* compensate for later increment */ - } - else -#endif - { - *r++ = *p; - if (!ignoring) - { - rl++; /* visible length byte counter */ - physchars++; - } - else - ninvis++; /* invisible chars byte counter */ - } - - if (invflset == 0 && rl >= _rl_screenwidth) - { - invfl = ninvis; - invflset = 1; - } - } - } - - if (rl < _rl_screenwidth) - invfl = ninvis; - - *r = '\0'; - if (lp) - *lp = rl; - if (lip) - *lip = last; - if (niflp) - *niflp = invfl; - if (vlp) - *vlp = physchars; - return ret; -} - -/* Just strip out RL_PROMPT_START_IGNORE and RL_PROMPT_END_IGNORE from - PMT and return the rest of PMT. */ -char * -_rl_strip_prompt (pmt) - char *pmt; -{ - char *ret; - - ret = expand_prompt (pmt, (int *)NULL, (int *)NULL, (int *)NULL, (int *)NULL); - return ret; -} - -/* - * Expand the prompt string into the various display components, if - * necessary. - * - * local_prompt = expanded last line of string in rl_display_prompt - * (portion after the final newline) - * local_prompt_prefix = portion before last newline of rl_display_prompt, - * expanded via expand_prompt - * prompt_visible_length = number of visible characters in local_prompt - * prompt_prefix_length = number of visible characters in local_prompt_prefix - * - * This function is called once per call to readline(). It may also be - * called arbitrarily to expand the primary prompt. - * - * The return value is the number of visible characters on the last line - * of the (possibly multi-line) prompt. - */ -int -rl_expand_prompt (prompt) - char *prompt; -{ - char *p, *t; - int c; - - /* Clear out any saved values. */ - FREE (local_prompt); - FREE (local_prompt_prefix); - - local_prompt = local_prompt_prefix = (char *)0; - prompt_last_invisible = prompt_visible_length = 0; - - if (prompt == 0 || *prompt == 0) - return (0); - - p = strrchr (prompt, '\n'); - if (!p) - { - /* The prompt is only one logical line, though it might wrap. */ - local_prompt = expand_prompt (prompt, &prompt_visible_length, - &prompt_last_invisible, - &prompt_invis_chars_first_line, - &prompt_physical_chars); - local_prompt_prefix = (char *)0; - return (prompt_visible_length); - } - else - { - /* The prompt spans multiple lines. */ - t = ++p; - local_prompt = expand_prompt (p, &prompt_visible_length, - &prompt_last_invisible, - (int *)NULL, - &prompt_physical_chars); - c = *t; *t = '\0'; - /* The portion of the prompt string up to and including the - final newline is now null-terminated. */ - local_prompt_prefix = expand_prompt (prompt, &prompt_prefix_length, - (int *)NULL, - &prompt_invis_chars_first_line, - (int *)NULL); - *t = c; - return (prompt_prefix_length); - } -} - -/* Initialize the VISIBLE_LINE and INVISIBLE_LINE arrays, and their associated - arrays of line break markers. MINSIZE is the minimum size of VISIBLE_LINE - and INVISIBLE_LINE; if it is greater than LINE_SIZE, LINE_SIZE is - increased. If the lines have already been allocated, this ensures that - they can hold at least MINSIZE characters. */ -static void -init_line_structures (minsize) - int minsize; -{ - register int n; - - if (invisible_line == 0) /* initialize it */ - { - if (line_size < minsize) - line_size = minsize; - visible_line = (char *)xmalloc (line_size); - invisible_line = (char *)xmalloc (line_size); - } - else if (line_size < minsize) /* ensure it can hold MINSIZE chars */ - { - line_size *= 2; - if (line_size < minsize) - line_size = minsize; - visible_line = (char *)xrealloc (visible_line, line_size); - invisible_line = (char *)xrealloc (invisible_line, line_size); - } - - for (n = minsize; n < line_size; n++) - { - visible_line[n] = 0; - invisible_line[n] = 1; - } - - if (vis_lbreaks == 0) - { - /* should be enough. */ - inv_lbsize = vis_lbsize = 256; - inv_lbreaks = (int *)xmalloc (inv_lbsize * sizeof (int)); - vis_lbreaks = (int *)xmalloc (vis_lbsize * sizeof (int)); -#if defined (HANDLE_MULTIBYTE) - _rl_wrapped_line = (int *)xmalloc (vis_lbsize * sizeof (int)); -#endif - inv_lbreaks[0] = vis_lbreaks[0] = 0; - } -} - -/* Basic redisplay algorithm. */ -void -rl_redisplay () -{ - register int in, out, c, linenum, cursor_linenum; - register char *line; - int c_pos, inv_botlin, lb_botlin, lb_linenum; - int newlines, lpos, temp, modmark, n0, num; - char *prompt_this_line; -#if defined (HANDLE_MULTIBYTE) - wchar_t wc; - size_t wc_bytes; - int wc_width; - mbstate_t ps; - int _rl_wrapped_multicolumn = 0; -#endif - - if (!readline_echoing_p) - return; - - if (!rl_display_prompt) - rl_display_prompt = ""; - - if (invisible_line == 0) - { - init_line_structures (0); - rl_on_new_line (); - } - - /* Draw the line into the buffer. */ - c_pos = -1; - - line = invisible_line; - out = inv_botlin = 0; - - /* Mark the line as modified or not. We only do this for history - lines. */ - modmark = 0; - if (_rl_mark_modified_lines && current_history () && rl_undo_list) - { - line[out++] = '*'; - line[out] = '\0'; - modmark = 1; - } - - /* If someone thought that the redisplay was handled, but the currently - visible line has a different modification state than the one about - to become visible, then correct the caller's misconception. */ - if (visible_line[0] != invisible_line[0]) - rl_display_fixed = 0; - - /* If the prompt to be displayed is the `primary' readline prompt (the - one passed to readline()), use the values we have already expanded. - If not, use what's already in rl_display_prompt. WRAP_OFFSET is the - number of non-visible characters in the prompt string. */ - if (rl_display_prompt == rl_prompt || local_prompt) - { - int local_len = local_prompt ? strlen (local_prompt) : 0; - if (local_prompt_prefix && forced_display) - _rl_output_some_chars (local_prompt_prefix, strlen (local_prompt_prefix)); - - if (local_len > 0) - { - temp = local_len + out + 2; - if (temp >= line_size) - { - line_size = (temp + 1024) - (temp % 1024); - visible_line = (char *)xrealloc (visible_line, line_size); - line = invisible_line = (char *)xrealloc (invisible_line, line_size); - } - strncpy (line + out, local_prompt, local_len); - out += local_len; - } - line[out] = '\0'; - wrap_offset = local_len - prompt_visible_length; - } - else - { - int pmtlen; - prompt_this_line = strrchr (rl_display_prompt, '\n'); - if (!prompt_this_line) - prompt_this_line = rl_display_prompt; - else - { - prompt_this_line++; - pmtlen = prompt_this_line - rl_display_prompt; /* temp var */ - if (forced_display) - { - _rl_output_some_chars (rl_display_prompt, pmtlen); - /* Make sure we are at column zero even after a newline, - regardless of the state of terminal output processing. */ - if (pmtlen < 2 || prompt_this_line[-2] != '\r') - cr (); - } - } - - prompt_physical_chars = pmtlen = strlen (prompt_this_line); - temp = pmtlen + out + 2; - if (temp >= line_size) - { - line_size = (temp + 1024) - (temp % 1024); - visible_line = (char *)xrealloc (visible_line, line_size); - line = invisible_line = (char *)xrealloc (invisible_line, line_size); - } - strncpy (line + out, prompt_this_line, pmtlen); - out += pmtlen; - line[out] = '\0'; - wrap_offset = prompt_invis_chars_first_line = 0; - } - -#define CHECK_INV_LBREAKS() \ - do { \ - if (newlines >= (inv_lbsize - 2)) \ - { \ - inv_lbsize *= 2; \ - inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \ - } \ - } while (0) - -#if defined (HANDLE_MULTIBYTE) -#define CHECK_LPOS() \ - do { \ - lpos++; \ - if (lpos >= _rl_screenwidth) \ - { \ - if (newlines >= (inv_lbsize - 2)) \ - { \ - inv_lbsize *= 2; \ - inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \ - _rl_wrapped_line = (int *)xrealloc (_rl_wrapped_line, inv_lbsize * sizeof (int)); \ - } \ - inv_lbreaks[++newlines] = out; \ - _rl_wrapped_line[newlines] = _rl_wrapped_multicolumn; \ - lpos = 0; \ - } \ - } while (0) -#else -#define CHECK_LPOS() \ - do { \ - lpos++; \ - if (lpos >= _rl_screenwidth) \ - { \ - if (newlines >= (inv_lbsize - 2)) \ - { \ - inv_lbsize *= 2; \ - inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \ - } \ - inv_lbreaks[++newlines] = out; \ - lpos = 0; \ - } \ - } while (0) -#endif - - /* inv_lbreaks[i] is where line i starts in the buffer. */ - inv_lbreaks[newlines = 0] = 0; -#if 0 - lpos = out - wrap_offset; -#else - lpos = prompt_physical_chars + modmark; -#endif - -#if defined (HANDLE_MULTIBYTE) - memset (_rl_wrapped_line, 0, vis_lbsize); - num = 0; -#endif - - /* prompt_invis_chars_first_line is the number of invisible characters in - the first physical line of the prompt. - wrap_offset - prompt_invis_chars_first_line is the number of invis - chars on the second line. */ - - /* what if lpos is already >= _rl_screenwidth before we start drawing the - contents of the command line? */ - while (lpos >= _rl_screenwidth) - { - /* fix from Darin Johnson for prompt string with - invisible characters that is longer than the screen width. The - prompt_invis_chars_first_line variable could be made into an array - saying how many invisible characters there are per line, but that's - probably too much work for the benefit gained. How many people have - prompts that exceed two physical lines? - Additional logic fix from Edward Catmur */ -#if defined (HANDLE_MULTIBYTE) - n0 = num; - temp = local_prompt ? strlen (local_prompt) : 0; - while (num < temp) - { - if (_rl_col_width (local_prompt, n0, num) > _rl_screenwidth) - { - num = _rl_find_prev_mbchar (local_prompt, num, MB_FIND_ANY); - break; - } - num++; - } - temp = num + -#else - temp = ((newlines + 1) * _rl_screenwidth) + -#endif /* !HANDLE_MULTIBYTE */ - ((local_prompt_prefix == 0) ? ((newlines == 0) ? prompt_invis_chars_first_line - : ((newlines == 1) ? wrap_offset : 0)) - : ((newlines == 0) ? wrap_offset :0)); - - inv_lbreaks[++newlines] = temp; -#if defined (HANDLE_MULTIBYTE) - lpos -= _rl_col_width (local_prompt, n0, num); -#else - lpos -= _rl_screenwidth; -#endif - } - - prompt_last_screen_line = newlines; - - /* Draw the rest of the line (after the prompt) into invisible_line, keeping - track of where the cursor is (c_pos), the number of the line containing - the cursor (lb_linenum), the last line number (lb_botlin and inv_botlin). - It maintains an array of line breaks for display (inv_lbreaks). - This handles expanding tabs for display and displaying meta characters. */ - lb_linenum = 0; -#if defined (HANDLE_MULTIBYTE) - in = 0; - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - { - memset (&ps, 0, sizeof (mbstate_t)); - wc_bytes = mbrtowc (&wc, rl_line_buffer, rl_end, &ps); - } - else - wc_bytes = 1; - while (in < rl_end) -#else - for (in = 0; in < rl_end; in++) -#endif - { - c = (unsigned char)rl_line_buffer[in]; - -#if defined (HANDLE_MULTIBYTE) - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - { - if (MB_INVALIDCH (wc_bytes)) - { - /* Byte sequence is invalid or shortened. Assume that the - first byte represents a character. */ - wc_bytes = 1; - /* Assume that a character occupies a single column. */ - wc_width = 1; - memset (&ps, 0, sizeof (mbstate_t)); - } - else if (MB_NULLWCH (wc_bytes)) - break; /* Found '\0' */ - else - { - temp = wcwidth (wc); - wc_width = (temp >= 0) ? temp : 1; - } - } -#endif - - if (out + 8 >= line_size) /* XXX - 8 for \t */ - { - line_size *= 2; - visible_line = (char *)xrealloc (visible_line, line_size); - invisible_line = (char *)xrealloc (invisible_line, line_size); - line = invisible_line; - } - - if (in == rl_point) - { - c_pos = out; - lb_linenum = newlines; - } - -#if defined (HANDLE_MULTIBYTE) - if (META_CHAR (c) && _rl_output_meta_chars == 0) /* XXX - clean up */ -#else - if (META_CHAR (c)) -#endif - { - if (_rl_output_meta_chars == 0) - { - sprintf (line + out, "\\%o", c); - - if (lpos + 4 >= _rl_screenwidth) - { - temp = _rl_screenwidth - lpos; - CHECK_INV_LBREAKS (); - inv_lbreaks[++newlines] = out + temp; - lpos = 4 - temp; - } - else - lpos += 4; - - out += 4; - } - else - { - line[out++] = c; - CHECK_LPOS(); - } - } -#if defined (DISPLAY_TABS) - else if (c == '\t') - { - register int newout; - -#if 0 - newout = (out | (int)7) + 1; -#else - newout = out + 8 - lpos % 8; -#endif - temp = newout - out; - if (lpos + temp >= _rl_screenwidth) - { - register int temp2; - temp2 = _rl_screenwidth - lpos; - CHECK_INV_LBREAKS (); - inv_lbreaks[++newlines] = out + temp2; - lpos = temp - temp2; - while (out < newout) - line[out++] = ' '; - } - else - { - while (out < newout) - line[out++] = ' '; - lpos += temp; - } - } -#endif - else if (c == '\n' && _rl_horizontal_scroll_mode == 0 && _rl_term_up && *_rl_term_up) - { - line[out++] = '\0'; /* XXX - sentinel */ - CHECK_INV_LBREAKS (); - inv_lbreaks[++newlines] = out; - lpos = 0; - } - else if (CTRL_CHAR (c) || c == RUBOUT) - { - line[out++] = '^'; - CHECK_LPOS(); - line[out++] = CTRL_CHAR (c) ? UNCTRL (c) : '?'; - CHECK_LPOS(); - } - else - { -#if defined (HANDLE_MULTIBYTE) - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - { - register int i; - - _rl_wrapped_multicolumn = 0; - - if (_rl_screenwidth < lpos + wc_width) - for (i = lpos; i < _rl_screenwidth; i++) - { - /* The space will be removed in update_line() */ - line[out++] = ' '; - _rl_wrapped_multicolumn++; - CHECK_LPOS(); - } - if (in == rl_point) - { - c_pos = out; - lb_linenum = newlines; - } - for (i = in; i < in+wc_bytes; i++) - line[out++] = rl_line_buffer[i]; - for (i = 0; i < wc_width; i++) - CHECK_LPOS(); - } - else - { - line[out++] = c; - CHECK_LPOS(); - } -#else - line[out++] = c; - CHECK_LPOS(); -#endif - } - -#if defined (HANDLE_MULTIBYTE) - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - { - in += wc_bytes; - wc_bytes = mbrtowc (&wc, rl_line_buffer + in, rl_end - in, &ps); - } - else - in++; -#endif - - } - line[out] = '\0'; - if (c_pos < 0) - { - c_pos = out; - lb_linenum = newlines; - } - - inv_botlin = lb_botlin = newlines; - CHECK_INV_LBREAKS (); - inv_lbreaks[newlines+1] = out; - cursor_linenum = lb_linenum; - - /* C_POS == position in buffer where cursor should be placed. - CURSOR_LINENUM == line number where the cursor should be placed. */ - - /* PWP: now is when things get a bit hairy. The visible and invisible - line buffers are really multiple lines, which would wrap every - (screenwidth - 1) characters. Go through each in turn, finding - the changed region and updating it. The line order is top to bottom. */ - - /* If we can move the cursor up and down, then use multiple lines, - otherwise, let long lines display in a single terminal line, and - horizontally scroll it. */ - - if (_rl_horizontal_scroll_mode == 0 && _rl_term_up && *_rl_term_up) - { - int nleft, pos, changed_screen_line; - - if (!rl_display_fixed || forced_display) - { - forced_display = 0; - - /* If we have more than a screenful of material to display, then - only display a screenful. We should display the last screen, - not the first. */ - if (out >= _rl_screenchars) - { - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - out = _rl_find_prev_mbchar (line, _rl_screenchars, MB_FIND_ANY); - else - out = _rl_screenchars - 1; - } - - /* The first line is at character position 0 in the buffer. The - second and subsequent lines start at inv_lbreaks[N], offset by - OFFSET (which has already been calculated above). */ - -#define W_OFFSET(line, offset) ((line) == 0 ? offset : 0) -#define VIS_LLEN(l) ((l) > _rl_vis_botlin ? 0 : (vis_lbreaks[l+1] - vis_lbreaks[l])) -#define INV_LLEN(l) (inv_lbreaks[l+1] - inv_lbreaks[l]) -#define VIS_CHARS(line) (visible_line + vis_lbreaks[line]) -#define VIS_LINE(line) ((line) > _rl_vis_botlin) ? "" : VIS_CHARS(line) -#define INV_LINE(line) (invisible_line + inv_lbreaks[line]) - - /* For each line in the buffer, do the updating display. */ - for (linenum = 0; linenum <= inv_botlin; linenum++) - { - update_line (VIS_LINE(linenum), INV_LINE(linenum), linenum, - VIS_LLEN(linenum), INV_LLEN(linenum), inv_botlin); - - /* If this is the line with the prompt, we might need to - compensate for invisible characters in the new line. Do - this only if there is not more than one new line (which - implies that we completely overwrite the old visible line) - and the new line is shorter than the old. Make sure we are - at the end of the new line before clearing. */ - if (linenum == 0 && - inv_botlin == 0 && _rl_last_c_pos == out && - (wrap_offset > visible_wrap_offset) && - (_rl_last_c_pos < visible_first_line_len)) - { - nleft = _rl_screenwidth + wrap_offset - _rl_last_c_pos; - if (nleft) - _rl_clear_to_eol (nleft); - } - - /* Since the new first line is now visible, save its length. */ - if (linenum == 0) - visible_first_line_len = (inv_botlin > 0) ? inv_lbreaks[1] : out - wrap_offset; - } - - /* We may have deleted some lines. If so, clear the left over - blank ones at the bottom out. */ - if (_rl_vis_botlin > inv_botlin) - { - char *tt; - for (; linenum <= _rl_vis_botlin; linenum++) - { - tt = VIS_CHARS (linenum); - _rl_move_vert (linenum); - _rl_move_cursor_relative (0, tt); - _rl_clear_to_eol - ((linenum == _rl_vis_botlin) ? strlen (tt) : _rl_screenwidth); - } - } - _rl_vis_botlin = inv_botlin; - - /* CHANGED_SCREEN_LINE is set to 1 if we have moved to a - different screen line during this redisplay. */ - changed_screen_line = _rl_last_v_pos != cursor_linenum; - if (changed_screen_line) - { - _rl_move_vert (cursor_linenum); - /* If we moved up to the line with the prompt using _rl_term_up, - the physical cursor position on the screen stays the same, - but the buffer position needs to be adjusted to account - for invisible characters. */ - if (cursor_linenum == 0 && wrap_offset) - _rl_last_c_pos += wrap_offset; - } - - /* We have to reprint the prompt if it contains invisible - characters, since it's not generally OK to just reprint - the characters from the current cursor position. But we - only need to reprint it if the cursor is before the last - invisible character in the prompt string. */ - nleft = prompt_visible_length + wrap_offset; - if (cursor_linenum == 0 && wrap_offset > 0 && _rl_last_c_pos > 0 && - _rl_last_c_pos <= prompt_last_invisible && local_prompt) - { -#if defined (__MSDOS__) - putc ('\r', rl_outstream); -#else - if (_rl_term_cr) - tputs (_rl_term_cr, 1, _rl_output_character_function); -#endif - _rl_output_some_chars (local_prompt, nleft); - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - _rl_last_c_pos = _rl_col_width (local_prompt, 0, nleft); - else - _rl_last_c_pos = nleft; - } - - /* Where on that line? And where does that line start - in the buffer? */ - pos = inv_lbreaks[cursor_linenum]; - /* nleft == number of characters in the line buffer between the - start of the line and the cursor position. */ - nleft = c_pos - pos; - - /* Since _rl_backspace() doesn't know about invisible characters in the - prompt, and there's no good way to tell it, we compensate for - those characters here and call _rl_backspace() directly. */ - if (wrap_offset && cursor_linenum == 0 && nleft < _rl_last_c_pos) - { - _rl_backspace (_rl_last_c_pos - nleft); - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - _rl_last_c_pos = _rl_col_width (&visible_line[pos], 0, nleft); - else - _rl_last_c_pos = nleft; - } - - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - _rl_move_cursor_relative (nleft, &invisible_line[pos]); - else if (nleft != _rl_last_c_pos) - _rl_move_cursor_relative (nleft, &invisible_line[pos]); - } - } - else /* Do horizontal scrolling. */ - { -#define M_OFFSET(margin, offset) ((margin) == 0 ? offset : 0) - int lmargin, ndisp, nleft, phys_c_pos, t; - - /* Always at top line. */ - _rl_last_v_pos = 0; - - /* Compute where in the buffer the displayed line should start. This - will be LMARGIN. */ - - /* The number of characters that will be displayed before the cursor. */ - ndisp = c_pos - wrap_offset; - nleft = prompt_visible_length + wrap_offset; - /* Where the new cursor position will be on the screen. This can be - longer than SCREENWIDTH; if it is, lmargin will be adjusted. */ - phys_c_pos = c_pos - (last_lmargin ? last_lmargin : wrap_offset); - t = _rl_screenwidth / 3; - - /* If the number of characters had already exceeded the screenwidth, - last_lmargin will be > 0. */ - - /* If the number of characters to be displayed is more than the screen - width, compute the starting offset so that the cursor is about - two-thirds of the way across the screen. */ - if (phys_c_pos > _rl_screenwidth - 2) - { - lmargin = c_pos - (2 * t); - if (lmargin < 0) - lmargin = 0; - /* If the left margin would be in the middle of a prompt with - invisible characters, don't display the prompt at all. */ - if (wrap_offset && lmargin > 0 && lmargin < nleft) - lmargin = nleft; - } - else if (ndisp < _rl_screenwidth - 2) /* XXX - was -1 */ - lmargin = 0; - else if (phys_c_pos < 1) - { - /* If we are moving back towards the beginning of the line and - the last margin is no longer correct, compute a new one. */ - lmargin = ((c_pos - 1) / t) * t; /* XXX */ - if (wrap_offset && lmargin > 0 && lmargin < nleft) - lmargin = nleft; - } - else - lmargin = last_lmargin; - - /* If the first character on the screen isn't the first character - in the display line, indicate this with a special character. */ - if (lmargin > 0) - line[lmargin] = '<'; - - /* If SCREENWIDTH characters starting at LMARGIN do not encompass - the whole line, indicate that with a special character at the - right edge of the screen. If LMARGIN is 0, we need to take the - wrap offset into account. */ - t = lmargin + M_OFFSET (lmargin, wrap_offset) + _rl_screenwidth; - if (t < out) - line[t - 1] = '>'; - - if (!rl_display_fixed || forced_display || lmargin != last_lmargin) - { - forced_display = 0; - update_line (&visible_line[last_lmargin], - &invisible_line[lmargin], - 0, - _rl_screenwidth + visible_wrap_offset, - _rl_screenwidth + (lmargin ? 0 : wrap_offset), - 0); - - /* If the visible new line is shorter than the old, but the number - of invisible characters is greater, and we are at the end of - the new line, we need to clear to eol. */ - t = _rl_last_c_pos - M_OFFSET (lmargin, wrap_offset); - if ((M_OFFSET (lmargin, wrap_offset) > visible_wrap_offset) && - (_rl_last_c_pos == out) && - t < visible_first_line_len) - { - nleft = _rl_screenwidth - t; - _rl_clear_to_eol (nleft); - } - visible_first_line_len = out - lmargin - M_OFFSET (lmargin, wrap_offset); - if (visible_first_line_len > _rl_screenwidth) - visible_first_line_len = _rl_screenwidth; - - _rl_move_cursor_relative (c_pos - lmargin, &invisible_line[lmargin]); - last_lmargin = lmargin; - } - } - fflush (rl_outstream); - - /* Swap visible and non-visible lines. */ - { - char *vtemp = visible_line; - int *itemp = vis_lbreaks, ntemp = vis_lbsize; - - visible_line = invisible_line; - invisible_line = vtemp; - - vis_lbreaks = inv_lbreaks; - inv_lbreaks = itemp; - - vis_lbsize = inv_lbsize; - inv_lbsize = ntemp; - - rl_display_fixed = 0; - /* If we are displaying on a single line, and last_lmargin is > 0, we - are not displaying any invisible characters, so set visible_wrap_offset - to 0. */ - if (_rl_horizontal_scroll_mode && last_lmargin) - visible_wrap_offset = 0; - else - visible_wrap_offset = wrap_offset; - } -} - -/* PWP: update_line() is based on finding the middle difference of each - line on the screen; vis: - - /old first difference - /beginning of line | /old last same /old EOL - v v v v -old: eddie> Oh, my little gruntle-buggy is to me, as lurgid as -new: eddie> Oh, my little buggy says to me, as lurgid as - ^ ^ ^ ^ - \beginning of line | \new last same \new end of line - \new first difference - - All are character pointers for the sake of speed. Special cases for - no differences, as well as for end of line additions must be handled. - - Could be made even smarter, but this works well enough */ -static void -update_line (old, new, current_line, omax, nmax, inv_botlin) - register char *old, *new; - int current_line, omax, nmax, inv_botlin; -{ - register char *ofd, *ols, *oe, *nfd, *nls, *ne; - int temp, lendiff, wsatend, od, nd; - int current_invis_chars; - int col_lendiff, col_temp; -#if defined (HANDLE_MULTIBYTE) - mbstate_t ps_new, ps_old; - int new_offset, old_offset, tmp; -#endif - - /* If we're at the right edge of a terminal that supports xn, we're - ready to wrap around, so do so. This fixes problems with knowing - the exact cursor position and cut-and-paste with certain terminal - emulators. In this calculation, TEMP is the physical screen - position of the cursor. */ - temp = _rl_last_c_pos - W_OFFSET(_rl_last_v_pos, visible_wrap_offset); - if (temp == _rl_screenwidth && _rl_term_autowrap && !_rl_horizontal_scroll_mode - && _rl_last_v_pos == current_line - 1) - { -#if defined (HANDLE_MULTIBYTE) - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - { - wchar_t wc; - mbstate_t ps; - int tempwidth, bytes; - size_t ret; - - /* This fixes only double-column characters, but if the wrapped - character comsumes more than three columns, spaces will be - inserted in the string buffer. */ - if (_rl_wrapped_line[current_line] > 0) - _rl_clear_to_eol (_rl_wrapped_line[current_line]); - - memset (&ps, 0, sizeof (mbstate_t)); - ret = mbrtowc (&wc, new, MB_CUR_MAX, &ps); - if (MB_INVALIDCH (ret)) - { - tempwidth = 1; - ret = 1; - } - else if (MB_NULLWCH (ret)) - tempwidth = 0; - else - tempwidth = wcwidth (wc); - - if (tempwidth > 0) - { - int count; - bytes = ret; - for (count = 0; count < bytes; count++) - putc (new[count], rl_outstream); - _rl_last_c_pos = tempwidth; - _rl_last_v_pos++; - memset (&ps, 0, sizeof (mbstate_t)); - ret = mbrtowc (&wc, old, MB_CUR_MAX, &ps); - if (ret != 0 && bytes != 0) - { - if (MB_INVALIDCH (ret)) - memmove (old+bytes, old+1, strlen (old+1)); - else - memmove (old+bytes, old+ret, strlen (old+ret)); - memcpy (old, new, bytes); - } - } - else - { - putc (' ', rl_outstream); - _rl_last_c_pos = 1; - _rl_last_v_pos++; - if (old[0] && new[0]) - old[0] = new[0]; - } - } - else -#endif - { - if (new[0]) - putc (new[0], rl_outstream); - else - putc (' ', rl_outstream); - _rl_last_c_pos = 1; /* XXX */ - _rl_last_v_pos++; - if (old[0] && new[0]) - old[0] = new[0]; - } - } - - - /* Find first difference. */ -#if defined (HANDLE_MULTIBYTE) - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - { - /* See if the old line is a subset of the new line, so that the - only change is adding characters. */ - temp = (omax < nmax) ? omax : nmax; - if (memcmp (old, new, temp) == 0) - { - ofd = old + temp; - nfd = new + temp; - } - else - { - memset (&ps_new, 0, sizeof(mbstate_t)); - memset (&ps_old, 0, sizeof(mbstate_t)); - - if (omax == nmax && STREQN (new, old, omax)) - { - ofd = old + omax; - nfd = new + nmax; - } - else - { - new_offset = old_offset = 0; - for (ofd = old, nfd = new; - (ofd - old < omax) && *ofd && - _rl_compare_chars(old, old_offset, &ps_old, new, new_offset, &ps_new); ) - { - old_offset = _rl_find_next_mbchar (old, old_offset, 1, MB_FIND_ANY); - new_offset = _rl_find_next_mbchar (new, new_offset, 1, MB_FIND_ANY); - ofd = old + old_offset; - nfd = new + new_offset; - } - } - } - } - else -#endif - for (ofd = old, nfd = new; - (ofd - old < omax) && *ofd && (*ofd == *nfd); - ofd++, nfd++) - ; - - /* Move to the end of the screen line. ND and OD are used to keep track - of the distance between ne and new and oe and old, respectively, to - move a subtraction out of each loop. */ - for (od = ofd - old, oe = ofd; od < omax && *oe; oe++, od++); - for (nd = nfd - new, ne = nfd; nd < nmax && *ne; ne++, nd++); - - /* If no difference, continue to next line. */ - if (ofd == oe && nfd == ne) - return; - - wsatend = 1; /* flag for trailing whitespace */ - -#if defined (HANDLE_MULTIBYTE) - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - { - ols = old + _rl_find_prev_mbchar (old, oe - old, MB_FIND_ANY); - nls = new + _rl_find_prev_mbchar (new, ne - new, MB_FIND_ANY); - while ((ols > ofd) && (nls > nfd)) - { - memset (&ps_old, 0, sizeof (mbstate_t)); - memset (&ps_new, 0, sizeof (mbstate_t)); - -#if 0 - /* On advice from jir@yamato.ibm.com */ - _rl_adjust_point (old, ols - old, &ps_old); - _rl_adjust_point (new, nls - new, &ps_new); -#endif - - if (_rl_compare_chars (old, ols - old, &ps_old, new, nls - new, &ps_new) == 0) - break; - - if (*ols == ' ') - wsatend = 0; - - ols = old + _rl_find_prev_mbchar (old, ols - old, MB_FIND_ANY); - nls = new + _rl_find_prev_mbchar (new, nls - new, MB_FIND_ANY); - } - } - else - { -#endif /* HANDLE_MULTIBYTE */ - ols = oe - 1; /* find last same */ - nls = ne - 1; - while ((ols > ofd) && (nls > nfd) && (*ols == *nls)) - { - if (*ols != ' ') - wsatend = 0; - ols--; - nls--; - } -#if defined (HANDLE_MULTIBYTE) - } -#endif - - if (wsatend) - { - ols = oe; - nls = ne; - } -#if defined (HANDLE_MULTIBYTE) - /* This may not work for stateful encoding, but who cares? To handle - stateful encoding properly, we have to scan each string from the - beginning and compare. */ - else if (_rl_compare_chars (ols, 0, NULL, nls, 0, NULL) == 0) -#else - else if (*ols != *nls) -#endif - { - if (*ols) /* don't step past the NUL */ - { - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - ols = old + _rl_find_next_mbchar (old, ols - old, 1, MB_FIND_ANY); - else - ols++; - } - if (*nls) - { - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - nls = new + _rl_find_next_mbchar (new, nls - new, 1, MB_FIND_ANY); - else - nls++; - } - } - - /* count of invisible characters in the current invisible line. */ - current_invis_chars = W_OFFSET (current_line, wrap_offset); - if (_rl_last_v_pos != current_line) - { - _rl_move_vert (current_line); - if (current_line == 0 && visible_wrap_offset) - _rl_last_c_pos += visible_wrap_offset; - } - - /* If this is the first line and there are invisible characters in the - prompt string, and the prompt string has not changed, and the current - cursor position is before the last invisible character in the prompt, - and the index of the character to move to is past the end of the prompt - string, then redraw the entire prompt string. We can only do this - reliably if the terminal supports a `cr' capability. - - This is not an efficiency hack -- there is a problem with redrawing - portions of the prompt string if they contain terminal escape - sequences (like drawing the `unbold' sequence without a corresponding - `bold') that manifests itself on certain terminals. */ - - lendiff = local_prompt ? strlen (local_prompt) : 0; - od = ofd - old; /* index of first difference in visible line */ - if (current_line == 0 && !_rl_horizontal_scroll_mode && - _rl_term_cr && lendiff > prompt_visible_length && _rl_last_c_pos > 0 && - od >= lendiff && _rl_last_c_pos <= prompt_last_invisible) - { -#if defined (__MSDOS__) - putc ('\r', rl_outstream); -#else - tputs (_rl_term_cr, 1, _rl_output_character_function); -#endif - _rl_output_some_chars (local_prompt, lendiff); - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - _rl_last_c_pos = _rl_col_width (local_prompt, 0, lendiff); - else - _rl_last_c_pos = lendiff; - } - - _rl_move_cursor_relative (od, old); - - /* if (len (new) > len (old)) - lendiff == difference in buffer - col_lendiff == difference on screen - When not using multibyte characters, these are equal */ - lendiff = (nls - nfd) - (ols - ofd); - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - col_lendiff = _rl_col_width (new, nfd - new, nls - new) - _rl_col_width (old, ofd - old, ols - old); - else - col_lendiff = lendiff; - - /* If we are changing the number of invisible characters in a line, and - the spot of first difference is before the end of the invisible chars, - lendiff needs to be adjusted. */ - if (current_line == 0 && !_rl_horizontal_scroll_mode && - current_invis_chars != visible_wrap_offset) - { - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - { - lendiff += visible_wrap_offset - current_invis_chars; - col_lendiff += visible_wrap_offset - current_invis_chars; - } - else - { - lendiff += visible_wrap_offset - current_invis_chars; - col_lendiff = lendiff; - } - } - - /* Insert (diff (len (old), len (new)) ch. */ - temp = ne - nfd; - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - col_temp = _rl_col_width (new, nfd - new, ne - new); - else - col_temp = temp; - - if (col_lendiff > 0) /* XXX - was lendiff */ - { - /* Non-zero if we're increasing the number of lines. */ - int gl = current_line >= _rl_vis_botlin && inv_botlin > _rl_vis_botlin; - /* Sometimes it is cheaper to print the characters rather than - use the terminal's capabilities. If we're growing the number - of lines, make sure we actually cause the new line to wrap - around on auto-wrapping terminals. */ - if (_rl_terminal_can_insert && ((2 * col_temp) >= col_lendiff || _rl_term_IC) && (!_rl_term_autowrap || !gl)) - { - /* If lendiff > prompt_visible_length and _rl_last_c_pos == 0 and - _rl_horizontal_scroll_mode == 1, inserting the characters with - _rl_term_IC or _rl_term_ic will screw up the screen because of the - invisible characters. We need to just draw them. */ - if (*ols && (!_rl_horizontal_scroll_mode || _rl_last_c_pos > 0 || - lendiff <= prompt_visible_length || !current_invis_chars)) - { - insert_some_chars (nfd, lendiff, col_lendiff); - _rl_last_c_pos += col_lendiff; - } - else if ((MB_CUR_MAX == 1 || rl_byte_oriented != 0) && *ols == 0 && lendiff > 0) - { - /* At the end of a line the characters do not have to - be "inserted". They can just be placed on the screen. */ - /* However, this screws up the rest of this block, which - assumes you've done the insert because you can. */ - _rl_output_some_chars (nfd, lendiff); - _rl_last_c_pos += col_lendiff; - } - else - { - /* We have horizontal scrolling and we are not inserting at - the end. We have invisible characters in this line. This - is a dumb update. */ - _rl_output_some_chars (nfd, temp); - _rl_last_c_pos += col_temp; - return; - } - /* Copy (new) chars to screen from first diff to last match. */ - temp = nls - nfd; - if ((temp - lendiff) > 0) - { - _rl_output_some_chars (nfd + lendiff, temp - lendiff); -#if 1 - /* XXX -- this bears closer inspection. Fixes a redisplay bug - reported against bash-3.0-alpha by Andreas Schwab involving - multibyte characters and prompt strings with invisible - characters, but was previously disabled. */ - _rl_last_c_pos += _rl_col_width (nfd+lendiff, 0, temp-col_lendiff); -#else - _rl_last_c_pos += _rl_col_width (nfd+lendiff, 0, temp-lendiff); -#endif - } - } - else - { - /* cannot insert chars, write to EOL */ - _rl_output_some_chars (nfd, temp); - _rl_last_c_pos += col_temp; - } - } - else /* Delete characters from line. */ - { - /* If possible and inexpensive to use terminal deletion, then do so. */ - if (_rl_term_dc && (2 * col_temp) >= -col_lendiff) - { - /* If all we're doing is erasing the invisible characters in the - prompt string, don't bother. It screws up the assumptions - about what's on the screen. */ - if (_rl_horizontal_scroll_mode && _rl_last_c_pos == 0 && - -lendiff == visible_wrap_offset) - col_lendiff = 0; - - if (col_lendiff) - delete_chars (-col_lendiff); /* delete (diff) characters */ - - /* Copy (new) chars to screen from first diff to last match */ - temp = nls - nfd; - if (temp > 0) - { - _rl_output_some_chars (nfd, temp); - _rl_last_c_pos += _rl_col_width (nfd, 0, temp);; - } - } - /* Otherwise, print over the existing material. */ - else - { - if (temp > 0) - { - _rl_output_some_chars (nfd, temp); - _rl_last_c_pos += col_temp; - } - lendiff = (oe - old) - (ne - new); - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - col_lendiff = _rl_col_width (old, 0, oe - old) - _rl_col_width (new, 0, ne - new); - else - col_lendiff = lendiff; - - if (col_lendiff) - { - if (_rl_term_autowrap && current_line < inv_botlin) - space_to_eol (col_lendiff); - else - _rl_clear_to_eol (col_lendiff); - } - } - } -} - -/* Tell the update routines that we have moved onto a new (empty) line. */ -int -rl_on_new_line () -{ - if (visible_line) - visible_line[0] = '\0'; - - _rl_last_c_pos = _rl_last_v_pos = 0; - _rl_vis_botlin = last_lmargin = 0; - if (vis_lbreaks) - vis_lbreaks[0] = vis_lbreaks[1] = 0; - visible_wrap_offset = 0; - return 0; -} - -/* Tell the update routines that we have moved onto a new line with the - prompt already displayed. Code originally from the version of readline - distributed with CLISP. rl_expand_prompt must have already been called - (explicitly or implicitly). This still doesn't work exactly right. */ -int -rl_on_new_line_with_prompt () -{ - int prompt_size, i, l, real_screenwidth, newlines; - char *prompt_last_line, *lprompt; - - /* Initialize visible_line and invisible_line to ensure that they can hold - the already-displayed prompt. */ - prompt_size = strlen (rl_prompt) + 1; - init_line_structures (prompt_size); - - /* Make sure the line structures hold the already-displayed prompt for - redisplay. */ - lprompt = local_prompt ? local_prompt : rl_prompt; - strcpy (visible_line, lprompt); - strcpy (invisible_line, lprompt); - - /* If the prompt contains newlines, take the last tail. */ - prompt_last_line = strrchr (rl_prompt, '\n'); - if (!prompt_last_line) - prompt_last_line = rl_prompt; - - l = strlen (prompt_last_line); - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - _rl_last_c_pos = _rl_col_width (prompt_last_line, 0, l); - else - _rl_last_c_pos = l; - - /* Dissect prompt_last_line into screen lines. Note that here we have - to use the real screenwidth. Readline's notion of screenwidth might be - one less, see terminal.c. */ - real_screenwidth = _rl_screenwidth + (_rl_term_autowrap ? 0 : 1); - _rl_last_v_pos = l / real_screenwidth; - /* If the prompt length is a multiple of real_screenwidth, we don't know - whether the cursor is at the end of the last line, or already at the - beginning of the next line. Output a newline just to be safe. */ - if (l > 0 && (l % real_screenwidth) == 0) - _rl_output_some_chars ("\n", 1); - last_lmargin = 0; - - newlines = 0; i = 0; - while (i <= l) - { - _rl_vis_botlin = newlines; - vis_lbreaks[newlines++] = i; - i += real_screenwidth; - } - vis_lbreaks[newlines] = l; - visible_wrap_offset = 0; - - rl_display_prompt = rl_prompt; /* XXX - make sure it's set */ - - return 0; -} - -/* Actually update the display, period. */ -int -rl_forced_update_display () -{ - if (visible_line) - { - register char *temp = visible_line; - - while (*temp) - *temp++ = '\0'; - } - rl_on_new_line (); - forced_display++; - (*rl_redisplay_function) (); - return 0; -} - -/* Move the cursor from _rl_last_c_pos to NEW, which are buffer indices. - DATA is the contents of the screen line of interest; i.e., where - the movement is being done. */ -void -_rl_move_cursor_relative (new, data) - int new; - const char *data; -{ - register int i; - - /* If we don't have to do anything, then return. */ -#if defined (HANDLE_MULTIBYTE) - /* If we have multibyte characters, NEW is indexed by the buffer point in - a multibyte string, but _rl_last_c_pos is the display position. In - this case, NEW's display position is not obvious and must be - calculated. */ - if (MB_CUR_MAX == 1 || rl_byte_oriented) - { - if (_rl_last_c_pos == new) - return; - } - else if (_rl_last_c_pos == _rl_col_width (data, 0, new)) - return; -#else - if (_rl_last_c_pos == new) return; -#endif - - /* It may be faster to output a CR, and then move forwards instead - of moving backwards. */ - /* i == current physical cursor position. */ - i = _rl_last_c_pos - W_OFFSET(_rl_last_v_pos, visible_wrap_offset); - if (new == 0 || CR_FASTER (new, _rl_last_c_pos) || - (_rl_term_autowrap && i == _rl_screenwidth)) - { -#if defined (__MSDOS__) - putc ('\r', rl_outstream); -#else - tputs (_rl_term_cr, 1, _rl_output_character_function); -#endif /* !__MSDOS__ */ - _rl_last_c_pos = 0; - } - - if (_rl_last_c_pos < new) - { - /* Move the cursor forward. We do it by printing the command - to move the cursor forward if there is one, else print that - portion of the output buffer again. Which is cheaper? */ - - /* The above comment is left here for posterity. It is faster - to print one character (non-control) than to print a control - sequence telling the terminal to move forward one character. - That kind of control is for people who don't know what the - data is underneath the cursor. */ -#if defined (HACK_TERMCAP_MOTION) - if (_rl_term_forward_char) - { - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - { - int width; - width = _rl_col_width (data, _rl_last_c_pos, new); - for (i = 0; i < width; i++) - tputs (_rl_term_forward_char, 1, _rl_output_character_function); - } - else - { - for (i = _rl_last_c_pos; i < new; i++) - tputs (_rl_term_forward_char, 1, _rl_output_character_function); - } - } - else if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - { - tputs (_rl_term_cr, 1, _rl_output_character_function); - for (i = 0; i < new; i++) - putc (data[i], rl_outstream); - } - else - for (i = _rl_last_c_pos; i < new; i++) - putc (data[i], rl_outstream); - -#else /* !HACK_TERMCAP_MOTION */ - - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - { - tputs (_rl_term_cr, 1, _rl_output_character_function); - for (i = 0; i < new; i++) - putc (data[i], rl_outstream); - } - else - for (i = _rl_last_c_pos; i < new; i++) - putc (data[i], rl_outstream); - -#endif /* !HACK_TERMCAP_MOTION */ - - } -#if defined (HANDLE_MULTIBYTE) - /* NEW points to the buffer point, but _rl_last_c_pos is the display point. - The byte length of the string is probably bigger than the column width - of the string, which means that if NEW == _rl_last_c_pos, then NEW's - display point is less than _rl_last_c_pos. */ - else if (_rl_last_c_pos >= new) -#else - else if (_rl_last_c_pos > new) -#endif - { - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - _rl_backspace (_rl_last_c_pos - _rl_col_width (data, 0, new)); - else - _rl_backspace (_rl_last_c_pos - new); - } - - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - _rl_last_c_pos = _rl_col_width (data, 0, new); - else - _rl_last_c_pos = new; -} - -/* PWP: move the cursor up or down. */ -void -_rl_move_vert (to) - int to; -{ - register int delta, i; - - if (_rl_last_v_pos == to || to > _rl_screenheight) - return; - - if ((delta = to - _rl_last_v_pos) > 0) - { - for (i = 0; i < delta; i++) - putc ('\n', rl_outstream); -#if defined (__MSDOS__) - putc ('\r', rl_outstream); -#else - tputs (_rl_term_cr, 1, _rl_output_character_function); -#endif - _rl_last_c_pos = 0; - } - else - { /* delta < 0 */ - if (_rl_term_up && *_rl_term_up) - for (i = 0; i < -delta; i++) - tputs (_rl_term_up, 1, _rl_output_character_function); - } - - _rl_last_v_pos = to; /* Now TO is here */ -} - -/* Physically print C on rl_outstream. This is for functions which know - how to optimize the display. Return the number of characters output. */ -int -rl_show_char (c) - int c; -{ - int n = 1; - if (META_CHAR (c) && (_rl_output_meta_chars == 0)) - { - fprintf (rl_outstream, "M-"); - n += 2; - c = UNMETA (c); - } - -#if defined (DISPLAY_TABS) - if ((CTRL_CHAR (c) && c != '\t') || c == RUBOUT) -#else - if (CTRL_CHAR (c) || c == RUBOUT) -#endif /* !DISPLAY_TABS */ - { - fprintf (rl_outstream, "C-"); - n += 2; - c = CTRL_CHAR (c) ? UNCTRL (c) : '?'; - } - - putc (c, rl_outstream); - fflush (rl_outstream); - return n; -} - -int -rl_character_len (c, pos) - register int c, pos; -{ - unsigned char uc; - - uc = (unsigned char)c; - - if (META_CHAR (uc)) - return ((_rl_output_meta_chars == 0) ? 4 : 1); - - if (uc == '\t') - { -#if defined (DISPLAY_TABS) - return (((pos | 7) + 1) - pos); -#else - return (2); -#endif /* !DISPLAY_TABS */ - } - - if (CTRL_CHAR (c) || c == RUBOUT) - return (2); - - return ((ISPRINT (uc)) ? 1 : 2); -} - -/* How to print things in the "echo-area". The prompt is treated as a - mini-modeline. */ - -#if defined (USE_VARARGS) -int -#if defined (PREFER_STDARG) -rl_message (const char *format, ...) -#else -rl_message (va_alist) - va_dcl -#endif -{ - va_list args; -#if defined (PREFER_VARARGS) - char *format; -#endif - -#if defined (PREFER_STDARG) - va_start (args, format); -#else - va_start (args); - format = va_arg (args, char *); -#endif - -#if defined (HAVE_VSNPRINTF) - vsnprintf (msg_buf, sizeof (msg_buf) - 1, format, args); -#else - vsprintf (msg_buf, format, args); - msg_buf[sizeof(msg_buf) - 1] = '\0'; /* overflow? */ -#endif - va_end (args); - - rl_display_prompt = msg_buf; - (*rl_redisplay_function) (); - return 0; -} -#else /* !USE_VARARGS */ -int -rl_message (format, arg1, arg2) - char *format; -{ - sprintf (msg_buf, format, arg1, arg2); - msg_buf[sizeof(msg_buf) - 1] = '\0'; /* overflow? */ - rl_display_prompt = msg_buf; - (*rl_redisplay_function) (); - return 0; -} -#endif /* !USE_VARARGS */ - -/* How to clear things from the "echo-area". */ -int -rl_clear_message () -{ - rl_display_prompt = rl_prompt; - (*rl_redisplay_function) (); - return 0; -} - -int -rl_reset_line_state () -{ - rl_on_new_line (); - - rl_display_prompt = rl_prompt ? rl_prompt : ""; - forced_display = 1; - return 0; -} - -/* These are getting numerous enough that it's time to create a struct. */ - -static char *saved_local_prompt; -static char *saved_local_prefix; -static int saved_last_invisible; -static int saved_visible_length; -static int saved_invis_chars_first_line; -static int saved_physical_chars; - -void -rl_save_prompt () -{ - saved_local_prompt = local_prompt; - saved_local_prefix = local_prompt_prefix; - saved_last_invisible = prompt_last_invisible; - saved_visible_length = prompt_visible_length; - saved_invis_chars_first_line = prompt_invis_chars_first_line; - saved_physical_chars = prompt_physical_chars; - - local_prompt = local_prompt_prefix = (char *)0; - prompt_last_invisible = prompt_visible_length = 0; - prompt_invis_chars_first_line = prompt_physical_chars = 0; -} - -void -rl_restore_prompt () -{ - FREE (local_prompt); - FREE (local_prompt_prefix); - - local_prompt = saved_local_prompt; - local_prompt_prefix = saved_local_prefix; - prompt_last_invisible = saved_last_invisible; - prompt_visible_length = saved_visible_length; - prompt_invis_chars_first_line = saved_invis_chars_first_line; - prompt_physical_chars = saved_physical_chars; -} - -char * -_rl_make_prompt_for_search (pchar) - int pchar; -{ - int len; - char *pmt; - - rl_save_prompt (); - - if (saved_local_prompt == 0) - { - len = (rl_prompt && *rl_prompt) ? strlen (rl_prompt) : 0; - pmt = (char *)xmalloc (len + 2); - if (len) - strcpy (pmt, rl_prompt); - pmt[len] = pchar; - pmt[len+1] = '\0'; - } - else - { - len = *saved_local_prompt ? strlen (saved_local_prompt) : 0; - pmt = (char *)xmalloc (len + 2); - if (len) - strcpy (pmt, saved_local_prompt); - pmt[len] = pchar; - pmt[len+1] = '\0'; - local_prompt = savestring (pmt); - prompt_last_invisible = saved_last_invisible; - prompt_visible_length = saved_visible_length + 1; - } - - return pmt; -} - -/* Quick redisplay hack when erasing characters at the end of the line. */ -void -_rl_erase_at_end_of_line (l) - int l; -{ - register int i; - - _rl_backspace (l); - for (i = 0; i < l; i++) - putc (' ', rl_outstream); - _rl_backspace (l); - for (i = 0; i < l; i++) - visible_line[--_rl_last_c_pos] = '\0'; - rl_display_fixed++; -} - -/* Clear to the end of the line. COUNT is the minimum - number of character spaces to clear, */ -void -_rl_clear_to_eol (count) - int count; -{ - if (_rl_term_clreol) - tputs (_rl_term_clreol, 1, _rl_output_character_function); - else if (count) - space_to_eol (count); -} - -/* Clear to the end of the line using spaces. COUNT is the minimum - number of character spaces to clear, */ -static void -space_to_eol (count) - int count; -{ - register int i; - - for (i = 0; i < count; i++) - putc (' ', rl_outstream); - - _rl_last_c_pos += count; -} - -void -_rl_clear_screen () -{ - if (_rl_term_clrpag) - tputs (_rl_term_clrpag, 1, _rl_output_character_function); - else - rl_crlf (); -} - -/* Insert COUNT characters from STRING to the output stream at column COL. */ -static void -insert_some_chars (string, count, col) - char *string; - int count, col; -{ - /* DEBUGGING */ - if (MB_CUR_MAX == 1 || rl_byte_oriented) - if (count != col) - fprintf(stderr, "readline: debug: insert_some_chars: count (%d) != col (%d)\n", count, col); - - /* If IC is defined, then we do not have to "enter" insert mode. */ - if (_rl_term_IC) - { - char *buffer; - - buffer = tgoto (_rl_term_IC, 0, col); - tputs (buffer, 1, _rl_output_character_function); - _rl_output_some_chars (string, count); - } - else - { - register int i; - - /* If we have to turn on insert-mode, then do so. */ - if (_rl_term_im && *_rl_term_im) - tputs (_rl_term_im, 1, _rl_output_character_function); - - /* If there is a special command for inserting characters, then - use that first to open up the space. */ - if (_rl_term_ic && *_rl_term_ic) - { - for (i = col; i--; ) - tputs (_rl_term_ic, 1, _rl_output_character_function); - } - - /* Print the text. */ - _rl_output_some_chars (string, count); - - /* If there is a string to turn off insert mode, we had best use - it now. */ - if (_rl_term_ei && *_rl_term_ei) - tputs (_rl_term_ei, 1, _rl_output_character_function); - } -} - -/* Delete COUNT characters from the display line. */ -static void -delete_chars (count) - int count; -{ - if (count > _rl_screenwidth) /* XXX */ - return; - - if (_rl_term_DC && *_rl_term_DC) - { - char *buffer; - buffer = tgoto (_rl_term_DC, count, count); - tputs (buffer, count, _rl_output_character_function); - } - else - { - if (_rl_term_dc && *_rl_term_dc) - while (count--) - tputs (_rl_term_dc, 1, _rl_output_character_function); - } -} - -void -_rl_update_final () -{ - int full_lines; - - full_lines = 0; - /* If the cursor is the only thing on an otherwise-blank last line, - compensate so we don't print an extra CRLF. */ - if (_rl_vis_botlin && _rl_last_c_pos == 0 && - visible_line[vis_lbreaks[_rl_vis_botlin]] == 0) - { - _rl_vis_botlin--; - full_lines = 1; - } - _rl_move_vert (_rl_vis_botlin); - /* If we've wrapped lines, remove the final xterm line-wrap flag. */ - if (full_lines && _rl_term_autowrap && (VIS_LLEN(_rl_vis_botlin) == _rl_screenwidth)) - { - char *last_line; - - last_line = &visible_line[vis_lbreaks[_rl_vis_botlin]]; - _rl_move_cursor_relative (_rl_screenwidth - 1, last_line); - _rl_clear_to_eol (0); - putc (last_line[_rl_screenwidth - 1], rl_outstream); - } - _rl_vis_botlin = 0; - rl_crlf (); - fflush (rl_outstream); - rl_display_fixed++; -} - -/* Move to the start of the current line. */ -static void -cr () -{ - if (_rl_term_cr) - { -#if defined (__MSDOS__) - putc ('\r', rl_outstream); -#else - tputs (_rl_term_cr, 1, _rl_output_character_function); -#endif - _rl_last_c_pos = 0; - } -} - -/* Redraw the last line of a multi-line prompt that may possibly contain - terminal escape sequences. Called with the cursor at column 0 of the - line to draw the prompt on. */ -static void -redraw_prompt (t) - char *t; -{ - char *oldp, *oldl, *oldlprefix; - int oldlen, oldlast, oldplen, oldninvis, oldphyschars; - - /* Geez, I should make this a struct. */ - oldp = rl_display_prompt; - oldl = local_prompt; - oldlprefix = local_prompt_prefix; - oldlen = prompt_visible_length; - oldplen = prompt_prefix_length; - oldlast = prompt_last_invisible; - oldninvis = prompt_invis_chars_first_line; - oldphyschars = prompt_physical_chars; - - rl_display_prompt = t; - local_prompt = expand_prompt (t, &prompt_visible_length, - &prompt_last_invisible, - &prompt_invis_chars_first_line, - &prompt_physical_chars); - local_prompt_prefix = (char *)NULL; - rl_forced_update_display (); - - rl_display_prompt = oldp; - local_prompt = oldl; - local_prompt_prefix = oldlprefix; - prompt_visible_length = oldlen; - prompt_prefix_length = oldplen; - prompt_last_invisible = oldlast; - prompt_invis_chars_first_line = oldninvis; - prompt_physical_chars = oldphyschars; -} - -/* Redisplay the current line after a SIGWINCH is received. */ -void -_rl_redisplay_after_sigwinch () -{ - char *t; - - /* Clear the current line and put the cursor at column 0. Make sure - the right thing happens if we have wrapped to a new screen line. */ - if (_rl_term_cr) - { -#if defined (__MSDOS__) - putc ('\r', rl_outstream); -#else - tputs (_rl_term_cr, 1, _rl_output_character_function); -#endif - _rl_last_c_pos = 0; -#if defined (__MSDOS__) - space_to_eol (_rl_screenwidth); - putc ('\r', rl_outstream); -#else - if (_rl_term_clreol) - tputs (_rl_term_clreol, 1, _rl_output_character_function); - else - { - space_to_eol (_rl_screenwidth); - tputs (_rl_term_cr, 1, _rl_output_character_function); - } -#endif - if (_rl_last_v_pos > 0) - _rl_move_vert (0); - } - else - rl_crlf (); - - /* Redraw only the last line of a multi-line prompt. */ - t = strrchr (rl_display_prompt, '\n'); - if (t) - redraw_prompt (++t); - else - rl_forced_update_display (); -} - -void -_rl_clean_up_for_exit () -{ - if (readline_echoing_p) - { - _rl_move_vert (_rl_vis_botlin); - _rl_vis_botlin = 0; - fflush (rl_outstream); - rl_restart_output (1, 0); - } -} - -void -_rl_erase_entire_line () -{ - cr (); - _rl_clear_to_eol (0); - cr (); - fflush (rl_outstream); -} - -/* return the `current display line' of the cursor -- the number of lines to - move up to get to the first screen line of the current readline line. */ -int -_rl_current_display_line () -{ - int ret, nleft; - - /* Find out whether or not there might be invisible characters in the - editing buffer. */ - if (rl_display_prompt == rl_prompt) - nleft = _rl_last_c_pos - _rl_screenwidth - rl_visible_prompt_length; - else - nleft = _rl_last_c_pos - _rl_screenwidth; - - if (nleft > 0) - ret = 1 + nleft / _rl_screenwidth; - else - ret = 0; - - return ret; -} - -#if defined (HANDLE_MULTIBYTE) -/* Calculate the number of screen columns occupied by STR from START to END. - In the case of multibyte characters with stateful encoding, we have to - scan from the beginning of the string to take the state into account. */ -static int -_rl_col_width (str, start, end) - const char *str; - int start, end; -{ - wchar_t wc; - mbstate_t ps = {0}; - int tmp, point, width, max; - - if (end <= start) - return 0; - - point = 0; - max = end; - - while (point < start) - { - tmp = mbrlen (str + point, max, &ps); - if (MB_INVALIDCH ((size_t)tmp)) - { - /* In this case, the bytes are invalid or too short to compose a - multibyte character, so we assume that the first byte represents - a single character. */ - point++; - max--; - - /* Clear the state of the byte sequence, because in this case the - effect of mbstate is undefined. */ - memset (&ps, 0, sizeof (mbstate_t)); - } - else if (MB_NULLWCH (tmp)) - break; /* Found '\0' */ - else - { - point += tmp; - max -= tmp; - } - } - - /* If START is not a byte that starts a character, then POINT will be - greater than START. In this case, assume that (POINT - START) gives - a byte count that is the number of columns of difference. */ - width = point - start; - - while (point < end) - { - tmp = mbrtowc (&wc, str + point, max, &ps); - if (MB_INVALIDCH ((size_t)tmp)) - { - /* In this case, the bytes are invalid or too short to compose a - multibyte character, so we assume that the first byte represents - a single character. */ - point++; - max--; - - /* and assume that the byte occupies a single column. */ - width++; - - /* Clear the state of the byte sequence, because in this case the - effect of mbstate is undefined. */ - memset (&ps, 0, sizeof (mbstate_t)); - } - else if (MB_NULLWCH (tmp)) - break; /* Found '\0' */ - else - { - point += tmp; - max -= tmp; - tmp = wcwidth(wc); - width += (tmp >= 0) ? tmp : 1; - } - } - - width += point - end; - - return width; -} -#endif /* HANDLE_MULTIBYTE */ diff --git a/lib/readline/doc/Makefile.old b/lib/readline/doc/Makefile.old deleted file mode 100644 index 58d4dd762..000000000 --- a/lib/readline/doc/Makefile.old +++ /dev/null @@ -1,76 +0,0 @@ -# This makefile for Readline library documentation is in -*- text -*- mode. -# Emacs likes it that way. -RM = rm -f - -MAKEINFO = makeinfo -TEXI2DVI = texi2dvi -TEXI2HTML = texi2html -QUIETPS = #set this to -q to shut up dvips -DVIPS = dvips -D 300 $(QUIETPS) -o $@ # tricky - -INSTALL_DATA = cp -infodir = /usr/local/info - -RLSRC = rlman.texinfo rluser.texinfo rltech.texinfo -HISTSRC = hist.texinfo hsuser.texinfo hstech.texinfo - -DVIOBJ = readline.dvi history.dvi -INFOOBJ = readline.info history.info -PSOBJ = readline.ps history.ps -HTMLOBJ = readline.html history.html - -all: info dvi html ps -nodvi: info html - -readline.dvi: $(RLSRC) - $(TEXI2DVI) rlman.texinfo - mv rlman.dvi readline.dvi - -readline.info: $(RLSRC) - $(MAKEINFO) --no-split -o $@ rlman.texinfo - -history.dvi: ${HISTSRC} - $(TEXI2DVI) hist.texinfo - mv hist.dvi history.dvi - -history.info: ${HISTSRC} - $(MAKEINFO) --no-split -o $@ hist.texinfo - -readline.ps: readline.dvi - $(RM) $@ - $(DVIPS) readline.dvi - -history.ps: history.dvi - $(RM) $@ - $(DVIPS) history.dvi - -readline.html: ${RLSRC} - $(TEXI2HTML) rlman.texinfo - sed -e 's:rlman.html:readline.html:' -e 's:rlman_toc.html:readline_toc.html:' rlman.html > readline.html - sed -e 's:rlman.html:readline.html:' -e 's:rlman_toc.html:readline_toc.html:' rlman_toc.html > readline_toc.html - $(RM) rlman.html rlman_toc.html - -history.html: ${HISTSRC} - $(TEXI2HTML) hist.texinfo - sed -e 's:hist.html:history.html:' -e 's:hist_toc.html:history_toc.html:' hist.html > history.html - sed -e 's:hist.html:history.html:' -e 's:hist_toc.html:history_toc.html:' hist_toc.html > history_toc.html - $(RM) hist.html hist_toc.html - -info: $(INFOOBJ) -dvi: $(DVIOBJ) -ps: $(PSOBJ) -html: $(HTMLOBJ) - -clean: - $(RM) *.aux *.cp *.fn *.ky *.log *.pg *.toc *.tp *.vr *.cps *.pgs \ - *.fns *.kys *.tps *.vrs *.o core - -distclean: clean -mostlyclean: clean - -maintainer-clean: clean - $(RM) *.dvi *.info *.info-* *.ps *.html - -install: info - ${INSTALL_DATA} readline.info $(infodir)/readline.info - ${INSTALL_DATA} history.info $(infodir)/history.info diff --git a/mbutil.c.diff b/mbutil.c.diff deleted file mode 100644 index e73ec6825..000000000 --- a/mbutil.c.diff +++ /dev/null @@ -1,23 +0,0 @@ -*** ../bash-3.0/lib/readline/mbutil.c Wed Jan 14 09:44:52 2004 ---- lib/readline/mbutil.c Wed Aug 18 22:25:57 2004 -*************** -*** 127,135 **** - { - tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps); -! while (wcwidth (wc) == 0) - { - point += tmp; - tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps); -! if (tmp == (size_t)(0) || tmp == (size_t)(-1) || tmp == (size_t)(-2)) - break; - } ---- 127,135 ---- - { - tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps); -! while (tmp > 0 && wcwidth (wc) == 0) - { - point += tmp; - tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps); -! if (MB_NULLWCH (tmp) || MB_INVALIDCH (tmp)) - break; - } diff --git a/njobs.c b/njobs.c deleted file mode 100644 index 8418267b6..000000000 --- a/njobs.c +++ /dev/null @@ -1,3535 +0,0 @@ -/* The thing that makes children, remembers them, and contains wait loops. */ - -/* This file works with both POSIX and BSD systems. It implements job - control. */ - -/* Copyright (C) 1989-2003 Free Software Foundation, Inc. - - This file is part of GNU Bash, the Bourne Again SHell. - - Bash is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License as published by the Free - Software Foundation; either version 2, or (at your option) any later - version. - - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with Bash; see the file COPYING. If not, write to the Free Software - Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ - -#include "config.h" - -#include "bashtypes.h" -#include "trap.h" -#include -#include -#include - -#if defined (HAVE_UNISTD_H) -# include -#endif - -#include "posixtime.h" - -#if defined (HAVE_SYS_RESOURCE_H) && defined (HAVE_WAIT3) && !defined (_POSIX_VERSION) && !defined (RLIMTYPE) -# include -#endif /* !_POSIX_VERSION && HAVE_SYS_RESOURCE_H && HAVE_WAIT3 && !RLIMTYPE */ - -#if defined (HAVE_SYS_FILE_H) -# include -#endif - -#include "filecntl.h" -#include -#include - -#if defined (BUFFERED_INPUT) -# include "input.h" -#endif - -/* Need to include this up here for *_TTY_DRIVER definitions. */ -#include "shtty.h" - -/* Define this if your output is getting swallowed. It's a no-op on - machines with the termio or termios tty drivers. */ -/* #define DRAIN_OUTPUT */ - -/* For the TIOCGPGRP and TIOCSPGRP ioctl parameters on HP-UX */ -#if defined (hpux) && !defined (TERMIOS_TTY_DRIVER) -# include -#endif /* hpux && !TERMIOS_TTY_DRIVER */ - -#if !defined (STRUCT_WINSIZE_IN_SYS_IOCTL) -/* For struct winsize on SCO */ -/* sys/ptem.h has winsize but needs mblk_t from sys/stream.h */ -# if defined (HAVE_SYS_PTEM_H) && defined (TIOCGWINSZ) && defined (SIGWINCH) -# if defined (HAVE_SYS_STREAM_H) -# include -# endif -# include -# endif /* HAVE_SYS_PTEM_H && TIOCGWINSZ && SIGWINCH */ -#endif /* !STRUCT_WINSIZE_IN_SYS_IOCTL */ - -#include "bashansi.h" -#include "bashintl.h" -#include "shell.h" -#include "jobs.h" -#include "flags.h" - -#include "builtins/builtext.h" -#include "builtins/common.h" - -#if !defined (errno) -extern int errno; -#endif /* !errno */ - -#define DEFAULT_CHILD_MAX 32 -#define MAX_JOBS_IN_ARRAY 4096 /* testing */ - -/* Take care of system dependencies that must be handled when waiting for - children. The arguments to the WAITPID macro match those to the Posix.1 - waitpid() function. */ - -#if defined (ultrix) && defined (mips) && defined (_POSIX_VERSION) -# define WAITPID(pid, statusp, options) \ - wait3 ((union wait *)statusp, options, (struct rusage *)0) -#else -# if defined (_POSIX_VERSION) || defined (HAVE_WAITPID) -# define WAITPID(pid, statusp, options) \ - waitpid ((pid_t)pid, statusp, options) -# else -# if defined (HAVE_WAIT3) -# define WAITPID(pid, statusp, options) \ - wait3 (statusp, options, (struct rusage *)0) -# else -# define WAITPID(pid, statusp, options) \ - wait3 (statusp, options, (int *)0) -# endif /* HAVE_WAIT3 */ -# endif /* !_POSIX_VERSION && !HAVE_WAITPID*/ -#endif /* !(Ultrix && mips && _POSIX_VERSION) */ - -/* getpgrp () varies between systems. Even systems that claim to be - Posix.1 compatible lie sometimes (Ultrix, SunOS4, apollo). */ -#if defined (GETPGRP_VOID) -# define getpgid(p) getpgrp () -#else -# define getpgid(p) getpgrp (p) -#endif /* !GETPGRP_VOID */ - -/* If the system needs it, REINSTALL_SIGCHLD_HANDLER will reinstall the - handler for SIGCHLD. */ -#if defined (MUST_REINSTALL_SIGHANDLERS) -# define REINSTALL_SIGCHLD_HANDLER signal (SIGCHLD, sigchld_handler) -#else -# define REINSTALL_SIGCHLD_HANDLER -#endif /* !MUST_REINSTALL_SIGHANDLERS */ - -/* Some systems let waitpid(2) tell callers about stopped children. */ -#if !defined (WCONTINUED) -# define WCONTINUED 0 -#endif -#if !defined (WIFCONTINUED) -# define WIFCONTINUED(s) (0) -#endif - -/* The number of additional slots to allocate when we run out. */ -#define JOB_SLOTS 8 - -typedef int sh_job_map_func_t __P((JOB *, int, int, int)); - -#if defined (READLINE) -extern void rl_set_screen_size __P((int, int)); -#endif - -/* Variables used here but defined in other files. */ -extern int subshell_environment, line_number; -extern int posixly_correct, shell_level; -extern int interrupt_immediately; -extern int last_command_exit_value, last_command_exit_signal; -extern int loop_level, breaking; -extern int sourcelevel; -extern sh_builtin_func_t *this_shell_builtin; -extern char *shell_name, *this_command_name; -extern sigset_t top_level_mask; -extern procenv_t wait_intr_buf; -extern int wait_signal_received; -extern WORD_LIST *subst_assign_varlist; - -/* The array of known jobs. */ -JOB **jobs = (JOB **)NULL; - -/* The number of slots currently allocated to JOBS. */ -int job_slots = 0; - -/* The controlling tty for this shell. */ -int shell_tty = -1; - -/* The shell's process group. */ -pid_t shell_pgrp = NO_PID; - -/* The terminal's process group. */ -pid_t terminal_pgrp = NO_PID; - -/* The process group of the shell's parent. */ -pid_t original_pgrp = NO_PID; - -/* The process group of the pipeline currently being made. */ -pid_t pipeline_pgrp = (pid_t)0; - -#if defined (PGRP_PIPE) -/* Pipes which each shell uses to communicate with the process group leader - until all of the processes in a pipeline have been started. Then the - process leader is allowed to continue. */ -int pgrp_pipe[2] = { -1, -1 }; -#endif - -/* The job which is current; i.e. the one that `%+' stands for. */ -int current_job = NO_JOB; - -/* The previous job; i.e. the one that `%-' stands for. */ -int previous_job = NO_JOB; - -/* Last child made by the shell. */ -pid_t last_made_pid = NO_PID; - -/* Pid of the last asynchronous child. */ -pid_t last_asynchronous_pid = NO_PID; - -/* The pipeline currently being built. */ -PROCESS *the_pipeline = (PROCESS *)NULL; - -/* If this is non-zero, do job control. */ -int job_control = 1; - -/* Call this when you start making children. */ -int already_making_children = 0; - -/* If this is non-zero, $LINES and $COLUMNS are reset after every process - exits from get_tty_state(). */ -int check_window_size; - -/* Functions local to this file. */ - -static void get_new_window_size __P((int)); - -static void run_sigchld_trap __P((int)); - -static sighandler wait_sigint_handler __P((int)); -static sighandler sigchld_handler __P((int)); -static sighandler sigwinch_sighandler __P((int)); -static sighandler sigcont_sighandler __P((int)); -static sighandler sigstop_sighandler __P((int)); - -static int waitchld __P((pid_t, int)); - -static PROCESS *find_pipeline __P((pid_t, int, int *)); - -static char *current_working_directory __P((void)); -static char *job_working_directory __P((void)); -static char *j_strsignal __P((int)); -static char *printable_job_status __P((int, PROCESS *, int)); - -static pid_t find_last_pid __P((int, int)); - -static int set_new_line_discipline __P((int)); -static int map_over_jobs __P((sh_job_map_func_t *, int, int)); -static int job_last_stopped __P((int)); -static int job_last_running __P((int)); -static int most_recent_job_in_state __P((int, JOB_STATE)); -static int find_job __P((pid_t, int)); -static int print_job __P((JOB *, int, int, int)); -static int process_exit_status __P((WAIT)); -static int process_exit_signal __P((WAIT)); -static int job_exit_status __P((int)); -static int job_exit_signal __P((int)); -static int set_job_status_and_cleanup __P((int)); - -static WAIT raw_job_exit_status __P((int)); - -static void notify_of_job_status __P((void)); -static void cleanup_dead_jobs __P((void)); -static int compact_jobs_list __P((int)); -static void discard_pipeline __P((PROCESS *)); -static void add_process __P((char *, pid_t)); -static void print_pipeline __P((PROCESS *, int, int, FILE *)); -static void pretty_print_job __P((int, int, FILE *)); -static void set_current_job __P((int)); -static void reset_current __P((void)); -static void set_job_running __P((int)); -static void setjstatus __P((int)); -static void mark_all_jobs_as_dead __P((void)); -static void mark_dead_jobs_as_notified __P((int)); -static void restore_sigint_handler __P((void)); -#if defined (PGRP_PIPE) -static void pipe_read __P((int *)); -static void pipe_close __P((int *)); -#endif - -#if defined (ARRAY_VARS) -static int *pstatuses; /* list of pipeline statuses */ -static int statsize; -#endif - -/* Used to synchronize between wait_for and other functions and the SIGCHLD - signal handler. */ -static int sigchld; -static int queue_sigchld; - -#define QUEUE_SIGCHLD(os) (os) = sigchld, queue_sigchld++ - -#define UNQUEUE_SIGCHLD(os) \ - do { \ - queue_sigchld--; \ - if (queue_sigchld == 0 && os != sigchld) \ - waitchld (-1, 0); \ - } while (0) - -static SigHandler *old_tstp, *old_ttou, *old_ttin; -static SigHandler *old_cont = (SigHandler *)SIG_DFL; - -#if defined (TIOCGWINSZ) && defined (SIGWINCH) -static SigHandler *old_winch = (SigHandler *)SIG_DFL; -#endif - -/* A place to temporarily save the current pipeline. */ -static PROCESS *saved_pipeline; -static int saved_already_making_children; - -/* Set this to non-zero whenever you don't want the jobs list to change at - all: no jobs deleted and no status change notifications. This is used, - for example, when executing SIGCHLD traps, which may run arbitrary - commands. */ -static int jobs_list_frozen; - -static char retcode_name_buffer[64]; - -static long child_max = -1L; - -#if !defined (_POSIX_VERSION) - -/* These are definitions to map POSIX 1003.1 functions onto existing BSD - library functions and system calls. */ -#define setpgid(pid, pgrp) setpgrp (pid, pgrp) -#define tcsetpgrp(fd, pgrp) ioctl ((fd), TIOCSPGRP, &(pgrp)) - -pid_t -tcgetpgrp (fd) - int fd; -{ - pid_t pgrp; - - /* ioctl will handle setting errno correctly. */ - if (ioctl (fd, TIOCGPGRP, &pgrp) < 0) - return (-1); - return (pgrp); -} - -#endif /* !_POSIX_VERSION */ - -/* Return the working directory for the current process. Unlike - job_working_directory, this does not call malloc (), nor do any - of the functions it calls. This is so that it can safely be called - from a signal handler. */ -static char * -current_working_directory () -{ - char *dir; - static char d[PATH_MAX]; - - dir = get_string_value ("PWD"); - - if (dir == 0 && the_current_working_directory && no_symbolic_links) - dir = the_current_working_directory; - - if (dir == 0) - { - dir = getcwd (d, sizeof(d)); - if (dir) - dir = d; - } - - return (dir == 0) ? "" : dir; -} - -/* Return the working directory for the current process. */ -static char * -job_working_directory () -{ - char *dir; - - dir = get_string_value ("PWD"); - if (dir) - return (savestring (dir)); - - dir = get_working_directory ("job-working-directory"); - if (dir) - return (dir); - - return (savestring ("")); -} - -void -making_children () -{ - if (already_making_children) - return; - - already_making_children = 1; - start_pipeline (); -} - -void -stop_making_children () -{ - already_making_children = 0; -} - -void -cleanup_the_pipeline () -{ - if (the_pipeline) - { - discard_pipeline (the_pipeline); - the_pipeline = (PROCESS *)NULL; - } -} - -void -save_pipeline (clear) - int clear; -{ - saved_pipeline = the_pipeline; - saved_already_making_children = already_making_children; - if (clear) - the_pipeline = (PROCESS *)NULL; -} - -void -restore_pipeline (discard) - int discard; -{ - PROCESS *old_pipeline; - - old_pipeline = the_pipeline; - the_pipeline = saved_pipeline; - already_making_children = saved_already_making_children; - if (discard) - discard_pipeline (old_pipeline); -} - -/* Start building a pipeline. */ -void -start_pipeline () -{ - if (the_pipeline) - { - cleanup_the_pipeline (); - pipeline_pgrp = 0; -#if defined (PGRP_PIPE) - pipe_close (pgrp_pipe); -#endif - } - -#if defined (PGRP_PIPE) - if (job_control) - { - if (pipe (pgrp_pipe) == -1) - sys_error ("start_pipeline: pgrp pipe"); - } -#endif -} - -/* Stop building a pipeline. Install the process list in the job array. - This returns the index of the newly installed job. - DEFERRED is a command structure to be executed upon satisfactory - execution exit of this pipeline. */ -int -stop_pipeline (async, deferred) - int async; - COMMAND *deferred; -{ - register int i, j; - JOB *newjob; - sigset_t set, oset; - - BLOCK_CHILD (set, oset); - -#if defined (PGRP_PIPE) - /* The parent closes the process group synchronization pipe. */ - pipe_close (pgrp_pipe); -#endif - - cleanup_dead_jobs (); - - if (job_slots == 0) - { - job_slots = JOB_SLOTS; - jobs = (JOB **)xmalloc (job_slots * sizeof (JOB *)); - - /* Now blank out these new entries. */ - for (i = 0; i < job_slots; i++) - jobs[i] = (JOB *)NULL; - } - - /* Scan from the last slot backward, looking for the next free one. */ - /* XXX - revisit this interactive assumption */ - if (interactive) - { - for (i = job_slots; i; i--) - if (jobs[i - 1]) - break; - } - else - { - /* If we're not interactive, we don't need to monotonically increase - the job number (in fact, we don't care about the job number at all), - so we can simply scan for the first free slot. This helps to keep - us from continuously reallocating the jobs array when running - certain kinds of shell loops, and saves time spent searching. */ - for (i = 0; i < job_slots; i++) - if (jobs[i] == 0) - break; - } - - /* Do we need more room? */ - - /* First try compaction */ - if (subshell_environment && interactive_shell && i == job_slots && job_slots >= MAX_JOBS_IN_ARRAY) - i = compact_jobs_list (0); - - /* If we can't compact, reallocate */ - if (i == job_slots) - { - job_slots += JOB_SLOTS; - jobs = (JOB **)xrealloc (jobs, ((1 + job_slots) * sizeof (JOB *))); - - for (j = i; j < job_slots; j++) - jobs[j] = (JOB *)NULL; - } - - /* Add the current pipeline to the job list. */ - if (the_pipeline) - { - register PROCESS *p; - int any_alive, any_stopped; - - newjob = (JOB *)xmalloc (sizeof (JOB)); - - for (p = the_pipeline; p->next != the_pipeline; p = p->next) - ; - p->next = (PROCESS *)NULL; - newjob->pipe = REVERSE_LIST (the_pipeline, PROCESS *); - for (p = newjob->pipe; p->next; p = p->next) - ; - p->next = newjob->pipe; - - the_pipeline = (PROCESS *)NULL; - newjob->pgrp = pipeline_pgrp; - pipeline_pgrp = 0; - - newjob->flags = 0; - - /* Flag to see if in another pgrp. */ - if (job_control) - newjob->flags |= J_JOBCONTROL; - - /* Set the state of this pipeline. */ - p = newjob->pipe; - any_alive = any_stopped = 0; - do - { - any_alive |= p->running; - any_stopped |= WIFSTOPPED (p->status); - p = p->next; - } - while (p != newjob->pipe); - - newjob->state = any_alive ? JRUNNING : (any_stopped ? JSTOPPED : JDEAD); - newjob->wd = job_working_directory (); - newjob->deferred = deferred; - - newjob->j_cleanup = (sh_vptrfunc_t *)NULL; - newjob->cleanarg = (PTR_T) NULL; - - jobs[i] = newjob; - if (newjob->state == JDEAD && (newjob->flags & J_FOREGROUND)) - setjstatus (i); - } - else - newjob = (JOB *)NULL; - - if (async) - { - if (newjob) - newjob->flags &= ~J_FOREGROUND; - reset_current (); - } - else - { - if (newjob) - { - newjob->flags |= J_FOREGROUND; - /* - * !!!!! NOTE !!!!! (chet@ins.cwru.edu) - * - * The currently-accepted job control wisdom says to set the - * terminal's process group n+1 times in an n-step pipeline: - * once in the parent and once in each child. This is where - * the parent gives it away. - * - */ - if (job_control && newjob->pgrp) - give_terminal_to (newjob->pgrp, 0); - } - } - - stop_making_children (); - UNBLOCK_CHILD (oset); - return (current_job); -} - -/* Delete all DEAD jobs that the user had received notification about. */ -static void -cleanup_dead_jobs () -{ - register int i; - int os; - - if (job_slots == 0 || jobs_list_frozen) - return; - - QUEUE_SIGCHLD(os); - - for (i = 0; i < job_slots; i++) - if (jobs[i] && DEADJOB (i) && IS_NOTIFIED (i)) - delete_job (i, 0); - - UNQUEUE_SIGCHLD(os); -} - -/* Compact the jobs list by removing dead jobs. Assumed that we have filled - the jobs array to some predefined maximum. Called when the shell is not - the foreground process (subshell_environment != 0). Returns the first - available slot in the compacted list. If that value is job_slots, then - the list needs to be reallocated. The jobs array is in new memory if - this returns > 0 and < job_slots. FLAGS is reserved for future use. */ -static int -compact_jobs_list (flags) - int flags; -{ - sigset_t set, oset; - register int i, j; - int nremove, ndel; - JOB **newlist; - - if (job_slots == 0 || jobs_list_frozen) - return job_slots; - - if (child_max < 0) - child_max = getmaxchild (); - - /* Take out at most a quarter of the jobs in the jobs array, but leave at - least child_max */ - nremove = job_slots >> 2; - if ((job_slots - nremove) < child_max) - nremove = job_slots - child_max; - - /* need to increase jobs list to at least CHILD_MAX entries */ - if (nremove < 0) - return job_slots; - - BLOCK_CHILD (set, oset); - - for (ndel = i = 0; i < job_slots; i++) - if (jobs[i]) - { - if (DEADJOB (i) && (find_last_pid (i, 0) != last_asynchronous_pid)) - { - delete_job (i, 0); - ndel++; - if (ndel == nremove) - break; - } - } - - if (ndel == 0) - { - UNBLOCK_CHILD (oset); - return job_slots; - } - - newlist = (JOB **)xmalloc ((1 + job_slots) * sizeof (JOB *)); - for (i = j = 0; i < job_slots; i++) - if (jobs[i]) - newlist[j++] = jobs[i]; - - ndel = j; - for ( ; j < job_slots; j++) - newlist[j] = (JOB *)NULL; - - free (jobs); - jobs = newlist; - - UNBLOCK_CHILD (oset); - - return ndel; -} - -/* Delete the job at INDEX from the job list. Must be called - with SIGCHLD blocked. */ -void -delete_job (job_index, warn_stopped) - int job_index, warn_stopped; -{ - register JOB *temp; - - if (job_slots == 0 || jobs_list_frozen) - return; - - if (warn_stopped && subshell_environment == 0 && STOPPED (job_index)) - internal_warning (_("deleting stopped job %d with process group %ld"), job_index+1, (long)jobs[job_index]->pgrp); - - temp = jobs[job_index]; - if (job_index == current_job || job_index == previous_job) - reset_current (); - - jobs[job_index] = (JOB *)NULL; - - free (temp->wd); - discard_pipeline (temp->pipe); - - if (temp->deferred) - dispose_command (temp->deferred); - - free (temp); -} - -/* Must be called with SIGCHLD blocked. */ -void -nohup_job (job_index) - int job_index; -{ - register JOB *temp; - - if (job_slots == 0) - return; - - if (temp = jobs[job_index]) - temp->flags |= J_NOHUP; -} - -/* Get rid of the data structure associated with a process chain. */ -static void -discard_pipeline (chain) - register PROCESS *chain; -{ - register PROCESS *this, *next; - - this = chain; - do - { - next = this->next; - FREE (this->command); - free (this); - this = next; - } - while (this != chain); -} - -/* Add this process to the chain being built in the_pipeline. - NAME is the command string that will be exec'ed later. - PID is the process id of the child. */ -static void -add_process (name, pid) - char *name; - pid_t pid; -{ - PROCESS *t, *p; - - t = (PROCESS *)xmalloc (sizeof (PROCESS)); - t->next = the_pipeline; - t->pid = pid; - WSTATUS (t->status) = 0; - t->running = PS_RUNNING; - t->command = name; - the_pipeline = t; - - if (t->next == 0) - t->next = t; - else - { - p = t->next; - while (p->next != t->next) - p = p->next; - p->next = t; - } -} - -#if 0 -/* Take the last job and make it the first job. Must be called with - SIGCHLD blocked. */ -int -rotate_the_pipeline () -{ - PROCESS *p; - - if (the_pipeline->next == the_pipeline) - return; - for (p = the_pipeline; p->next != the_pipeline; p = p->next) - ; - the_pipeline = p; -} - -/* Reverse the order of the processes in the_pipeline. Must be called with - SIGCHLD blocked. */ -int -reverse_the_pipeline () -{ - PROCESS *p, *n; - - if (the_pipeline->next == the_pipeline) - return; - - for (p = the_pipeline; p->next != the_pipeline; p = p->next) - ; - p->next = (PROCESS *)NULL; - - n = REVERSE_LIST (the_pipeline, PROCESS *); - - the_pipeline = n; - for (p = the_pipeline; p->next; p = p->next) - ; - p->next = the_pipeline; -} -#endif - -/* Map FUNC over the list of jobs. If FUNC returns non-zero, - then it is time to stop mapping, and that is the return value - for map_over_jobs. FUNC is called with a JOB, arg1, arg2, - and INDEX. */ -static int -map_over_jobs (func, arg1, arg2) - sh_job_map_func_t *func; - int arg1, arg2; -{ - register int i; - int result; - sigset_t set, oset; - - if (job_slots == 0) - return 0; - - BLOCK_CHILD (set, oset); - - for (i = result = 0; i < job_slots; i++) - { - if (jobs[i]) - { - result = (*func)(jobs[i], arg1, arg2, i); - if (result) - break; - } - } - - UNBLOCK_CHILD (oset); - - return (result); -} - -/* Cause all the jobs in the current pipeline to exit. */ -void -terminate_current_pipeline () -{ - if (pipeline_pgrp && pipeline_pgrp != shell_pgrp) - { - killpg (pipeline_pgrp, SIGTERM); - killpg (pipeline_pgrp, SIGCONT); - } -} - -/* Cause all stopped jobs to exit. */ -void -terminate_stopped_jobs () -{ - register int i; - - for (i = 0; i < job_slots; i++) - { - if (jobs[i] && STOPPED (i)) - { - killpg (jobs[i]->pgrp, SIGTERM); - killpg (jobs[i]->pgrp, SIGCONT); - } - } -} - -/* Cause all jobs, running or stopped, to receive a hangup signal. If - a job is marked J_NOHUP, don't send the SIGHUP. */ -void -hangup_all_jobs () -{ - register int i; - - for (i = 0; i < job_slots; i++) - { - if (jobs[i]) - { - if ((jobs[i]->flags & J_NOHUP) == 0) - killpg (jobs[i]->pgrp, SIGHUP); - if (STOPPED (i)) - killpg (jobs[i]->pgrp, SIGCONT); - } - } -} - -void -kill_current_pipeline () -{ - stop_making_children (); - start_pipeline (); -} - -/* Return the pipeline that PID belongs to. Note that the pipeline - doesn't have to belong to a job. Must be called with SIGCHLD blocked. */ -static PROCESS * -find_pipeline (pid, running_only, jobp) - pid_t pid; - int running_only; - int *jobp; /* index into jobs list or NO_JOB */ -{ - int job; - register PROCESS *p; - - /* See if this process is in the pipeline that we are building. */ - if (jobp) - *jobp = NO_JOB; - if (the_pipeline) - { - p = the_pipeline; - do - { - /* Return it if we found it. */ - if (p->pid == pid) - { - if ((running_only && PRUNNING(p)) || (running_only == 0)) - return (p); - } - - p = p->next; - } - while (p != the_pipeline); - } - - job = find_job (pid, running_only); - if (jobp) - *jobp = job; - return (job == NO_JOB) ? (PROCESS *)NULL : jobs[job]->pipe; -} - -/* Return the job index that PID belongs to, or NO_JOB if it doesn't - belong to any job. Must be called with SIGCHLD blocked. */ -static int -find_job (pid, running_only) - pid_t pid; - int running_only; -{ - register int i; - register PROCESS *p; - - for (i = 0; i < job_slots; i++) - { - if (jobs[i]) - { - p = jobs[i]->pipe; - - do - { - if (p->pid == pid) - { - if ((running_only && PRUNNING(p)) || (running_only == 0)) - return (i); - } - - p = p->next; - } - while (p != jobs[i]->pipe); - } - } - - return (NO_JOB); -} - -/* Find a job given a PID. If BLOCK is non-zero, block SIGCHLD as - required by find_job. */ -int -get_job_by_pid (pid, block) - pid_t pid; - int block; -{ - int job; - sigset_t set, oset; - - if (block) - BLOCK_CHILD (set, oset); - - job = find_job (pid, 0); - - if (block) - UNBLOCK_CHILD (oset); - - return job; -} - -/* Print descriptive information about the job with leader pid PID. */ -void -describe_pid (pid) - pid_t pid; -{ - int job; - sigset_t set, oset; - - BLOCK_CHILD (set, oset); - - job = find_job (pid, 0); - - if (job != NO_JOB) - printf ("[%d] %ld\n", job + 1, (long)pid); - else - programming_error (_("describe_pid: %ld: no such pid"), (long)pid); - - UNBLOCK_CHILD (oset); -} - -static char * -j_strsignal (s) - int s; -{ - char *x; - - x = strsignal (s); - if (x == 0) - { - x = retcode_name_buffer; - sprintf (x, "Signal %d", s); - } - return x; -} - -static char * -printable_job_status (j, p, format) - int j; - PROCESS *p; - int format; -{ - static char *temp; - int es; - - temp = "Done"; - - if (STOPPED (j) && format == 0) - { - if (posixly_correct == 0 || p == 0 || (WIFSTOPPED (p->status) == 0)) - temp = "Stopped"; - else - { - temp = retcode_name_buffer; - sprintf (temp, "Stopped(%s)", signal_name (WSTOPSIG (p->status))); - } - } - else if (RUNNING (j)) - temp = "Running"; - else - { - if (WIFSTOPPED (p->status)) - temp = j_strsignal (WSTOPSIG (p->status)); - else if (WIFSIGNALED (p->status)) - temp = j_strsignal (WTERMSIG (p->status)); - else if (WIFEXITED (p->status)) - { - temp = retcode_name_buffer; - es = WEXITSTATUS (p->status); - if (es == 0) - strcpy (temp, "Done"); - else if (posixly_correct) - sprintf (temp, "Done(%d)", es); - else - sprintf (temp, "Exit %d", es); - } - else - temp = "Unknown status"; - } - - return temp; -} - -/* This is the way to print out information on a job if you - know the index. FORMAT is: - - JLIST_NORMAL) [1]+ Running emacs - JLIST_LONG ) [1]+ 2378 Running emacs - -1 ) [1]+ 2378 emacs - - JLIST_NORMAL) [1]+ Stopped ls | more - JLIST_LONG ) [1]+ 2369 Stopped ls - 2367 | more - JLIST_PID_ONLY) - Just list the pid of the process group leader (really - the process group). - JLIST_CHANGED_ONLY) - Use format JLIST_NORMAL, but list only jobs about which - the user has not been notified. */ - -/* Print status for pipeline P. If JOB_INDEX is >= 0, it is the index into - the JOBS array corresponding to this pipeline. FORMAT is as described - above. Must be called with SIGCHLD blocked. - - If you're printing a pipeline that's not in the jobs array, like the - current pipeline as it's being created, pass -1 for JOB_INDEX */ -static void -print_pipeline (p, job_index, format, stream) - PROCESS *p; - int job_index, format; - FILE *stream; -{ - PROCESS *first, *last, *show; - int es, name_padding; - char *temp; - - if (p == 0) - return; - - first = last = p; - while (last->next != first) - last = last->next; - - for (;;) - { - if (p != first) - fprintf (stream, format ? " " : " |"); - - if (format != JLIST_STANDARD) - fprintf (stream, "%5ld", (long)p->pid); - - fprintf (stream, " "); - - if (format > -1 && job_index >= 0) - { - show = format ? p : last; - temp = printable_job_status (job_index, show, format); - - if (p != first) - { - if (format) - { - if (show->running == first->running && - WSTATUS (show->status) == WSTATUS (first->status)) - temp = ""; - } - else - temp = (char *)NULL; - } - - if (temp) - { - fprintf (stream, "%s", temp); - - es = STRLEN (temp); - if (es == 0) - es = 2; /* strlen ("| ") */ - name_padding = LONGEST_SIGNAL_DESC - es; - - fprintf (stream, "%*s", name_padding, ""); - - if ((WIFSTOPPED (show->status) == 0) && - (WIFCONTINUED (show->status) == 0) && - WIFCORED (show->status)) - fprintf (stream, "(core dumped) "); - } - } - - if (p != first && format) - fprintf (stream, "| "); - - if (p->command) - fprintf (stream, "%s", p->command); - - if (p == last && job_index >= 0) - { - temp = current_working_directory (); - - if (RUNNING (job_index) && (IS_FOREGROUND (job_index) == 0)) - fprintf (stream, " &"); - - if (strcmp (temp, jobs[job_index]->wd) != 0) - fprintf (stream, - " (wd: %s)", polite_directory_format (jobs[job_index]->wd)); - } - - if (format || (p == last)) - { - /* We need to add a CR only if this is an interactive shell, and - we're reporting the status of a completed job asynchronously. - We can't really check whether this particular job is being - reported asynchronously, so just add the CR if the shell is - currently interactive and asynchronous notification is enabled. */ - if (asynchronous_notification && interactive) - fprintf (stream, "\r\n"); - else - fprintf (stream, "\n"); - } - - if (p == last) - break; - p = p->next; - } - fflush (stream); -} - -/* Print information to STREAM about jobs[JOB_INDEX] according to FORMAT. - Must be called with SIGCHLD blocked or queued with queue_sigchld */ -static void -pretty_print_job (job_index, format, stream) - int job_index, format; - FILE *stream; -{ - register PROCESS *p; - - /* Format only pid information about the process group leader? */ - if (format == JLIST_PID_ONLY) - { - fprintf (stream, "%ld\n", (long)jobs[job_index]->pipe->pid); - return; - } - - if (format == JLIST_CHANGED_ONLY) - { - if (IS_NOTIFIED (job_index)) - return; - format = JLIST_STANDARD; - } - - if (format != JLIST_NONINTERACTIVE) - fprintf (stream, "[%d]%c ", job_index + 1, - (job_index == current_job) ? '+': - (job_index == previous_job) ? '-' : ' '); - - if (format == JLIST_NONINTERACTIVE) - format = JLIST_LONG; - - p = jobs[job_index]->pipe; - - print_pipeline (p, job_index, format, stream); - - /* We have printed information about this job. When the job's - status changes, waitchld () sets the notification flag to 0. */ - jobs[job_index]->flags |= J_NOTIFIED; -} - -static int -print_job (job, format, state, job_index) - JOB *job; - int format, state, job_index; -{ - if (state == -1 || (JOB_STATE)state == job->state) - pretty_print_job (job_index, format, stdout); - return (0); -} - -void -list_one_job (job, format, ignore, job_index) - JOB *job; - int format, ignore, job_index; -{ - pretty_print_job (job_index, format, stdout); -} - -void -list_stopped_jobs (format) - int format; -{ - cleanup_dead_jobs (); - map_over_jobs (print_job, format, (int)JSTOPPED); -} - -void -list_running_jobs (format) - int format; -{ - cleanup_dead_jobs (); - map_over_jobs (print_job, format, (int)JRUNNING); -} - -/* List jobs. If FORMAT is non-zero, then the long form of the information - is printed, else just a short version. */ -void -list_all_jobs (format) - int format; -{ - cleanup_dead_jobs (); - map_over_jobs (print_job, format, -1); -} - -/* Fork, handling errors. Returns the pid of the newly made child, or 0. - COMMAND is just for remembering the name of the command; we don't do - anything else with it. ASYNC_P says what to do with the tty. If - non-zero, then don't give it away. */ -pid_t -make_child (command, async_p) - char *command; - int async_p; -{ - sigset_t set, oset; - pid_t pid; - - sigemptyset (&set); - sigaddset (&set, SIGCHLD); - sigaddset (&set, SIGINT); - sigemptyset (&oset); - sigprocmask (SIG_BLOCK, &set, &oset); - - making_children (); - -#if defined (BUFFERED_INPUT) - /* If default_buffered_input is active, we are reading a script. If - the command is asynchronous, we have already duplicated /dev/null - as fd 0, but have not changed the buffered stream corresponding to - the old fd 0. We don't want to sync the stream in this case. */ - if (default_buffered_input != -1 && - (!async_p || default_buffered_input > 0)) - sync_buffered_stream (default_buffered_input); -#endif /* BUFFERED_INPUT */ - - /* Create the child, handle severe errors. */ - if ((pid = fork ()) < 0) - { - sys_error ("fork"); - - /* Kill all of the processes in the current pipeline. */ - terminate_current_pipeline (); - - /* Discard the current pipeline, if any. */ - if (the_pipeline) - kill_current_pipeline (); - - throw_to_top_level (); /* Reset signals, etc. */ - } - - if (pid == 0) - { - /* In the child. Give this child the right process group, set the - signals to the default state for a new process. */ - pid_t mypid; - - mypid = getpid (); -#if defined (BUFFERED_INPUT) - /* Close default_buffered_input if it's > 0. We don't close it if it's - 0 because that's the file descriptor used when redirecting input, - and it's wrong to close the file in that case. */ - unset_bash_input (0); -#endif /* BUFFERED_INPUT */ - - /* Restore top-level signal mask. */ - sigprocmask (SIG_SETMASK, &top_level_mask, (sigset_t *)NULL); - - if (job_control) - { - /* All processes in this pipeline belong in the same - process group. */ - - if (pipeline_pgrp == 0) /* This is the first child. */ - pipeline_pgrp = mypid; - - /* Check for running command in backquotes. */ - if (pipeline_pgrp == shell_pgrp) - ignore_tty_job_signals (); - else - default_tty_job_signals (); - - /* Set the process group before trying to mess with the terminal's - process group. This is mandated by POSIX. */ - /* This is in accordance with the Posix 1003.1 standard, - section B.7.2.4, which says that trying to set the terminal - process group with tcsetpgrp() to an unused pgrp value (like - this would have for the first child) is an error. Section - B.4.3.3, p. 237 also covers this, in the context of job control - shells. */ - if (setpgid (mypid, pipeline_pgrp) < 0) - sys_error ("child setpgid (%ld to %ld)", (long)mypid, (long)pipeline_pgrp); - - /* By convention (and assumption above), if - pipeline_pgrp == shell_pgrp, we are making a child for - command substitution. - In this case, we don't want to give the terminal to the - shell's process group (we could be in the middle of a - pipeline, for example). */ - if (async_p == 0 && pipeline_pgrp != shell_pgrp) - give_terminal_to (pipeline_pgrp, 0); - -#if defined (PGRP_PIPE) - if (pipeline_pgrp == mypid) - pipe_read (pgrp_pipe); -#endif - } - else /* Without job control... */ - { - if (pipeline_pgrp == 0) - pipeline_pgrp = shell_pgrp; - - /* If these signals are set to SIG_DFL, we encounter the curious - situation of an interactive ^Z to a running process *working* - and stopping the process, but being unable to do anything with - that process to change its state. On the other hand, if they - are set to SIG_IGN, jobs started from scripts do not stop when - the shell running the script gets a SIGTSTP and stops. */ - - default_tty_job_signals (); - } - -#if defined (PGRP_PIPE) - /* Release the process group pipe, since our call to setpgid () - is done. The last call to pipe_close is done in stop_pipeline. */ - pipe_close (pgrp_pipe); -#endif /* PGRP_PIPE */ - - if (async_p) - last_asynchronous_pid = getpid (); - } - else - { - /* In the parent. Remember the pid of the child just created - as the proper pgrp if this is the first child. */ - - if (job_control) - { - if (pipeline_pgrp == 0) - { - pipeline_pgrp = pid; - /* Don't twiddle terminal pgrps in the parent! This is the bug, - not the good thing of twiddling them in the child! */ - /* give_terminal_to (pipeline_pgrp, 0); */ - } - /* This is done on the recommendation of the Rationale section of - the POSIX 1003.1 standard, where it discusses job control and - shells. It is done to avoid possible race conditions. (Ref. - 1003.1 Rationale, section B.4.3.3, page 236). */ - setpgid (pid, pipeline_pgrp); - } - else - { - if (pipeline_pgrp == 0) - pipeline_pgrp = shell_pgrp; - } - - /* Place all processes into the jobs array regardless of the - state of job_control. */ - add_process (command, pid); - - if (async_p) - last_asynchronous_pid = pid; - - last_made_pid = pid; - - /* Unblock SIGINT and SIGCHLD. */ - sigprocmask (SIG_SETMASK, &oset, (sigset_t *)NULL); - } - - return (pid); -} - -/* These two functions are called only in child processes. */ -void -ignore_tty_job_signals () -{ - set_signal_handler (SIGTSTP, SIG_IGN); - set_signal_handler (SIGTTIN, SIG_IGN); - set_signal_handler (SIGTTOU, SIG_IGN); -} - -void -default_tty_job_signals () -{ - set_signal_handler (SIGTSTP, SIG_DFL); - set_signal_handler (SIGTTIN, SIG_DFL); - set_signal_handler (SIGTTOU, SIG_DFL); -} - -/* When we end a job abnormally, or if we stop a job, we set the tty to the - state kept in here. When a job ends normally, we set the state in here - to the state of the tty. */ - -static TTYSTRUCT shell_tty_info; - -#if defined (NEW_TTY_DRIVER) -static struct tchars shell_tchars; -static struct ltchars shell_ltchars; -#endif /* NEW_TTY_DRIVER */ - -#if defined (NEW_TTY_DRIVER) && defined (DRAIN_OUTPUT) -/* Since the BSD tty driver does not allow us to change the tty modes - while simultaneously waiting for output to drain and preserving - typeahead, we have to drain the output ourselves before calling - ioctl. We cheat by finding the length of the output queue, and - using select to wait for an appropriate length of time. This is - a hack, and should be labeled as such (it's a hastily-adapted - mutation of a `usleep' implementation). It's only reason for - existing is the flaw in the BSD tty driver. */ - -static int ttspeeds[] = -{ - 0, 50, 75, 110, 134, 150, 200, 300, 600, 1200, - 1800, 2400, 4800, 9600, 19200, 38400 -}; - -static void -draino (fd, ospeed) - int fd, ospeed; -{ - register int delay = ttspeeds[ospeed]; - int n; - - if (!delay) - return; - - while ((ioctl (fd, TIOCOUTQ, &n) == 0) && n) - { - if (n > (delay / 100)) - { - struct timeval tv; - - n *= 10; /* 2 bits more for conservativeness. */ - tv.tv_sec = n / delay; - tv.tv_usec = ((n % delay) * 1000000) / delay; - select (fd, (fd_set *)0, (fd_set *)0, (fd_set *)0, &tv); - } - else - break; - } -} -#endif /* NEW_TTY_DRIVER && DRAIN_OUTPUT */ - -/* Return the fd from which we are actually getting input. */ -#define input_tty() (shell_tty != -1) ? shell_tty : fileno (stderr) - -/* Fill the contents of shell_tty_info with the current tty info. */ -int -get_tty_state () -{ - int tty; - - tty = input_tty (); - if (tty != -1) - { -#if defined (NEW_TTY_DRIVER) - ioctl (tty, TIOCGETP, &shell_tty_info); - ioctl (tty, TIOCGETC, &shell_tchars); - ioctl (tty, TIOCGLTC, &shell_ltchars); -#endif /* NEW_TTY_DRIVER */ - -#if defined (TERMIO_TTY_DRIVER) - ioctl (tty, TCGETA, &shell_tty_info); -#endif /* TERMIO_TTY_DRIVER */ - -#if defined (TERMIOS_TTY_DRIVER) - if (tcgetattr (tty, &shell_tty_info) < 0) - { -#if 0 - /* Only print an error message if we're really interactive at - this time. */ - if (interactive) - sys_error ("[%ld: %d] tcgetattr", (long)getpid (), shell_level); -#endif - return -1; - } -#endif /* TERMIOS_TTY_DRIVER */ - if (check_window_size) - get_new_window_size (0); - } - return 0; -} - -/* Make the current tty use the state in shell_tty_info. */ -int -set_tty_state () -{ - int tty; - - tty = input_tty (); - if (tty != -1) - { -#if defined (NEW_TTY_DRIVER) -# if defined (DRAIN_OUTPUT) - draino (tty, shell_tty_info.sg_ospeed); -# endif /* DRAIN_OUTPUT */ - ioctl (tty, TIOCSETN, &shell_tty_info); - ioctl (tty, TIOCSETC, &shell_tchars); - ioctl (tty, TIOCSLTC, &shell_ltchars); -#endif /* NEW_TTY_DRIVER */ - -#if defined (TERMIO_TTY_DRIVER) - ioctl (tty, TCSETAW, &shell_tty_info); -#endif /* TERMIO_TTY_DRIVER */ - -#if defined (TERMIOS_TTY_DRIVER) - if (tcsetattr (tty, TCSADRAIN, &shell_tty_info) < 0) - { - /* Only print an error message if we're really interactive at - this time. */ - if (interactive) - sys_error ("[%ld: %d] tcsetattr", (long)getpid (), shell_level); - return -1; - } -#endif /* TERMIOS_TTY_DRIVER */ - } - return 0; -} - -/* Given an index into the jobs array JOB, return the pid of the last - process in that job's pipeline. This is the one whose exit status - counts. Must be called with SIGCHLD blocked or queued. */ -static pid_t -find_last_pid (job, block) - int job; - int block; -{ - register PROCESS *p; - sigset_t set, oset; - - if (block) - BLOCK_CHILD (set, oset); - - p = jobs[job]->pipe; - while (p->next != jobs[job]->pipe) - p = p->next; - - if (block) - UNBLOCK_CHILD (oset); - - return (p->pid); -} - -/* Wait for a particular child of the shell to finish executing. - This low-level function prints an error message if PID is not - a child of this shell. It returns -1 if it fails, or whatever - wait_for returns otherwise. If the child is not found in the - jobs table, it returns 127. */ -int -wait_for_single_pid (pid) - pid_t pid; -{ - register PROCESS *child; - sigset_t set, oset; - int r, job; - - BLOCK_CHILD (set, oset); - child = find_pipeline (pid, 0, (int *)NULL); - UNBLOCK_CHILD (oset); - - if (child == 0) - { - internal_error (_("wait: pid %ld is not a child of this shell"), (long)pid); - return (127); - } - - r = wait_for (pid); - - /* POSIX.2: if we just waited for a job, we can remove it from the jobs - table. */ - BLOCK_CHILD (set, oset); - job = find_job (pid, 0); - if (job != NO_JOB && jobs[job] && DEADJOB (job)) - jobs[job]->flags |= J_NOTIFIED; - UNBLOCK_CHILD (oset); - - return r; -} - -/* Wait for all of the backgrounds of this shell to finish. */ -void -wait_for_background_pids () -{ - register int i, r, waited_for; - sigset_t set, oset; - pid_t pid; - - for (waited_for = 0;;) - { - BLOCK_CHILD (set, oset); - - /* find first running job; if none running in foreground, break */ - for (i = 0; i < job_slots; i++) - if (jobs[i] && RUNNING (i) && IS_FOREGROUND (i) == 0) - break; - - if (i == job_slots) - { - UNBLOCK_CHILD (oset); - break; - } - - /* now wait for the last pid in that job. */ - pid = find_last_pid (i, 0); - UNBLOCK_CHILD (oset); - QUIT; - errno = 0; /* XXX */ - r = wait_for_single_pid (pid); - if (r == -1) - { - /* If we're mistaken about job state, compensate. */ - if (errno == ECHILD) - mark_all_jobs_as_dead (); - } - else - waited_for++; - } - - /* POSIX.2 says the shell can discard the statuses of all completed jobs if - `wait' is called with no arguments. */ - mark_dead_jobs_as_notified (1); - cleanup_dead_jobs (); -} - -/* Make OLD_SIGINT_HANDLER the SIGINT signal handler. */ -#define INVALID_SIGNAL_HANDLER (SigHandler *)wait_for_background_pids -static SigHandler *old_sigint_handler = INVALID_SIGNAL_HANDLER; - -static void -restore_sigint_handler () -{ - if (old_sigint_handler != INVALID_SIGNAL_HANDLER) - { - set_signal_handler (SIGINT, old_sigint_handler); - old_sigint_handler = INVALID_SIGNAL_HANDLER; - } -} - -static int wait_sigint_received; - -/* Handle SIGINT while we are waiting for children in a script to exit. - The `wait' builtin should be interruptible, but all others should be - effectively ignored (i.e. not cause the shell to exit). */ -static sighandler -wait_sigint_handler (sig) - int sig; -{ - SigHandler *sigint_handler; - - if (interrupt_immediately || - (this_shell_builtin && this_shell_builtin == wait_builtin)) - { - last_command_exit_value = EXECUTION_FAILURE; - restore_sigint_handler (); - /* If we got a SIGINT while in `wait', and SIGINT is trapped, do - what POSIX.2 says (see builtins/wait.def for more info). */ - if (this_shell_builtin && this_shell_builtin == wait_builtin && - signal_is_trapped (SIGINT) && - ((sigint_handler = trap_to_sighandler (SIGINT)) == trap_handler)) - { - interrupt_immediately = 0; - trap_handler (SIGINT); /* set pending_traps[SIGINT] */ - wait_signal_received = SIGINT; - longjmp (wait_intr_buf, 1); - } - - ADDINTERRUPT; - QUIT; - } - - /* XXX - should this be interrupt_state? If it is, the shell will act - as if it got the SIGINT interrupt. */ - wait_sigint_received = 1; - - /* Otherwise effectively ignore the SIGINT and allow the running job to - be killed. */ - SIGRETURN (0); -} - -static int -process_exit_signal (status) - WAIT status; -{ - return (WIFSIGNALED (status) ? WTERMSIG (status) : 0); -} - -static int -process_exit_status (status) - WAIT status; -{ - if (WIFSIGNALED (status)) - return (128 + WTERMSIG (status)); - else if (WIFSTOPPED (status) == 0) - return (WEXITSTATUS (status)); - else - return (EXECUTION_SUCCESS); -} - -/* Return the exit status of the last process in the pipeline for job JOB. - This is the exit status of the entire job. */ -static WAIT -raw_job_exit_status (job) - int job; -{ - register PROCESS *p; - int fail; - - if (pipefail_opt) - { - fail = 0; - for (p = jobs[job]->pipe; p->next != jobs[job]->pipe; p = p->next) - if (p->status != EXECUTION_SUCCESS) fail = p->status; - return fail; - } - - for (p = jobs[job]->pipe; p->next != jobs[job]->pipe; p = p->next) - ; - return (p->status); -} - -/* Return the exit status of job JOB. This is the exit status of the last - (rightmost) process in the job's pipeline, modified if the job was killed - by a signal or stopped. */ -static int -job_exit_status (job) - int job; -{ - return (process_exit_status (raw_job_exit_status (job))); -} - -static int -job_exit_signal (job) - int job; -{ - return (process_exit_signal (raw_job_exit_status (job))); -} - -#define FIND_CHILD(pid, child) \ - do \ - { \ - child = find_pipeline (pid, 0, (int *)NULL); \ - if (child == 0) \ - { \ - give_terminal_to (shell_pgrp, 0); \ - UNBLOCK_CHILD (oset); \ - internal_error (_("wait_for: No record of process %ld"), (long)pid); \ - restore_sigint_handler (); \ - return (termination_state = 127); \ - } \ - } \ - while (0) - -/* Wait for pid (one of our children) to terminate, then - return the termination state. Returns 127 if PID is not found in - the jobs table. Returns -1 if waitchld() returns -1, indicating - that there are no unwaited-for child processes. */ -int -wait_for (pid) - pid_t pid; -{ - int job, termination_state, r; - WAIT s; - register PROCESS *child; - sigset_t set, oset; - register PROCESS *p; - - /* In the case that this code is interrupted, and we longjmp () out of it, - we are relying on the code in throw_to_top_level () to restore the - top-level signal mask. */ - BLOCK_CHILD (set, oset); - - /* Ignore interrupts while waiting for a job run without job control - to finish. We don't want the shell to exit if an interrupt is - received, only if one of the jobs run is killed via SIGINT. If - job control is not set, the job will be run in the same pgrp as - the shell, and the shell will see any signals the job gets. */ - - /* This is possibly a race condition -- should it go in stop_pipeline? */ - wait_sigint_received = 0; - if (job_control == 0) - old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler); - - termination_state = last_command_exit_value; - - if (interactive && job_control == 0) - QUIT; - - /* If we say wait_for (), then we have a record of this child somewhere. - If it and none of its peers are running, don't call waitchld(). */ - - job = NO_JOB; - do - { - FIND_CHILD (pid, child); - - /* If this child is part of a job, then we are really waiting for the - job to finish. Otherwise, we are waiting for the child to finish. - We check for JDEAD in case the job state has been set by waitchld - after receipt of a SIGCHLD. */ - if (job == NO_JOB) - job = find_job (pid, 0); - - /* waitchld() takes care of setting the state of the job. If the job - has already exited before this is called, sigchld_handler will have - called waitchld and the state will be set to JDEAD. */ - - if (child->running || (job != NO_JOB && RUNNING (job))) - { -#if defined (WAITPID_BROKEN) /* SCOv4 */ - sigset_t suspend_set; - sigemptyset (&suspend_set); - sigsuspend (&suspend_set); -#else /* !WAITPID_BROKEN */ -# if defined (MUST_UNBLOCK_CHLD) - struct sigaction act, oact; - sigset_t nullset, chldset; - - sigemptyset (&nullset); - sigemptyset (&chldset); - sigprocmask (SIG_SETMASK, &nullset, &chldset); - act.sa_handler = SIG_DFL; - sigemptyset (&act.sa_mask); - sigemptyset (&oact.sa_mask); - act.sa_flags = 0; - sigaction (SIGCHLD, &act, &oact); -# endif - queue_sigchld = 1; - r = waitchld (pid, 1); -# if defined (MUST_UNBLOCK_CHLD) - sigaction (SIGCHLD, &oact, (struct sigaction *)NULL); - sigprocmask (SIG_SETMASK, &chldset, (sigset_t *)NULL); -# endif - queue_sigchld = 0; - if (r == -1 && errno == ECHILD && this_shell_builtin == wait_builtin) - { - termination_state = -1; - goto wait_for_return; - } - - /* If child is marked as running, but waitpid() returns -1/ECHILD, - there is something wrong. Somewhere, wait should have returned - that child's pid. Mark the child as not running and the job, - if it exists, as JDEAD. */ - if (r == -1 && errno == ECHILD) - { - child->running = PS_DONE; - child->status = 0; /* XXX -- can't find true status */ - if (job != NO_JOB) - jobs[job]->state = JDEAD; - } -#endif /* WAITPID_BROKEN */ - } - - /* If the shell is interactive, and job control is disabled, see - if the foreground process has died due to SIGINT and jump out - of the wait loop if it has. waitchld has already restored the - old SIGINT signal handler. */ - if (interactive && job_control == 0) - QUIT; - } - while (child->running || (job != NO_JOB && RUNNING (job))); - - /* The exit state of the command is either the termination state of the - child, or the termination state of the job. If a job, the status - of the last child in the pipeline is the significant one. If the command - or job was terminated by a signal, note that value also. */ - termination_state = (job != NO_JOB) ? job_exit_status (job) - : process_exit_status (child->status); - last_command_exit_signal = (job != NO_JOB) ? job_exit_signal (job) - : process_exit_signal (child->status); - - if (job == NO_JOB || IS_JOBCONTROL (job)) - { - /* XXX - under what circumstances is a job not present in the jobs - table (job == NO_JOB)? - 1. command substitution - - In the case of command substitution, at least, it's probably not - the right thing to give the terminal to the shell's process group, - even though there is code in subst.c:command_substitute to work - around it. - - Things that don't: - $PROMPT_COMMAND execution - process substitution - */ -#if 0 -if (job == NO_JOB) - itrace("wait_for: job == NO_JOB, giving the terminal to shell_pgrp (%ld)", (long)shell_pgrp); -#endif - - give_terminal_to (shell_pgrp, 0); - } - - /* If the command did not exit cleanly, or the job is just - being stopped, then reset the tty state back to what it - was before this command. Reset the tty state and notify - the user of the job termination only if the shell is - interactive. Clean up any dead jobs in either case. */ - if (job != NO_JOB) - { - if (interactive_shell && subshell_environment == 0) - { - /* This used to use `child->status'. That's wrong, however, for - pipelines. `child' is the first process in the pipeline. It's - likely that the process we want to check for abnormal termination - or stopping is the last process in the pipeline, especially if - it's long-lived and the first process is short-lived. Since we - know we have a job here, we can check all the processes in this - job's pipeline and see if one of them stopped or terminated due - to a signal. We might want to change this later to just check - the last process in the pipeline. If no process exits due to a - signal, S is left as the status of the last job in the pipeline. */ - p = jobs[job]->pipe; - do - { - s = p->status; - if (WIFSIGNALED(s) || WIFSTOPPED(s)) - break; - p = p->next; - } - while (p != jobs[job]->pipe); - - if (WIFSIGNALED (s) || WIFSTOPPED (s)) - { - set_tty_state (); - - /* If the current job was stopped or killed by a signal, and - the user has requested it, get a possibly new window size */ - if (check_window_size && (job == current_job || IS_FOREGROUND (job))) - get_new_window_size (0); - } - else - get_tty_state (); - - /* If job control is enabled, the job was started with job - control, the job was the foreground job, and it was killed - by SIGINT, then print a newline to compensate for the kernel - printing the ^C without a trailing newline. */ - if (job_control && IS_JOBCONTROL (job) && IS_FOREGROUND (job) && - WIFSIGNALED (s) && WTERMSIG (s) == SIGINT) - { - /* If SIGINT is not trapped and the shell is in a for, while, - or until loop, act as if the shell received SIGINT as - well, so the loop can be broken. This doesn't call the - SIGINT signal handler; maybe it should. */ - if (signal_is_trapped (SIGINT) == 0 && loop_level) - ADDINTERRUPT; - else - { - putchar ('\n'); - fflush (stdout); - } - } - } - - /* Moved here from set_job_status_and_cleanup, which is in the SIGCHLD - signal handler path */ - if (DEADJOB (job) && IS_FOREGROUND (job) /*&& subshell_environment == 0*/) - setjstatus (job); - - /* If this job is dead, notify the user of the status. If the shell - is interactive, this will display a message on the terminal. If - the shell is not interactive, make sure we turn on the notify bit - so we don't get an unwanted message about the job's termination, - and so delete_job really clears the slot in the jobs table. */ - notify_and_cleanup (); - } - -wait_for_return: - - UNBLOCK_CHILD (oset); - - /* Restore the original SIGINT signal handler before we return. */ - restore_sigint_handler (); - - return (termination_state); -} - -/* Wait for the last process in the pipeline for JOB. Returns whatever - wait_for returns: the last process's termination state or -1 if there - are no unwaited-for child processes or an error occurs. */ -int -wait_for_job (job) - int job; -{ - pid_t pid; - int r; - sigset_t set, oset; - - BLOCK_CHILD(set, oset); - if (JOBSTATE (job) == JSTOPPED) - internal_warning (_("wait_for_job: job %d is stopped"), job+1); - - pid = find_last_pid (job, 0); - UNBLOCK_CHILD(oset); - r = wait_for (pid); - - /* POSIX.2: we can remove the job from the jobs table if we just waited - for it. */ - BLOCK_CHILD (set, oset); - if (job != NO_JOB && jobs[job] && DEADJOB (job)) - jobs[job]->flags |= J_NOTIFIED; - UNBLOCK_CHILD (oset); - - return r; -} - -/* Print info about dead jobs, and then delete them from the list - of known jobs. This does not actually delete jobs when the - shell is not interactive, because the dead jobs are not marked - as notified. */ -void -notify_and_cleanup () -{ - if (jobs_list_frozen) - return; - - if (interactive || interactive_shell == 0 || sourcelevel) - notify_of_job_status (); - - cleanup_dead_jobs (); -} - -/* Make dead jobs disappear from the jobs array without notification. - This is used when the shell is not interactive. */ -void -reap_dead_jobs () -{ - mark_dead_jobs_as_notified (0); - cleanup_dead_jobs (); -} - -/* Return the next closest (chronologically) job to JOB which is in - STATE. STATE can be JSTOPPED, JRUNNING. NO_JOB is returned if - there is no next recent job. */ -static int -most_recent_job_in_state (job, state) - int job; - JOB_STATE state; -{ - register int i, result; - sigset_t set, oset; - - BLOCK_CHILD (set, oset); - - for (result = NO_JOB, i = job - 1; i >= 0; i--) - { - if (jobs[i] && (JOBSTATE (i) == state)) - { - result = i; - break; - } - } - - UNBLOCK_CHILD (oset); - - return (result); -} - -/* Return the newest *stopped* job older than JOB, or NO_JOB if not - found. */ -static int -job_last_stopped (job) - int job; -{ - return (most_recent_job_in_state (job, JSTOPPED)); -} - -/* Return the newest *running* job older than JOB, or NO_JOB if not - found. */ -static int -job_last_running (job) - int job; -{ - return (most_recent_job_in_state (job, JRUNNING)); -} - -/* Make JOB be the current job, and make previous be useful. Must be - called with SIGCHLD blocked. */ -static void -set_current_job (job) - int job; -{ - int candidate; - - if (current_job != job) - { - previous_job = current_job; - current_job = job; - } - - /* First choice for previous_job is the old current_job. */ - if (previous_job != current_job && - previous_job != NO_JOB && - jobs[previous_job] && - STOPPED (previous_job)) - return; - - /* Second choice: Newest stopped job that is older than - the current job. */ - candidate = NO_JOB; - if (STOPPED (current_job)) - { - candidate = job_last_stopped (current_job); - - if (candidate != NO_JOB) - { - previous_job = candidate; - return; - } - } - - /* If we get here, there is either only one stopped job, in which case it is - the current job and the previous job should be set to the newest running - job, or there are only running jobs and the previous job should be set to - the newest running job older than the current job. We decide on which - alternative to use based on whether or not JOBSTATE(current_job) is - JSTOPPED. */ - - candidate = RUNNING (current_job) ? job_last_running (current_job) - : job_last_running (job_slots); - - if (candidate != NO_JOB) - { - previous_job = candidate; - return; - } - - /* There is only a single job, and it is both `+' and `-'. */ - previous_job = current_job; -} - -/* Make current_job be something useful, if it isn't already. */ - -/* Here's the deal: The newest non-running job should be `+', and the - next-newest non-running job should be `-'. If there is only a single - stopped job, the previous_job is the newest non-running job. If there - are only running jobs, the newest running job is `+' and the - next-newest running job is `-'. Must be called with SIGCHLD blocked. */ - -static void -reset_current () -{ - int candidate; - - if (job_slots && current_job != NO_JOB && jobs[current_job] && STOPPED (current_job)) - candidate = current_job; - else - { - candidate = NO_JOB; - - /* First choice: the previous job. */ - if (previous_job != NO_JOB && jobs[previous_job] && STOPPED (previous_job)) - candidate = previous_job; - - /* Second choice: the most recently stopped job. */ - if (candidate == NO_JOB) - candidate = job_last_stopped (job_slots); - - /* Third choice: the newest running job. */ - if (candidate == NO_JOB) - candidate = job_last_running (job_slots); - } - - /* If we found a job to use, then use it. Otherwise, there - are no jobs period. */ - if (candidate != NO_JOB) - set_current_job (candidate); - else - current_job = previous_job = NO_JOB; -} - -/* Set up the job structures so we know the job and its processes are - all running. */ -static void -set_job_running (job) - int job; -{ - register PROCESS *p; - - /* Each member of the pipeline is now running. */ - p = jobs[job]->pipe; - - do - { - if (WIFSTOPPED (p->status)) - p->running = PS_RUNNING; /* XXX - could be PS_STOPPED */ - p = p->next; - } - while (p != jobs[job]->pipe); - - /* This means that the job is running. */ - JOBSTATE (job) = JRUNNING; -} - -/* Start a job. FOREGROUND if non-zero says to do that. Otherwise, - start the job in the background. JOB is a zero-based index into - JOBS. Returns -1 if it is unable to start a job, and the return - status of the job otherwise. */ -int -start_job (job, foreground) - int job, foreground; -{ - register PROCESS *p; - int already_running; - sigset_t set, oset; - char *wd; - static TTYSTRUCT save_stty; - - BLOCK_CHILD (set, oset); - - if (DEADJOB (job)) - { - internal_error (_("%s: job has terminated"), this_command_name); - UNBLOCK_CHILD (oset); - return (-1); - } - - already_running = RUNNING (job); - - if (foreground == 0 && already_running) - { - internal_error (_("%s: job %d already in background"), this_command_name, job + 1); - UNBLOCK_CHILD (oset); - return (-1); - } - - wd = current_working_directory (); - - /* You don't know about the state of this job. Do you? */ - jobs[job]->flags &= ~J_NOTIFIED; - - if (foreground) - { - set_current_job (job); - jobs[job]->flags |= J_FOREGROUND; - } - - /* Tell the outside world what we're doing. */ - p = jobs[job]->pipe; - - if (foreground == 0) - fprintf (stderr, "[%d]%c ", job + 1, - (job == current_job) ? '+': ((job == previous_job) ? '-' : ' ')); - - do - { - fprintf (stderr, "%s%s", - p->command ? p->command : "", - p->next != jobs[job]->pipe? " | " : ""); - p = p->next; - } - while (p != jobs[job]->pipe); - - if (foreground == 0) - fprintf (stderr, " &"); - - if (strcmp (wd, jobs[job]->wd) != 0) - fprintf (stderr, " (wd: %s)", polite_directory_format (jobs[job]->wd)); - - fprintf (stderr, "\n"); - - /* Run the job. */ - if (already_running == 0) - set_job_running (job); - - /* Save the tty settings before we start the job in the foreground. */ - if (foreground) - { - get_tty_state (); - save_stty = shell_tty_info; - /* Give the terminal to this job. */ - if (IS_JOBCONTROL (job)) - give_terminal_to (jobs[job]->pgrp, 0); - } - else - jobs[job]->flags &= ~J_FOREGROUND; - - /* If the job is already running, then don't bother jump-starting it. */ - if (already_running == 0) - { - jobs[job]->flags |= J_NOTIFIED; - killpg (jobs[job]->pgrp, SIGCONT); - } - - if (foreground) - { - pid_t pid; - int s; - - pid = find_last_pid (job, 0); - UNBLOCK_CHILD (oset); - s = wait_for (pid); - shell_tty_info = save_stty; - set_tty_state (); - return (s); - } - else - { - reset_current (); - UNBLOCK_CHILD (oset); - return (0); - } -} - -/* Give PID SIGNAL. This determines what job the pid belongs to (if any). - If PID does belong to a job, and the job is stopped, then CONTinue the - job after giving it SIGNAL. Returns -1 on failure. If GROUP is non-null, - then kill the process group associated with PID. */ -int -kill_pid (pid, sig, group) - pid_t pid; - int sig, group; -{ - register PROCESS *p; - int job, result; - sigset_t set, oset; - - result = EXECUTION_SUCCESS; - if (group) - { - BLOCK_CHILD (set, oset); - p = find_pipeline (pid, 0, &job); - - if (job != NO_JOB) - { - jobs[job]->flags &= ~J_NOTIFIED; - - /* Kill process in backquotes or one started without job control? */ - if (jobs[job]->pgrp == shell_pgrp) - { - p = jobs[job]->pipe; - - do - { - kill (p->pid, sig); - if (p->running == PS_DONE && (sig == SIGTERM || sig == SIGHUP)) - kill (p->pid, SIGCONT); - p = p->next; - } - while (p != jobs[job]->pipe); - } - else - { - result = killpg (jobs[job]->pgrp, sig); - if (p && STOPPED (job) && (sig == SIGTERM || sig == SIGHUP)) - killpg (jobs[job]->pgrp, SIGCONT); - /* If we're continuing a stopped job via kill rather than bg or - fg, emulate the `bg' behavior. */ - if (p && STOPPED (job) && (sig == SIGCONT)) - { - set_job_running (job); - jobs[job]->flags &= ~J_FOREGROUND; - jobs[job]->flags |= J_NOTIFIED; - } - } - } - else - result = killpg (pid, sig); - - UNBLOCK_CHILD (oset); - } - else - result = kill (pid, sig); - - return (result); -} - -/* sigchld_handler () flushes at least one of the children that we are - waiting for. It gets run when we have gotten a SIGCHLD signal. */ -static sighandler -sigchld_handler (sig) - int sig; -{ - int n, oerrno; - - oerrno = errno; - REINSTALL_SIGCHLD_HANDLER; - sigchld++; - n = 0; - if (queue_sigchld == 0) - n = waitchld (-1, 0); - errno = oerrno; - SIGRETURN (n); -} - -/* waitchld() reaps dead or stopped children. It's called by wait_for and - sigchld_handler, and runs until there aren't any children terminating any - more. - If BLOCK is 1, this is to be a blocking wait for a single child, although - an arriving SIGCHLD could cause the wait to be non-blocking. It returns - the number of children reaped, or -1 if there are no unwaited-for child - processes. */ -static int -waitchld (wpid, block) - pid_t wpid; - int block; -{ - WAIT status; - PROCESS *child; - pid_t pid; - int call_set_current, last_stopped_job, job, children_exited, waitpid_flags; - - call_set_current = children_exited = 0; - last_stopped_job = NO_JOB; - - do - { - /* We don't want to be notified about jobs stopping if job control - is not active. XXX - was interactive_shell instead of job_control */ - waitpid_flags = (job_control && subshell_environment == 0) - ? (WUNTRACED|WCONTINUED) - : 0; - if (sigchld || block == 0) - waitpid_flags |= WNOHANG; - pid = WAITPID (-1, &status, waitpid_flags); - - /* The check for WNOHANG is to make sure we decrement sigchld only - if it was non-zero before we called waitpid. */ - if (sigchld > 0 && (waitpid_flags & WNOHANG)) - sigchld--; - - /* If waitpid returns -1 with errno == ECHILD, there are no more - unwaited-for child processes of this shell. */ - if (pid < 0 && errno == ECHILD) - { - if (children_exited == 0) - return -1; - else - break; - } - - /* If waitpid returns 0, there are running children. If it returns -1, - the only other error POSIX says it can return is EINTR. */ - if (pid <= 0) - continue; /* jumps right to the test */ - - /* children_exited is used to run traps on SIGCHLD. We don't want to - run the trap if a process is just being continued. */ - if (WIFCONTINUED(status) == 0) - children_exited++; - - /* Locate our PROCESS for this pid. */ - child = find_pipeline (pid, 1, &job); /* want running procs only */ - - /* It is not an error to have a child terminate that we did - not have a record of. This child could have been part of - a pipeline in backquote substitution. Even so, I'm not - sure child is ever non-zero. */ - if (child == 0) - continue; - - while (child->pid != pid) - child = child->next; - - /* Remember status, and whether or not the process is running. */ - child->status = status; - child->running = WIFCONTINUED(status) ? PS_RUNNING : PS_DONE; - - if (job == NO_JOB) - continue; - - call_set_current += set_job_status_and_cleanup (job); - - if (STOPPED (job)) - last_stopped_job = job; - else if (DEADJOB (job) && last_stopped_job == job) - last_stopped_job = NO_JOB; - } - while ((sigchld || block == 0) && pid > (pid_t)0); - - /* If a job was running and became stopped, then set the current - job. Otherwise, don't change a thing. */ - if (call_set_current) - { - if (last_stopped_job != NO_JOB) - set_current_job (last_stopped_job); - else - reset_current (); - } - - /* Call a SIGCHLD trap handler for each child that exits, if one is set. */ - if (job_control && signal_is_trapped (SIGCHLD) && children_exited && - trap_list[SIGCHLD] != (char *)IGNORE_SIG) - run_sigchld_trap (children_exited); - - /* We have successfully recorded the useful information about this process - that has just changed state. If we notify asynchronously, and the job - that this process belongs to is no longer running, then notify the user - of that fact now. */ - if (asynchronous_notification && interactive) - notify_of_job_status (); - - return (children_exited); -} - -/* Set the status of JOB and perform any necessary cleanup if the job is - marked as JDEAD. - - Currently, the cleanup activity is restricted to handling any SIGINT - received while waiting for a foreground job to finish. */ -static int -set_job_status_and_cleanup (job) - int job; -{ - PROCESS *child; - int tstatus, job_state, any_stopped, any_tstped, call_set_current; - SigHandler *temp_handler; - - child = jobs[job]->pipe; - jobs[job]->flags &= ~J_NOTIFIED; - - call_set_current = 0; - - /* - * COMPUTE JOB STATUS - */ - - /* If all children are not running, but any of them is stopped, then - the job is stopped, not dead. */ - job_state = any_stopped = any_tstped = 0; - do - { - job_state |= child->running; - if (child->running == PS_DONE && (WIFSTOPPED (child->status))) - { - any_stopped = 1; - any_tstped |= interactive && job_control && - (WSTOPSIG (child->status) == SIGTSTP); - } - child = child->next; - } - while (child != jobs[job]->pipe); - - /* If job_state != 0, the job is still running, so don't bother with - setting the process exit status and job state unless we're - transitioning from stopped to running. */ - if (job_state != 0 && JOBSTATE(job) != JSTOPPED) - return 0; - - /* - * SET JOB STATUS - */ - - /* The job is either stopped or dead. Set the state of the job accordingly. */ - if (any_stopped) - { - jobs[job]->state = JSTOPPED; - jobs[job]->flags &= ~J_FOREGROUND; - call_set_current++; - /* Suspending a job with SIGTSTP breaks all active loops. */ - if (any_tstped && loop_level) - breaking = loop_level; - } - else if (job_state != 0) /* was stopped, now running */ - { - jobs[job]->state = JRUNNING; - call_set_current++; - } - else - { - jobs[job]->state = JDEAD; - -#if 0 - if (IS_FOREGROUND (job)) - setjstatus (job); -#endif - - /* If this job has a cleanup function associated with it, call it - with `cleanarg' as the single argument, then set the function - pointer to NULL so it is not inadvertently called twice. The - cleanup function is responsible for deallocating cleanarg. */ - if (jobs[job]->j_cleanup) - { - (*jobs[job]->j_cleanup) (jobs[job]->cleanarg); - jobs[job]->j_cleanup = (sh_vptrfunc_t *)NULL; - } - } - - /* - * CLEANUP - * - * Currently, we just do special things if we got a SIGINT while waiting - * for a foreground job to complete - */ - - if (jobs[job]->state == JDEAD) - { - /* If we're running a shell script and we get a SIGINT with a - SIGINT trap handler, but the foreground job handles it and - does not exit due to SIGINT, run the trap handler but do not - otherwise act as if we got the interrupt. */ - if (wait_sigint_received && interactive_shell == 0 && - WIFSIGNALED (child->status) == 0 && IS_FOREGROUND (job) && - signal_is_trapped (SIGINT)) - { - int old_frozen; - wait_sigint_received = 0; - last_command_exit_value = process_exit_status (child->status); - - old_frozen = jobs_list_frozen; - jobs_list_frozen = 1; - tstatus = maybe_call_trap_handler (SIGINT); - jobs_list_frozen = old_frozen; - } - - /* If the foreground job is killed by SIGINT when job control is not - active, we need to perform some special handling. - - The check of wait_sigint_received is a way to determine if the - SIGINT came from the keyboard (in which case the shell has already - seen it, and wait_sigint_received is non-zero, because keyboard - signals are sent to process groups) or via kill(2) to the foreground - process by another process (or itself). If the shell did receive the - SIGINT, it needs to perform normal SIGINT processing. */ - else if (wait_sigint_received && (WTERMSIG (child->status) == SIGINT) && - IS_FOREGROUND (job) && IS_JOBCONTROL (job) == 0) - { - int old_frozen; - - wait_sigint_received = 0; - - /* If SIGINT is trapped, set the exit status so that the trap - handler can see it. */ - if (signal_is_trapped (SIGINT)) - last_command_exit_value = process_exit_status (child->status); - - /* If the signal is trapped, let the trap handler get it no matter - what and simply return if the trap handler returns. - maybe_call_trap_handler() may cause dead jobs to be removed from - the job table because of a call to execute_command. We work - around this by setting JOBS_LIST_FROZEN. */ - old_frozen = jobs_list_frozen; - jobs_list_frozen = 1; - tstatus = maybe_call_trap_handler (SIGINT); - jobs_list_frozen = old_frozen; - if (tstatus == 0 && old_sigint_handler != INVALID_SIGNAL_HANDLER) - { - /* wait_sigint_handler () has already seen SIGINT and - allowed the wait builtin to jump out. We need to - call the original SIGINT handler, if necessary. If - the original handler is SIG_DFL, we need to resend - the signal to ourselves. */ - - temp_handler = old_sigint_handler; - - /* Bogus. If we've reset the signal handler as the result - of a trap caught on SIGINT, then old_sigint_handler - will point to trap_handler, which now knows nothing about - SIGINT (if we reset the sighandler to the default). - In this case, we have to fix things up. What a crock. */ - if (temp_handler == trap_handler && signal_is_trapped (SIGINT) == 0) - temp_handler = trap_to_sighandler (SIGINT); - restore_sigint_handler (); - if (temp_handler == SIG_DFL) - termination_unwind_protect (SIGINT); - else if (temp_handler != SIG_IGN) - (*temp_handler) (SIGINT); - } - } - } - - return call_set_current; -} - -/* Build the array of values for the $PIPESTATUS variable from the set of - exit statuses of all processes in the job J. */ -static void -setjstatus (j) - int j; -{ -#if defined (ARRAY_VARS) - register int i; - register PROCESS *p; - - for (i = 1, p = jobs[j]->pipe; p->next != jobs[j]->pipe; p = p->next, i++) - ; - i++; - if (statsize < i) - { - pstatuses = (int *)xrealloc (pstatuses, i * sizeof (int)); - statsize = i; - } - i = 0; - p = jobs[j]->pipe; - do - { - pstatuses[i++] = process_exit_status (p->status); - p = p->next; - } - while (p != jobs[j]->pipe); - - pstatuses[i] = -1; /* sentinel */ - set_pipestatus_array (pstatuses, i); -#endif -} - -static void -run_sigchld_trap (nchild) - int nchild; -{ - char *trap_command; - int i; - - /* Turn off the trap list during the call to parse_and_execute () - to avoid potentially infinite recursive calls. Preserve the - values of last_command_exit_value, last_made_pid, and the_pipeline - around the execution of the trap commands. */ - trap_command = savestring (trap_list[SIGCHLD]); - - begin_unwind_frame ("SIGCHLD trap"); - unwind_protect_int (last_command_exit_value); - unwind_protect_int (last_command_exit_signal); - unwind_protect_var (last_made_pid); - unwind_protect_int (interrupt_immediately); - unwind_protect_int (jobs_list_frozen); - unwind_protect_pointer (the_pipeline); - unwind_protect_pointer (subst_assign_varlist); - - /* We have to add the commands this way because they will be run - in reverse order of adding. We don't want maybe_set_sigchld_trap () - to reference freed memory. */ - add_unwind_protect (xfree, trap_command); - add_unwind_protect (maybe_set_sigchld_trap, trap_command); - - subst_assign_varlist = (WORD_LIST *)NULL; - the_pipeline = (PROCESS *)NULL; - - restore_default_signal (SIGCHLD); - jobs_list_frozen = 1; - for (i = 0; i < nchild; i++) - { - interrupt_immediately = 1; - parse_and_execute (savestring (trap_command), "trap", SEVAL_NOHIST|SEVAL_RESETLINE); - } - - run_unwind_frame ("SIGCHLD trap"); -} - -/* Function to call when you want to notify people of changes - in job status. This prints out all jobs which are pending - notification to stderr, and marks those printed as already - notified, thus making them candidates for cleanup. */ -static void -notify_of_job_status () -{ - register int job, termsig; - char *dir; - sigset_t set, oset; - WAIT s; - - if (jobs == 0 || job_slots == 0) - return; - - if (old_ttou != 0) - { - sigemptyset (&set); - sigaddset (&set, SIGCHLD); - sigaddset (&set, SIGTTOU); - sigemptyset (&oset); - sigprocmask (SIG_BLOCK, &set, &oset); - } - else - queue_sigchld++; - - for (job = 0, dir = (char *)NULL; job < job_slots; job++) - { - if (jobs[job] && IS_NOTIFIED (job) == 0) - { - s = raw_job_exit_status (job); - termsig = WTERMSIG (s); - - /* POSIX.2 says we have to hang onto the statuses of at most the - last CHILD_MAX background processes if the shell is running a - script. If the shell is not interactive, don't print anything - unless the job was killed by a signal. */ - if (startup_state == 0 && WIFSIGNALED (s) == 0 && - ((DEADJOB (job) && IS_FOREGROUND (job) == 0) || STOPPED (job))) - continue; - -#if 0 - /* If job control is disabled, don't print the status messages. - Mark dead jobs as notified so that they get cleaned up. If - startup_state == 2, we were started to run `-c command', so - don't print anything. */ - if ((job_control == 0 && interactive_shell) || startup_state == 2) -#else - /* If job control is disabled, don't print the status messages. - Mark dead jobs as notified so that they get cleaned up. If - startup_state == 2 and subshell_environment has the - SUBSHELL_COMSUB bit turned on, we were started to run a command - substitution, so don't print anything. */ - if ((job_control == 0 && interactive_shell) || - (startup_state == 2 && (subshell_environment & SUBSHELL_COMSUB))) -#endif - { - /* POSIX.2 compatibility: if the shell is not interactive, - hang onto the job corresponding to the last asynchronous - pid until the user has been notified of its status or does - a `wait'. */ - if (DEADJOB (job) && (interactive_shell || (find_last_pid (job, 0) != last_asynchronous_pid))) - jobs[job]->flags |= J_NOTIFIED; - continue; - } - - /* Print info on jobs that are running in the background, - and on foreground jobs that were killed by anything - except SIGINT (and possibly SIGPIPE). */ - switch (JOBSTATE (job)) - { - case JDEAD: - if (interactive_shell == 0 && termsig && WIFSIGNALED (s) && - termsig != SIGINT && -#if defined (DONT_REPORT_SIGPIPE) - termsig != SIGPIPE && -#endif - signal_is_trapped (termsig) == 0) - { - /* Don't print `0' for a line number. */ - fprintf (stderr, "%s: line %d: ", get_name_for_error (), (line_number == 0) ? 1 : line_number); - pretty_print_job (job, JLIST_NONINTERACTIVE, stderr); - } - else if (IS_FOREGROUND (job)) - { -#if !defined (DONT_REPORT_SIGPIPE) - if (termsig && WIFSIGNALED (s) && termsig != SIGINT) -#else - if (termsig && WIFSIGNALED (s) && termsig != SIGINT && termsig != SIGPIPE) -#endif - { - fprintf (stderr, "%s", j_strsignal (termsig)); - - if (WIFCORED (s)) - fprintf (stderr, " (core dumped)"); - - fprintf (stderr, "\n"); - } - } - else - { - if (dir == 0) - dir = current_working_directory (); - pretty_print_job (job, JLIST_STANDARD, stderr); - if (dir && strcmp (dir, jobs[job]->wd) != 0) - fprintf (stderr, - "(wd now: %s)\n", polite_directory_format (dir)); - } - - jobs[job]->flags |= J_NOTIFIED; - break; - - case JSTOPPED: - fprintf (stderr, "\n"); - if (dir == 0) - dir = current_working_directory (); - pretty_print_job (job, JLIST_STANDARD, stderr); - if (dir && (strcmp (dir, jobs[job]->wd) != 0)) - fprintf (stderr, - "(wd now: %s)\n", polite_directory_format (dir)); - jobs[job]->flags |= J_NOTIFIED; - break; - - case JRUNNING: - case JMIXED: - break; - - default: - programming_error ("notify_of_job_status"); - } - } - } - if (old_ttou != 0) - sigprocmask (SIG_SETMASK, &oset, (sigset_t *)NULL); - else - queue_sigchld--; -} - -/* Initialize the job control mechanism, and set up the tty stuff. */ -int -initialize_job_control (force) - int force; -{ - shell_pgrp = getpgid (0); - - if (shell_pgrp == -1) - { - sys_error ("initialize_job_control: getpgrp failed"); - exit (1); - } - - /* We can only have job control if we are interactive. */ - if (interactive == 0) - { - job_control = 0; - original_pgrp = NO_PID; - shell_tty = fileno (stderr); - } - else - { - /* Get our controlling terminal. If job_control is set, or - interactive is set, then this is an interactive shell no - matter where fd 2 is directed. */ - shell_tty = dup (fileno (stderr)); /* fd 2 */ - - shell_tty = move_to_high_fd (shell_tty, 1, -1); - - /* Compensate for a bug in systems that compiled the BSD - rlogind with DEBUG defined, like NeXT and Alliant. */ - if (shell_pgrp == 0) - { - shell_pgrp = getpid (); - setpgid (0, shell_pgrp); - tcsetpgrp (shell_tty, shell_pgrp); - } - - while ((terminal_pgrp = tcgetpgrp (shell_tty)) != -1) - { - if (shell_pgrp != terminal_pgrp) - { - SigHandler *ottin; - - ottin = set_signal_handler(SIGTTIN, SIG_DFL); - kill (0, SIGTTIN); - set_signal_handler (SIGTTIN, ottin); - continue; - } - break; - } - - /* Make sure that we are using the new line discipline. */ - if (set_new_line_discipline (shell_tty) < 0) - { - sys_error ("initialize_job_control: line discipline"); - job_control = 0; - } - else - { - original_pgrp = shell_pgrp; - shell_pgrp = getpid (); - - if ((original_pgrp != shell_pgrp) && (setpgid (0, shell_pgrp) < 0)) - { - sys_error ("initialize_job_control: setpgid"); - shell_pgrp = original_pgrp; - } - - job_control = 1; - - /* If (and only if) we just set our process group to our pid, - thereby becoming a process group leader, and the terminal - is not in the same process group as our (new) process group, - then set the terminal's process group to our (new) process - group. If that fails, set our process group back to what it - was originally (so we can still read from the terminal) and - turn off job control. */ - if (shell_pgrp != original_pgrp && shell_pgrp != terminal_pgrp) - { - if (give_terminal_to (shell_pgrp, 0) < 0) - { - setpgid (0, original_pgrp); - shell_pgrp = original_pgrp; - job_control = 0; - } - } - } - if (job_control == 0) - internal_error (_("no job control in this shell")); - } - - if (shell_tty != fileno (stderr)) - SET_CLOSE_ON_EXEC (shell_tty); - - set_signal_handler (SIGCHLD, sigchld_handler); - - change_flag ('m', job_control ? '-' : '+'); - - if (interactive) - get_tty_state (); - - return job_control; -} - -#ifdef DEBUG -void -debug_print_pgrps () -{ - itrace("original_pgrp = %ld shell_pgrp = %ld terminal_pgrp = %ld", - (long)original_pgrp, (long)shell_pgrp, (long)terminal_pgrp); - itrace("tcgetpgrp(%d) -> %ld, getpgid(0) -> %ld", - shell_tty, (long)tcgetpgrp (shell_tty), (long)getpgid(0)); -} -#endif - -/* Set the line discipline to the best this system has to offer. - Return -1 if this is not possible. */ -static int -set_new_line_discipline (tty) - int tty; -{ -#if defined (NEW_TTY_DRIVER) - int ldisc; - - if (ioctl (tty, TIOCGETD, &ldisc) < 0) - return (-1); - - if (ldisc != NTTYDISC) - { - ldisc = NTTYDISC; - - if (ioctl (tty, TIOCSETD, &ldisc) < 0) - return (-1); - } - return (0); -#endif /* NEW_TTY_DRIVER */ - -#if defined (TERMIO_TTY_DRIVER) -# if defined (TERMIO_LDISC) && (NTTYDISC) - if (ioctl (tty, TCGETA, &shell_tty_info) < 0) - return (-1); - - if (shell_tty_info.c_line != NTTYDISC) - { - shell_tty_info.c_line = NTTYDISC; - if (ioctl (tty, TCSETAW, &shell_tty_info) < 0) - return (-1); - } -# endif /* TERMIO_LDISC && NTTYDISC */ - return (0); -#endif /* TERMIO_TTY_DRIVER */ - -#if defined (TERMIOS_TTY_DRIVER) -# if defined (TERMIOS_LDISC) && defined (NTTYDISC) - if (tcgetattr (tty, &shell_tty_info) < 0) - return (-1); - - if (shell_tty_info.c_line != NTTYDISC) - { - shell_tty_info.c_line = NTTYDISC; - if (tcsetattr (tty, TCSADRAIN, &shell_tty_info) < 0) - return (-1); - } -# endif /* TERMIOS_LDISC && NTTYDISC */ - return (0); -#endif /* TERMIOS_TTY_DRIVER */ - -#if !defined (NEW_TTY_DRIVER) && !defined (TERMIO_TTY_DRIVER) && !defined (TERMIOS_TTY_DRIVER) - return (-1); -#endif -} - -#if defined (TIOCGWINSZ) && defined (SIGWINCH) -static void -get_new_window_size (from_sig) - int from_sig; -{ - struct winsize win; - - if ((ioctl (shell_tty, TIOCGWINSZ, &win) == 0) && - win.ws_row > 0 && win.ws_col > 0) - { -#if defined (aixpc) - shell_tty_info.c_winsize = win; /* structure copying */ -#endif - sh_set_lines_and_columns (win.ws_row, win.ws_col); -#if defined (READLINE) - rl_set_screen_size (win.ws_row, win.ws_col); -#endif - } -} - -static sighandler -sigwinch_sighandler (sig) - int sig; -{ -#if defined (MUST_REINSTALL_SIGHANDLERS) - set_signal_handler (SIGWINCH, sigwinch_sighandler); -#endif /* MUST_REINSTALL_SIGHANDLERS */ - get_new_window_size (1); - SIGRETURN (0); -} -#else -static void -get_new_window_size (from_sig) - int from_sig; -{ -} -#endif /* TIOCGWINSZ && SIGWINCH */ - -void -set_sigwinch_handler () -{ -#if defined (TIOCGWINSZ) && defined (SIGWINCH) - old_winch = set_signal_handler (SIGWINCH, sigwinch_sighandler); -#endif -} - -void -unset_sigwinch_handler () -{ -#if defined (TIOCGWINSZ) && defined (SIGWINCH) - set_signal_handler (SIGWINCH, old_winch); -#endif -} - -/* Setup this shell to handle C-C, etc. */ -void -initialize_job_signals () -{ - if (interactive) - { - set_signal_handler (SIGINT, sigint_sighandler); - set_signal_handler (SIGTSTP, SIG_IGN); - set_signal_handler (SIGTTOU, SIG_IGN); - set_signal_handler (SIGTTIN, SIG_IGN); - set_sigwinch_handler (); - } - else if (job_control) - { - old_tstp = set_signal_handler (SIGTSTP, sigstop_sighandler); - old_ttin = set_signal_handler (SIGTTIN, sigstop_sighandler); - old_ttou = set_signal_handler (SIGTTOU, sigstop_sighandler); - } - /* Leave these things alone for non-interactive shells without job - control. */ -} - -/* Here we handle CONT signals. */ -static sighandler -sigcont_sighandler (sig) - int sig; -{ - initialize_job_signals (); - set_signal_handler (SIGCONT, old_cont); - kill (getpid (), SIGCONT); - - SIGRETURN (0); -} - -/* Here we handle stop signals while we are running not as a login shell. */ -static sighandler -sigstop_sighandler (sig) - int sig; -{ - set_signal_handler (SIGTSTP, old_tstp); - set_signal_handler (SIGTTOU, old_ttou); - set_signal_handler (SIGTTIN, old_ttin); - - old_cont = set_signal_handler (SIGCONT, sigcont_sighandler); - - give_terminal_to (shell_pgrp, 0); - - kill (getpid (), sig); - - SIGRETURN (0); -} - -/* Give the terminal to PGRP. */ -int -give_terminal_to (pgrp, force) - pid_t pgrp; - int force; -{ - sigset_t set, oset; - int r; - - r = 0; - if (job_control || force) - { - sigemptyset (&set); - sigaddset (&set, SIGTTOU); - sigaddset (&set, SIGTTIN); - sigaddset (&set, SIGTSTP); - sigaddset (&set, SIGCHLD); - sigemptyset (&oset); - sigprocmask (SIG_BLOCK, &set, &oset); - - if (tcsetpgrp (shell_tty, pgrp) < 0) - { - /* Maybe we should print an error message? */ -#if 0 - sys_error ("tcsetpgrp(%d) failed: pid %ld to pgrp %ld", - shell_tty, (long)getpid(), (long)pgrp); -#endif - r = -1; - } - else - terminal_pgrp = pgrp; - sigprocmask (SIG_SETMASK, &oset, (sigset_t *)NULL); - } - - return r; -} - -/* Clear out any jobs in the job array. This is intended to be used by - children of the shell, who should not have any job structures as baggage - when they start executing (forking subshells for parenthesized execution - and functions with pipes are the two that spring to mind). If RUNNING_ONLY - is nonzero, only running jobs are removed from the table. */ -void -delete_all_jobs (running_only) - int running_only; -{ - register int i; - sigset_t set, oset; - - BLOCK_CHILD (set, oset); - - if (job_slots) - { - current_job = previous_job = NO_JOB; - - for (i = 0; i < job_slots; i++) - if (jobs[i] && (running_only == 0 || (running_only && RUNNING(i)))) - delete_job (i, 1); - - if (running_only == 0) - { - free ((char *)jobs); - job_slots = 0; - } - } - - UNBLOCK_CHILD (oset); -} - -/* Mark all jobs in the job array so that they don't get a SIGHUP when the - shell gets one. If RUNNING_ONLY is nonzero, mark only running jobs. */ -void -nohup_all_jobs (running_only) - int running_only; -{ - register int i; - sigset_t set, oset; - - BLOCK_CHILD (set, oset); - - if (job_slots) - { - for (i = 0; i < job_slots; i++) - if (jobs[i] && (running_only == 0 || (running_only && RUNNING(i)))) - nohup_job (i); - } - - UNBLOCK_CHILD (oset); -} - -int -count_all_jobs () -{ - int i, n; - sigset_t set, oset; - - BLOCK_CHILD (set, oset); - for (i = n = 0; i < job_slots; i++) - if (jobs[i] && DEADJOB(i) == 0) - n++; - UNBLOCK_CHILD (oset); - return n; -} - -static void -mark_all_jobs_as_dead () -{ - register int i; - sigset_t set, oset; - - if (job_slots == 0) - return; - - BLOCK_CHILD (set, oset); - - for (i = 0; i < job_slots; i++) - if (jobs[i]) - jobs[i]->state = JDEAD; - - UNBLOCK_CHILD (oset); -} - -/* Mark all dead jobs as notified, so delete_job () cleans them out - of the job table properly. POSIX.2 says we need to save the - status of the last CHILD_MAX jobs, so we count the number of dead - jobs and mark only enough as notified to save CHILD_MAX statuses. */ -static void -mark_dead_jobs_as_notified (force) - int force; -{ - register int i, ndead; - sigset_t set, oset; - - if (job_slots == 0) - return; - - BLOCK_CHILD (set, oset); - - /* If FORCE is non-zero, we don't have to keep CHILD_MAX statuses - around; just run through the array. */ - if (force) - { - for (i = 0; i < job_slots; i++) - { - if (jobs[i] && DEADJOB (i) && (interactive_shell || (find_last_pid (i, 0) != last_asynchronous_pid))) - jobs[i]->flags |= J_NOTIFIED; - } - UNBLOCK_CHILD (oset); - return; - } - - /* Mark enough dead jobs as notified to keep CHILD_MAX jobs left in the - array not marked as notified. */ - - /* Count the number of dead jobs */ - for (i = ndead = 0; i < job_slots; i++) - { - if (jobs[i] && DEADJOB (i)) - ndead++; - } - - if (child_max < 0) - child_max = getmaxchild (); - if (child_max < 0) - child_max = DEFAULT_CHILD_MAX; - - /* Don't do anything if the number of dead jobs is less than CHILD_MAX and - we're not forcing a cleanup. */ - if (ndead <= child_max) - { - UNBLOCK_CHILD (oset); - return; - } - - /* Mark enough dead jobs as notified that we keep CHILD_MAX jobs in - the list. This isn't exactly right yet; changes need to be made - to stop_pipeline so we don't mark the newer jobs after we've - created CHILD_MAX slots in the jobs array. */ - for (i = 0; i < job_slots; i++) - { - if (jobs[i] && DEADJOB (i) && (interactive_shell || (find_last_pid (i, 0) != last_asynchronous_pid))) - { - jobs[i]->flags |= J_NOTIFIED; - if (--ndead <= child_max) - break; - } - } - - UNBLOCK_CHILD (oset); -} - -/* Here to allow other parts of the shell (like the trap stuff) to - unfreeze the jobs list. */ -void -unfreeze_jobs_list () -{ - jobs_list_frozen = 0; -} - -/* Allow or disallow job control to take place. Returns the old value - of job_control. */ -int -set_job_control (arg) - int arg; -{ - int old; - - old = job_control; - job_control = arg; - - /* If we're turning on job control, reset pipeline_pgrp so make_child will - put new child processes into the right pgrp */ - if (job_control != old && job_control) - pipeline_pgrp = 0; - - return (old); -} - -/* Turn off all traces of job control. This is run by children of the shell - which are going to do shellsy things, like wait (), etc. */ -void -without_job_control () -{ - stop_making_children (); - start_pipeline (); - delete_all_jobs (0); - set_job_control (0); -} - -/* If this shell is interactive, terminate all stopped jobs and - restore the original terminal process group. This is done - before the `exec' builtin calls shell_execve. */ -void -end_job_control () -{ - if (interactive_shell) /* XXX - should it be interactive? */ - { - terminate_stopped_jobs (); - - if (original_pgrp >= 0) - give_terminal_to (original_pgrp, 1); - } - - if (original_pgrp >= 0) - setpgid (0, original_pgrp); -} - -/* Restart job control by closing shell tty and reinitializing. This is - called after an exec fails in an interactive shell and we do not exit. */ -void -restart_job_control () -{ - if (shell_tty != -1) - close (shell_tty); - initialize_job_control (0); -} - -/* Set the handler to run when the shell receives a SIGCHLD signal. */ -void -set_sigchld_handler () -{ - set_signal_handler (SIGCHLD, sigchld_handler); -} - -#if defined (PGRP_PIPE) -/* Read from the read end of a pipe. This is how the process group leader - blocks until all of the processes in a pipeline have been made. */ -static void -pipe_read (pp) - int *pp; -{ - char ch; - - if (pp[1] >= 0) - { - close (pp[1]); - pp[1] = -1; - } - - if (pp[0] >= 0) - { - while (read (pp[0], &ch, 1) == -1 && errno == EINTR) - ; - } -} - -/* Close the read and write ends of PP, an array of file descriptors. */ -static void -pipe_close (pp) - int *pp; -{ - if (pp[0] >= 0) - close (pp[0]); - - if (pp[1] >= 0) - close (pp[1]); - - pp[0] = pp[1] = -1; -} - -/* Functional interface closes our local-to-job-control pipes. */ -void -close_pgrp_pipe () -{ - pipe_close (pgrp_pipe); -} - -#endif /* PGRP_PIPE */ diff --git a/parse.y.old b/parse.y.old deleted file mode 100644 index e510c9946..000000000 --- a/parse.y.old +++ /dev/null @@ -1,4891 +0,0 @@ -/* Yacc grammar for bash. */ - -/* Copyright (C) 1989-2005 Free Software Foundation, Inc. - - This file is part of GNU Bash, the Bourne Again SHell. - - Bash is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License as published by the Free - Software Foundation; either version 2, or (at your option) any later - version. - - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with Bash; see the file LICENSE. If not, write to the Free Software - Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ - -%{ -#include "config.h" - -#include "bashtypes.h" -#include "bashansi.h" - -#include "filecntl.h" - -#if defined (HAVE_UNISTD_H) -# include -#endif - -#if defined (HAVE_LOCALE_H) -# include -#endif - -#include -#include "chartypes.h" -#include - -#include "memalloc.h" - -#include "bashintl.h" - -#define NEED_STRFTIME_DECL /* used in externs.h */ - -#include "shell.h" -#include "trap.h" -#include "flags.h" -#include "parser.h" -#include "mailcheck.h" -#include "test.h" -#include "builtins.h" -#include "builtins/common.h" -#include "builtins/builtext.h" - -#include "shmbutil.h" - -#if defined (READLINE) -# include "bashline.h" -# include -#endif /* READLINE */ - -#if defined (HISTORY) -# include "bashhist.h" -# include -#endif /* HISTORY */ - -#if defined (JOB_CONTROL) -# include "jobs.h" -#endif /* JOB_CONTROL */ - -#if defined (ALIAS) -# include "alias.h" -#else -typedef void *alias_t; -#endif /* ALIAS */ - -#if defined (PROMPT_STRING_DECODE) -# ifndef _MINIX -# include -# endif -# include -# if defined (TM_IN_SYS_TIME) -# include -# include -# endif /* TM_IN_SYS_TIME */ -# include "maxpath.h" -#endif /* PROMPT_STRING_DECODE */ - -#define RE_READ_TOKEN -99 -#define NO_EXPANSION -100 - -#ifdef DEBUG -# define YYDEBUG 1 -#else -# define YYDEBUG 0 -#endif - -#if defined (HANDLE_MULTIBYTE) -# define last_shell_getc_is_singlebyte \ - ((shell_input_line_index > 1) \ - ? shell_input_line_property[shell_input_line_index - 1] \ - : 1) -# define MBTEST(x) ((x) && last_shell_getc_is_singlebyte) -#else -# define last_shell_getc_is_singlebyte 1 -# define MBTEST(x) ((x)) -#endif - -#if defined (EXTENDED_GLOB) -extern int extended_glob; -#endif - -extern int eof_encountered; -extern int no_line_editing, running_under_emacs; -extern int current_command_number; -extern int sourcelevel; -extern int posixly_correct; -extern int last_command_exit_value; -extern int interrupt_immediately; -extern char *shell_name, *current_host_name; -extern char *dist_version; -extern int patch_level; -extern int dump_translatable_strings, dump_po_strings; -extern sh_builtin_func_t *last_shell_builtin, *this_shell_builtin; -#if defined (BUFFERED_INPUT) -extern int bash_input_fd_changed; -#endif - -extern int errno; -/* **************************************************************** */ -/* */ -/* "Forward" declarations */ -/* */ -/* **************************************************************** */ - -#ifdef DEBUG -static void debug_parser __P((int)); -#endif - -static int yy_getc __P((void)); -static int yy_ungetc __P((int)); - -#if defined (READLINE) -static int yy_readline_get __P((void)); -static int yy_readline_unget __P((int)); -#endif - -static int yy_string_get __P((void)); -static int yy_string_unget __P((int)); -static int yy_stream_get __P((void)); -static int yy_stream_unget __P((int)); - -static int shell_getc __P((int)); -static void shell_ungetc __P((int)); -static void discard_until __P((int)); - -#if defined (ALIAS) || defined (DPAREN_ARITHMETIC) -static void push_string __P((char *, int, alias_t *)); -static void pop_string __P((void)); -static void free_string_list __P((void)); -#endif - -static char *read_a_line __P((int)); - -static int reserved_word_acceptable __P((int)); -static int yylex __P((void)); -static int alias_expand_token __P((char *)); -static int time_command_acceptable __P((void)); -static int special_case_tokens __P((char *)); -static int read_token __P((int)); -static char *parse_matched_pair __P((int, int, int, int *, int)); -#if defined (ARRAY_VARS) -static char *parse_compound_assignment __P((int *)); -#endif -#if defined (DPAREN_ARITHMETIC) || defined (ARITH_FOR_COMMAND) -static int parse_dparen __P((int)); -static int parse_arith_cmd __P((char **, int)); -#endif -#if defined (COND_COMMAND) -static void cond_error __P((void)); -static COND_COM *cond_expr __P((void)); -static COND_COM *cond_or __P((void)); -static COND_COM *cond_and __P((void)); -static COND_COM *cond_term __P((void)); -static int cond_skip_newlines __P((void)); -static COMMAND *parse_cond_command __P((void)); -#endif -#if defined (ARRAY_VARS) -static int token_is_assignment __P((char *, int)); -static int token_is_ident __P((char *, int)); -#endif -static int read_token_word __P((int)); -static void discard_parser_constructs __P((int)); - -static char *error_token_from_token __P((int)); -static char *error_token_from_text __P((void)); -static void print_offending_line __P((void)); -static void report_syntax_error __P((char *)); - -static void handle_eof_input_unit __P((void)); -static void prompt_again __P((void)); -#if 0 -static void reset_readline_prompt __P((void)); -#endif -static void print_prompt __P((void)); - -#if defined (HISTORY) -char *history_delimiting_chars __P((void)); -#endif - -#if defined (HANDLE_MULTIBYTE) -static void set_line_mbstate __P((void)); -static char *shell_input_line_property = NULL; -#else -# define set_line_mbstate() -#endif - -extern int yyerror __P((const char *)); - -#ifdef DEBUG -extern int yydebug; -#endif - -/* Default prompt strings */ -char *primary_prompt = PPROMPT; -char *secondary_prompt = SPROMPT; - -/* PROMPT_STRING_POINTER points to one of these, never to an actual string. */ -char *ps1_prompt, *ps2_prompt; - -/* Handle on the current prompt string. Indirectly points through - ps1_ or ps2_prompt. */ -char **prompt_string_pointer = (char **)NULL; -char *current_prompt_string; - -/* Non-zero means we expand aliases in commands. */ -int expand_aliases = 0; - -/* If non-zero, the decoded prompt string undergoes parameter and - variable substitution, command substitution, arithmetic substitution, - string expansion, process substitution, and quote removal in - decode_prompt_string. */ -int promptvars = 1; - -/* If non-zero, $'...' and $"..." are expanded when they appear within - a ${...} expansion, even when the expansion appears within double - quotes. */ -int extended_quote = 1; - -/* The decoded prompt string. Used if READLINE is not defined or if - editing is turned off. Analogous to current_readline_prompt. */ -static char *current_decoded_prompt; - -/* The number of lines read from input while creating the current command. */ -int current_command_line_count; - -/* Variables to manage the task of reading here documents, because we need to - defer the reading until after a complete command has been collected. */ -static REDIRECT *redir_stack[10]; -int need_here_doc; - -/* Where shell input comes from. History expansion is performed on each - line when the shell is interactive. */ -static char *shell_input_line = (char *)NULL; -static int shell_input_line_index; -static int shell_input_line_size; /* Amount allocated for shell_input_line. */ -static int shell_input_line_len; /* strlen (shell_input_line) */ - -/* Either zero or EOF. */ -static int shell_input_line_terminator; - -/* The line number in a script on which a function definition starts. */ -static int function_dstart; - -/* The line number in a script on which a function body starts. */ -static int function_bstart; - -/* The line number in a script at which an arithmetic for command starts. */ -static int arith_for_lineno; - -/* The line number in a script where the word in a `case WORD', `select WORD' - or `for WORD' begins. This is a nested command maximum, since the array - index is decremented after a case, select, or for command is parsed. */ -#define MAX_CASE_NEST 128 -static int word_lineno[MAX_CASE_NEST]; -static int word_top = -1; - -/* If non-zero, it is the token that we want read_token to return - regardless of what text is (or isn't) present to be read. This - is reset by read_token. If token_to_read == WORD or - ASSIGNMENT_WORD, yylval.word should be set to word_desc_to_read. */ -static int token_to_read; -static WORD_DESC *word_desc_to_read; - -static REDIRECTEE redir; -%} - -%union { - WORD_DESC *word; /* the word that we read. */ - int number; /* the number that we read. */ - WORD_LIST *word_list; - COMMAND *command; - REDIRECT *redirect; - ELEMENT element; - PATTERN_LIST *pattern; -} - -/* Reserved words. Members of the first group are only recognized - in the case that they are preceded by a list_terminator. Members - of the second group are for [[...]] commands. Members of the - third group are recognized only under special circumstances. */ -%token IF THEN ELSE ELIF FI CASE ESAC FOR SELECT WHILE UNTIL DO DONE FUNCTION -%token COND_START COND_END COND_ERROR -%token IN BANG TIME TIMEOPT - -/* More general tokens. yylex () knows how to make these. */ -%token WORD ASSIGNMENT_WORD -%token NUMBER -%token ARITH_CMD ARITH_FOR_EXPRS -%token COND_CMD -%token AND_AND OR_OR GREATER_GREATER LESS_LESS LESS_AND LESS_LESS_LESS -%token GREATER_AND SEMI_SEMI LESS_LESS_MINUS AND_GREATER LESS_GREATER -%token GREATER_BAR - -/* The types that the various syntactical units return. */ - -%type inputunit command pipeline pipeline_command -%type list list0 list1 compound_list simple_list simple_list1 -%type simple_command shell_command -%type for_command select_command case_command group_command -%type arith_command -%type cond_command -%type arith_for_command -%type function_def function_body if_command elif_clause subshell -%type redirection redirection_list -%type simple_command_element -%type word_list pattern -%type pattern_list case_clause_sequence case_clause -%type timespec -%type list_terminator - -%start inputunit - -%left '&' ';' '\n' yacc_EOF -%left AND_AND OR_OR -%right '|' -%% - -inputunit: simple_list simple_list_terminator - { - /* Case of regular command. Discard the error - safety net,and return the command just parsed. */ - global_command = $1; - eof_encountered = 0; - /* discard_parser_constructs (0); */ - YYACCEPT; - } - | '\n' - { - /* Case of regular command, but not a very - interesting one. Return a NULL command. */ - global_command = (COMMAND *)NULL; - YYACCEPT; - } - | error '\n' - { - /* Error during parsing. Return NULL command. */ - global_command = (COMMAND *)NULL; - eof_encountered = 0; - /* discard_parser_constructs (1); */ - if (interactive) - { - YYACCEPT; - } - else - { - YYABORT; - } - } - | yacc_EOF - { - /* Case of EOF seen by itself. Do ignoreeof or - not. */ - global_command = (COMMAND *)NULL; - handle_eof_input_unit (); - YYACCEPT; - } - ; - -word_list: WORD - { $$ = make_word_list ($1, (WORD_LIST *)NULL); } - | word_list WORD - { $$ = make_word_list ($2, $1); } - ; - -redirection: '>' WORD - { - redir.filename = $2; - $$ = make_redirection (1, r_output_direction, redir); - } - | '<' WORD - { - redir.filename = $2; - $$ = make_redirection (0, r_input_direction, redir); - } - | NUMBER '>' WORD - { - redir.filename = $3; - $$ = make_redirection ($1, r_output_direction, redir); - } - | NUMBER '<' WORD - { - redir.filename = $3; - $$ = make_redirection ($1, r_input_direction, redir); - } - | GREATER_GREATER WORD - { - redir.filename = $2; - $$ = make_redirection (1, r_appending_to, redir); - } - | NUMBER GREATER_GREATER WORD - { - redir.filename = $3; - $$ = make_redirection ($1, r_appending_to, redir); - } - | LESS_LESS WORD - { - redir.filename = $2; - $$ = make_redirection (0, r_reading_until, redir); - redir_stack[need_here_doc++] = $$; - } - | NUMBER LESS_LESS WORD - { - redir.filename = $3; - $$ = make_redirection ($1, r_reading_until, redir); - redir_stack[need_here_doc++] = $$; - } - | LESS_LESS_LESS WORD - { - redir.filename = $2; - $$ = make_redirection (0, r_reading_string, redir); - } - | NUMBER LESS_LESS_LESS WORD - { - redir.filename = $3; - $$ = make_redirection ($1, r_reading_string, redir); - } - | LESS_AND NUMBER - { - redir.dest = $2; - $$ = make_redirection (0, r_duplicating_input, redir); - } - | NUMBER LESS_AND NUMBER - { - redir.dest = $3; - $$ = make_redirection ($1, r_duplicating_input, redir); - } - | GREATER_AND NUMBER - { - redir.dest = $2; - $$ = make_redirection (1, r_duplicating_output, redir); - } - | NUMBER GREATER_AND NUMBER - { - redir.dest = $3; - $$ = make_redirection ($1, r_duplicating_output, redir); - } - | LESS_AND WORD - { - redir.filename = $2; - $$ = make_redirection (0, r_duplicating_input_word, redir); - } - | NUMBER LESS_AND WORD - { - redir.filename = $3; - $$ = make_redirection ($1, r_duplicating_input_word, redir); - } - | GREATER_AND WORD - { - redir.filename = $2; - $$ = make_redirection (1, r_duplicating_output_word, redir); - } - | NUMBER GREATER_AND WORD - { - redir.filename = $3; - $$ = make_redirection ($1, r_duplicating_output_word, redir); - } - | LESS_LESS_MINUS WORD - { - redir.filename = $2; - $$ = make_redirection - (0, r_deblank_reading_until, redir); - redir_stack[need_here_doc++] = $$; - } - | NUMBER LESS_LESS_MINUS WORD - { - redir.filename = $3; - $$ = make_redirection - ($1, r_deblank_reading_until, redir); - redir_stack[need_here_doc++] = $$; - } - | GREATER_AND '-' - { - redir.dest = 0; - $$ = make_redirection (1, r_close_this, redir); - } - | NUMBER GREATER_AND '-' - { - redir.dest = 0; - $$ = make_redirection ($1, r_close_this, redir); - } - | LESS_AND '-' - { - redir.dest = 0; - $$ = make_redirection (0, r_close_this, redir); - } - | NUMBER LESS_AND '-' - { - redir.dest = 0; - $$ = make_redirection ($1, r_close_this, redir); - } - | AND_GREATER WORD - { - redir.filename = $2; - $$ = make_redirection (1, r_err_and_out, redir); - } - | NUMBER LESS_GREATER WORD - { - redir.filename = $3; - $$ = make_redirection ($1, r_input_output, redir); - } - | LESS_GREATER WORD - { - redir.filename = $2; - $$ = make_redirection (0, r_input_output, redir); - } - | GREATER_BAR WORD - { - redir.filename = $2; - $$ = make_redirection (1, r_output_force, redir); - } - | NUMBER GREATER_BAR WORD - { - redir.filename = $3; - $$ = make_redirection ($1, r_output_force, redir); - } - ; - -simple_command_element: WORD - { $$.word = $1; $$.redirect = 0; } - | ASSIGNMENT_WORD - { $$.word = $1; $$.redirect = 0; } - | redirection - { $$.redirect = $1; $$.word = 0; } - ; - -redirection_list: redirection - { - $$ = $1; - } - | redirection_list redirection - { - register REDIRECT *t; - - for (t = $1; t->next; t = t->next) - ; - t->next = $2; - $$ = $1; - } - ; - -simple_command: simple_command_element - { $$ = make_simple_command ($1, (COMMAND *)NULL); } - | simple_command simple_command_element - { $$ = make_simple_command ($2, $1); } - ; - -command: simple_command - { $$ = clean_simple_command ($1); } - | shell_command - { $$ = $1; } - | shell_command redirection_list - { - COMMAND *tc; - - tc = $1; - if (tc->redirects) - { - register REDIRECT *t; - for (t = tc->redirects; t->next; t = t->next) - ; - t->next = $2; - } - else - tc->redirects = $2; - $$ = $1; - } - | function_def - { $$ = $1; } - ; - -shell_command: for_command - { $$ = $1; } - | case_command - { $$ = $1; } - | WHILE compound_list DO compound_list DONE - { $$ = make_while_command ($2, $4); } - | UNTIL compound_list DO compound_list DONE - { $$ = make_until_command ($2, $4); } - | select_command - { $$ = $1; } - | if_command - { $$ = $1; } - | subshell - { $$ = $1; } - | group_command - { $$ = $1; } - | arith_command - { $$ = $1; } - | cond_command - { $$ = $1; } - | arith_for_command - { $$ = $1; } - ; - -for_command: FOR WORD newline_list DO compound_list DONE - { - $$ = make_for_command ($2, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), $5, word_lineno[word_top]); - if (word_top > 0) word_top--; - } - | FOR WORD newline_list '{' compound_list '}' - { - $$ = make_for_command ($2, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), $5, word_lineno[word_top]); - if (word_top > 0) word_top--; - } - | FOR WORD ';' newline_list DO compound_list DONE - { - $$ = make_for_command ($2, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), $6, word_lineno[word_top]); - if (word_top > 0) word_top--; - } - | FOR WORD ';' newline_list '{' compound_list '}' - { - $$ = make_for_command ($2, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), $6, word_lineno[word_top]); - if (word_top > 0) word_top--; - } - | FOR WORD newline_list IN word_list list_terminator newline_list DO compound_list DONE - { - $$ = make_for_command ($2, REVERSE_LIST ($5, WORD_LIST *), $9, word_lineno[word_top]); - if (word_top > 0) word_top--; - } - | FOR WORD newline_list IN word_list list_terminator newline_list '{' compound_list '}' - { - $$ = make_for_command ($2, REVERSE_LIST ($5, WORD_LIST *), $9, word_lineno[word_top]); - if (word_top > 0) word_top--; - } - | FOR WORD newline_list IN list_terminator newline_list DO compound_list DONE - { - $$ = make_for_command ($2, (WORD_LIST *)NULL, $8, word_lineno[word_top]); - if (word_top > 0) word_top--; - } - | FOR WORD newline_list IN list_terminator newline_list '{' compound_list '}' - { - $$ = make_for_command ($2, (WORD_LIST *)NULL, $8, word_lineno[word_top]); - if (word_top > 0) word_top--; - } - ; - -arith_for_command: FOR ARITH_FOR_EXPRS list_terminator newline_list DO compound_list DONE - { - $$ = make_arith_for_command ($2, $6, arith_for_lineno); - if (word_top > 0) word_top--; - } - | FOR ARITH_FOR_EXPRS list_terminator newline_list '{' compound_list '}' - { - $$ = make_arith_for_command ($2, $6, arith_for_lineno); - if (word_top > 0) word_top--; - } - | FOR ARITH_FOR_EXPRS DO compound_list DONE - { - $$ = make_arith_for_command ($2, $4, arith_for_lineno); - if (word_top > 0) word_top--; - } - | FOR ARITH_FOR_EXPRS '{' compound_list '}' - { - $$ = make_arith_for_command ($2, $4, arith_for_lineno); - if (word_top > 0) word_top--; - } - ; - -select_command: SELECT WORD newline_list DO list DONE - { - $$ = make_select_command ($2, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), $5, word_lineno[word_top]); - if (word_top > 0) word_top--; - } - | SELECT WORD newline_list '{' list '}' - { - $$ = make_select_command ($2, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), $5, word_lineno[word_top]); - if (word_top > 0) word_top--; - } - | SELECT WORD ';' newline_list DO list DONE - { - $$ = make_select_command ($2, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), $6, word_lineno[word_top]); - if (word_top > 0) word_top--; - } - | SELECT WORD ';' newline_list '{' list '}' - { - $$ = make_select_command ($2, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), $6, word_lineno[word_top]); - if (word_top > 0) word_top--; - } - | SELECT WORD newline_list IN word_list list_terminator newline_list DO list DONE - { - $$ = make_select_command ($2, REVERSE_LIST ($5, WORD_LIST *), $9, word_lineno[word_top]); - if (word_top > 0) word_top--; - } - | SELECT WORD newline_list IN word_list list_terminator newline_list '{' list '}' - { - $$ = make_select_command ($2, REVERSE_LIST ($5, WORD_LIST *), $9, word_lineno[word_top]); - if (word_top > 0) word_top--; - } - ; - -case_command: CASE WORD newline_list IN newline_list ESAC - { - $$ = make_case_command ($2, (PATTERN_LIST *)NULL, word_lineno[word_top]); - if (word_top > 0) word_top--; - } - | CASE WORD newline_list IN case_clause_sequence newline_list ESAC - { - $$ = make_case_command ($2, $5, word_lineno[word_top]); - if (word_top > 0) word_top--; - } - | CASE WORD newline_list IN case_clause ESAC - { - $$ = make_case_command ($2, $5, word_lineno[word_top]); - if (word_top > 0) word_top--; - } - ; - -function_def: WORD '(' ')' newline_list function_body - { $$ = make_function_def ($1, $5, function_dstart, function_bstart); } - - | FUNCTION WORD '(' ')' newline_list function_body - { $$ = make_function_def ($2, $6, function_dstart, function_bstart); } - - | FUNCTION WORD newline_list function_body - { $$ = make_function_def ($2, $4, function_dstart, function_bstart); } - ; - - -function_body: shell_command - { $$ = $1; } - | shell_command redirection_list - { - COMMAND *tc; - - tc = $1; - /* According to Posix.2 3.9.5, redirections - specified after the body of a function should - be attached to the function and performed when - the function is executed, not as part of the - function definition command. */ - /* XXX - I don't think it matters, but we might - want to change this in the future to avoid - problems differentiating between a function - definition with a redirection and a function - definition containing a single command with a - redirection. The two are semantically equivalent, - though -- the only difference is in how the - command printing code displays the redirections. */ - if (tc->redirects) - { - register REDIRECT *t; - for (t = tc->redirects; t->next; t = t->next) - ; - t->next = $2; - } - else - tc->redirects = $2; - $$ = $1; - } - ; - -subshell: '(' compound_list ')' - { - $$ = make_subshell_command ($2); - $$->flags |= CMD_WANT_SUBSHELL; - } - ; - -if_command: IF compound_list THEN compound_list FI - { $$ = make_if_command ($2, $4, (COMMAND *)NULL); } - | IF compound_list THEN compound_list ELSE compound_list FI - { $$ = make_if_command ($2, $4, $6); } - | IF compound_list THEN compound_list elif_clause FI - { $$ = make_if_command ($2, $4, $5); } - ; - - -group_command: '{' compound_list '}' - { $$ = make_group_command ($2); } - ; - -arith_command: ARITH_CMD - { $$ = make_arith_command ($1); } - ; - -cond_command: COND_START COND_CMD COND_END - { $$ = $2; } - ; - -elif_clause: ELIF compound_list THEN compound_list - { $$ = make_if_command ($2, $4, (COMMAND *)NULL); } - | ELIF compound_list THEN compound_list ELSE compound_list - { $$ = make_if_command ($2, $4, $6); } - | ELIF compound_list THEN compound_list elif_clause - { $$ = make_if_command ($2, $4, $5); } - ; - -case_clause: pattern_list - | case_clause_sequence pattern_list - { $2->next = $1; $$ = $2; } - ; - -pattern_list: newline_list pattern ')' compound_list - { $$ = make_pattern_list ($2, $4); } - | newline_list pattern ')' newline_list - { $$ = make_pattern_list ($2, (COMMAND *)NULL); } - | newline_list '(' pattern ')' compound_list - { $$ = make_pattern_list ($3, $5); } - | newline_list '(' pattern ')' newline_list - { $$ = make_pattern_list ($3, (COMMAND *)NULL); } - ; - -case_clause_sequence: pattern_list SEMI_SEMI - | case_clause_sequence pattern_list SEMI_SEMI - { $2->next = $1; $$ = $2; } - ; - -pattern: WORD - { $$ = make_word_list ($1, (WORD_LIST *)NULL); } - | pattern '|' WORD - { $$ = make_word_list ($3, $1); } - ; - -/* A list allows leading or trailing newlines and - newlines as operators (equivalent to semicolons). - It must end with a newline or semicolon. - Lists are used within commands such as if, for, while. */ - -list: newline_list list0 - { - $$ = $2; - if (need_here_doc) - gather_here_documents (); - } - ; - -compound_list: list - | newline_list list1 - { - $$ = $2; - } - ; - -list0: list1 '\n' newline_list - | list1 '&' newline_list - { - if ($1->type == cm_connection) - $$ = connect_async_list ($1, (COMMAND *)NULL, '&'); - else - $$ = command_connect ($1, (COMMAND *)NULL, '&'); - } - | list1 ';' newline_list - - ; - -list1: list1 AND_AND newline_list list1 - { $$ = command_connect ($1, $4, AND_AND); } - | list1 OR_OR newline_list list1 - { $$ = command_connect ($1, $4, OR_OR); } - | list1 '&' newline_list list1 - { - if ($1->type == cm_connection) - $$ = connect_async_list ($1, $4, '&'); - else - $$ = command_connect ($1, $4, '&'); - } - | list1 ';' newline_list list1 - { $$ = command_connect ($1, $4, ';'); } - | list1 '\n' newline_list list1 - { $$ = command_connect ($1, $4, ';'); } - | pipeline_command - { $$ = $1; } - ; - -simple_list_terminator: '\n' - | yacc_EOF - ; - -list_terminator:'\n' - { $$ = '\n'; } - | ';' - { $$ = ';'; } - | yacc_EOF - { $$ = yacc_EOF; } - ; - -newline_list: - | newline_list '\n' - ; - -/* A simple_list is a list that contains no significant newlines - and no leading or trailing newlines. Newlines are allowed - only following operators, where they are not significant. - - This is what an inputunit consists of. */ - -simple_list: simple_list1 - { - $$ = $1; - if (need_here_doc) - gather_here_documents (); - } - | simple_list1 '&' - { - if ($1->type == cm_connection) - $$ = connect_async_list ($1, (COMMAND *)NULL, '&'); - else - $$ = command_connect ($1, (COMMAND *)NULL, '&'); - if (need_here_doc) - gather_here_documents (); - } - | simple_list1 ';' - { - $$ = $1; - if (need_here_doc) - gather_here_documents (); - } - ; - -simple_list1: simple_list1 AND_AND newline_list simple_list1 - { $$ = command_connect ($1, $4, AND_AND); } - | simple_list1 OR_OR newline_list simple_list1 - { $$ = command_connect ($1, $4, OR_OR); } - | simple_list1 '&' simple_list1 - { - if ($1->type == cm_connection) - $$ = connect_async_list ($1, $3, '&'); - else - $$ = command_connect ($1, $3, '&'); - } - | simple_list1 ';' simple_list1 - { $$ = command_connect ($1, $3, ';'); } - - | pipeline_command - { $$ = $1; } - ; - -pipeline_command: pipeline - { $$ = $1; } - | BANG pipeline - { - if ($2) - $2->flags |= CMD_INVERT_RETURN; - $$ = $2; - } - | timespec pipeline - { - if ($2) - $2->flags |= $1; - $$ = $2; - } - | timespec BANG pipeline - { - if ($3) - $3->flags |= $1|CMD_INVERT_RETURN; - $$ = $3; - } - | BANG timespec pipeline - { - if ($3) - $3->flags |= $2|CMD_INVERT_RETURN; - $$ = $3; - } - | timespec list_terminator - { - ELEMENT x; - - /* Boy, this is unclean. `time' by itself can - time a null command. We cheat and push a - newline back if the list_terminator was a newline - to avoid the double-newline problem (one to - terminate this, one to terminate the command) */ - x.word = 0; - x.redirect = 0; - $$ = make_simple_command (x, (COMMAND *)NULL); - $$->flags |= $1; - /* XXX - let's cheat and push a newline back */ - if ($2 == '\n') - token_to_read = '\n'; - } - - ; - -pipeline: - pipeline '|' newline_list pipeline - { $$ = command_connect ($1, $4, '|'); } - | command - { $$ = $1; } - ; - -timespec: TIME - { $$ = CMD_TIME_PIPELINE; } - | TIME TIMEOPT - { $$ = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } - ; -%% - -/* Possible states for the parser that require it to do special things. */ -#define PST_CASEPAT 0x0001 /* in a case pattern list */ -#define PST_ALEXPNEXT 0x0002 /* expand next word for aliases */ -#define PST_ALLOWOPNBRC 0x0004 /* allow open brace for function def */ -#define PST_NEEDCLOSBRC 0x0008 /* need close brace */ -#define PST_DBLPAREN 0x0010 /* double-paren parsing */ -#define PST_SUBSHELL 0x0020 /* ( ... ) subshell */ -#define PST_CMDSUBST 0x0040 /* $( ... ) command substitution */ -#define PST_CASESTMT 0x0080 /* parsing a case statement */ -#define PST_CONDCMD 0x0100 /* parsing a [[...]] command */ -#define PST_CONDEXPR 0x0200 /* parsing the guts of [[...]] */ -#define PST_ARITHFOR 0x0400 /* parsing an arithmetic for command */ -#define PST_ALEXPAND 0x0800 /* OK to expand aliases - unused */ -#define PST_CMDTOKEN 0x1000 /* command token OK - unused */ -#define PST_COMPASSIGN 0x2000 /* parsing x=(...) compound assignment */ -#define PST_ASSIGNOK 0x4000 /* assignment statement ok in this context */ - -/* Initial size to allocate for tokens, and the - amount to grow them by. */ -#define TOKEN_DEFAULT_INITIAL_SIZE 496 -#define TOKEN_DEFAULT_GROW_SIZE 512 - -/* Should we call prompt_again? */ -#define SHOULD_PROMPT() \ - (interactive && (bash_input.type == st_stdin || bash_input.type == st_stream)) - -#if defined (ALIAS) -# define expanding_alias() (pushed_string_list && pushed_string_list->expander) -#else -# define expanding_alias() 0 -#endif - -/* The token currently being read. */ -static int current_token; - -/* The last read token, or NULL. read_token () uses this for context - checking. */ -static int last_read_token; - -/* The token read prior to last_read_token. */ -static int token_before_that; - -/* The token read prior to token_before_that. */ -static int two_tokens_ago; - -/* The current parser state. */ -static int parser_state; - -/* Global var is non-zero when end of file has been reached. */ -int EOF_Reached = 0; - -#ifdef DEBUG -static void -debug_parser (i) - int i; -{ -#if YYDEBUG != 0 - yydebug = i; -#endif -} -#endif - -/* yy_getc () returns the next available character from input or EOF. - yy_ungetc (c) makes `c' the next character to read. - init_yy_io (get, unget, type, location) makes the function GET the - installed function for getting the next character, makes UNGET the - installed function for un-getting a character, sets the type of stream - (either string or file) from TYPE, and makes LOCATION point to where - the input is coming from. */ - -/* Unconditionally returns end-of-file. */ -int -return_EOF () -{ - return (EOF); -} - -/* Variable containing the current get and unget functions. - See ./input.h for a clearer description. */ -BASH_INPUT bash_input; - -/* Set all of the fields in BASH_INPUT to NULL. Free bash_input.name if it - is non-null, avoiding a memory leak. */ -void -initialize_bash_input () -{ - bash_input.type = st_none; - FREE (bash_input.name); - bash_input.name = (char *)NULL; - bash_input.location.file = (FILE *)NULL; - bash_input.location.string = (char *)NULL; - bash_input.getter = (sh_cget_func_t *)NULL; - bash_input.ungetter = (sh_cunget_func_t *)NULL; -} - -/* Set the contents of the current bash input stream from - GET, UNGET, TYPE, NAME, and LOCATION. */ -void -init_yy_io (get, unget, type, name, location) - sh_cget_func_t *get; - sh_cunget_func_t *unget; - enum stream_type type; - const char *name; - INPUT_STREAM location; -{ - bash_input.type = type; - FREE (bash_input.name); - bash_input.name = name ? savestring (name) : (char *)NULL; - - /* XXX */ -#if defined (CRAY) - memcpy((char *)&bash_input.location.string, (char *)&location.string, sizeof(location)); -#else - bash_input.location = location; -#endif - bash_input.getter = get; - bash_input.ungetter = unget; -} - -char * -yy_input_name () -{ - return (bash_input.name ? bash_input.name : "stdin"); -} - -/* Call this to get the next character of input. */ -static int -yy_getc () -{ - return (*(bash_input.getter)) (); -} - -/* Call this to unget C. That is, to make C the next character - to be read. */ -static int -yy_ungetc (c) - int c; -{ - return (*(bash_input.ungetter)) (c); -} - -#if defined (BUFFERED_INPUT) -#ifdef INCLUDE_UNUSED -int -input_file_descriptor () -{ - switch (bash_input.type) - { - case st_stream: - return (fileno (bash_input.location.file)); - case st_bstream: - return (bash_input.location.buffered_fd); - case st_stdin: - default: - return (fileno (stdin)); - } -} -#endif -#endif /* BUFFERED_INPUT */ - -/* **************************************************************** */ -/* */ -/* Let input be read from readline (). */ -/* */ -/* **************************************************************** */ - -#if defined (READLINE) -char *current_readline_prompt = (char *)NULL; -char *current_readline_line = (char *)NULL; -int current_readline_line_index = 0; - -static int -yy_readline_get () -{ - SigHandler *old_sigint; - int line_len; - unsigned char c; - - if (!current_readline_line) - { - if (!bash_readline_initialized) - initialize_readline (); - -#if defined (JOB_CONTROL) - if (job_control) - give_terminal_to (shell_pgrp, 0); -#endif /* JOB_CONTROL */ - - old_sigint = (SigHandler *)NULL; - if (signal_is_ignored (SIGINT) == 0) - { - old_sigint = (SigHandler *)set_signal_handler (SIGINT, sigint_sighandler); - interrupt_immediately++; - } - - current_readline_line = readline (current_readline_prompt ? - current_readline_prompt : ""); - - if (signal_is_ignored (SIGINT) == 0 && old_sigint) - { - interrupt_immediately--; - set_signal_handler (SIGINT, old_sigint); - } - -#if 0 - /* Reset the prompt to the decoded value of prompt_string_pointer. */ - reset_readline_prompt (); -#endif - - if (current_readline_line == 0) - return (EOF); - - current_readline_line_index = 0; - line_len = strlen (current_readline_line); - - current_readline_line = (char *)xrealloc (current_readline_line, 2 + line_len); - current_readline_line[line_len++] = '\n'; - current_readline_line[line_len] = '\0'; - } - - if (current_readline_line[current_readline_line_index] == 0) - { - free (current_readline_line); - current_readline_line = (char *)NULL; - return (yy_readline_get ()); - } - else - { - c = current_readline_line[current_readline_line_index++]; - return (c); - } -} - -static int -yy_readline_unget (c) - int c; -{ - if (current_readline_line_index && current_readline_line) - current_readline_line[--current_readline_line_index] = c; - return (c); -} - -void -with_input_from_stdin () -{ - INPUT_STREAM location; - - if (bash_input.type != st_stdin && stream_on_stack (st_stdin) == 0) - { - location.string = current_readline_line; - init_yy_io (yy_readline_get, yy_readline_unget, - st_stdin, "readline stdin", location); - } -} - -#else /* !READLINE */ - -void -with_input_from_stdin () -{ - with_input_from_stream (stdin, "stdin"); -} -#endif /* !READLINE */ - -/* **************************************************************** */ -/* */ -/* Let input come from STRING. STRING is zero terminated. */ -/* */ -/* **************************************************************** */ - -static int -yy_string_get () -{ - register char *string; - register unsigned char c; - - string = bash_input.location.string; - - /* If the string doesn't exist, or is empty, EOF found. */ - if (string && *string) - { - c = *string++; - bash_input.location.string = string; - return (c); - } - else - return (EOF); -} - -static int -yy_string_unget (c) - int c; -{ - *(--bash_input.location.string) = c; - return (c); -} - -void -with_input_from_string (string, name) - char *string; - const char *name; -{ - INPUT_STREAM location; - - location.string = string; - init_yy_io (yy_string_get, yy_string_unget, st_string, name, location); -} - -/* **************************************************************** */ -/* */ -/* Let input come from STREAM. */ -/* */ -/* **************************************************************** */ - -/* These two functions used to test the value of the HAVE_RESTARTABLE_SYSCALLS - define, and just use getc/ungetc if it was defined, but since bash - installs its signal handlers without the SA_RESTART flag, some signals - (like SIGCHLD, SIGWINCH, etc.) received during a read(2) will not cause - the read to be restarted. We need to restart it ourselves. */ - -static int -yy_stream_get () -{ - int result; - - result = EOF; - if (bash_input.location.file) - { - if (interactive) - interrupt_immediately++; - result = getc_with_restart (bash_input.location.file); - if (interactive) - interrupt_immediately--; - } - return (result); -} - -static int -yy_stream_unget (c) - int c; -{ - return (ungetc_with_restart (c, bash_input.location.file)); -} - -void -with_input_from_stream (stream, name) - FILE *stream; - const char *name; -{ - INPUT_STREAM location; - - location.file = stream; - init_yy_io (yy_stream_get, yy_stream_unget, st_stream, name, location); -} - -typedef struct stream_saver { - struct stream_saver *next; - BASH_INPUT bash_input; - int line; -#if defined (BUFFERED_INPUT) - BUFFERED_STREAM *bstream; -#endif /* BUFFERED_INPUT */ -} STREAM_SAVER; - -/* The globally known line number. */ -int line_number = 0; - -#if defined (COND_COMMAND) -static int cond_lineno; -static int cond_token; -#endif - -STREAM_SAVER *stream_list = (STREAM_SAVER *)NULL; - -void -push_stream (reset_lineno) - int reset_lineno; -{ - STREAM_SAVER *saver = (STREAM_SAVER *)xmalloc (sizeof (STREAM_SAVER)); - - xbcopy ((char *)&bash_input, (char *)&(saver->bash_input), sizeof (BASH_INPUT)); - -#if defined (BUFFERED_INPUT) - saver->bstream = (BUFFERED_STREAM *)NULL; - /* If we have a buffered stream, clear out buffers[fd]. */ - if (bash_input.type == st_bstream && bash_input.location.buffered_fd >= 0) - saver->bstream = set_buffered_stream (bash_input.location.buffered_fd, - (BUFFERED_STREAM *)NULL); -#endif /* BUFFERED_INPUT */ - - saver->line = line_number; - bash_input.name = (char *)NULL; - saver->next = stream_list; - stream_list = saver; - EOF_Reached = 0; - if (reset_lineno) - line_number = 0; -} - -void -pop_stream () -{ - if (!stream_list) - EOF_Reached = 1; - else - { - STREAM_SAVER *saver = stream_list; - - EOF_Reached = 0; - stream_list = stream_list->next; - - init_yy_io (saver->bash_input.getter, - saver->bash_input.ungetter, - saver->bash_input.type, - saver->bash_input.name, - saver->bash_input.location); - -#if defined (BUFFERED_INPUT) - /* If we have a buffered stream, restore buffers[fd]. */ - /* If the input file descriptor was changed while this was on the - save stack, update the buffered fd to the new file descriptor and - re-establish the buffer <-> bash_input fd correspondence. */ - if (bash_input.type == st_bstream && bash_input.location.buffered_fd >= 0) - { - if (bash_input_fd_changed) - { - bash_input_fd_changed = 0; - if (default_buffered_input >= 0) - { - bash_input.location.buffered_fd = default_buffered_input; - saver->bstream->b_fd = default_buffered_input; - SET_CLOSE_ON_EXEC (default_buffered_input); - } - } - /* XXX could free buffered stream returned as result here. */ - set_buffered_stream (bash_input.location.buffered_fd, saver->bstream); - } -#endif /* BUFFERED_INPUT */ - - line_number = saver->line; - - FREE (saver->bash_input.name); - free (saver); - } -} - -/* Return 1 if a stream of type TYPE is saved on the stack. */ -int -stream_on_stack (type) - enum stream_type type; -{ - register STREAM_SAVER *s; - - for (s = stream_list; s; s = s->next) - if (s->bash_input.type == type) - return 1; - return 0; -} - -/* Save the current token state and return it in a malloced array. */ -int * -save_token_state () -{ - int *ret; - - ret = (int *)xmalloc (3 * sizeof (int)); - ret[0] = last_read_token; - ret[1] = token_before_that; - ret[2] = two_tokens_ago; - return ret; -} - -void -restore_token_state (ts) - int *ts; -{ - if (ts == 0) - return; - last_read_token = ts[0]; - token_before_that = ts[1]; - two_tokens_ago = ts[2]; -} - -/* - * This is used to inhibit alias expansion and reserved word recognition - * inside case statement pattern lists. A `case statement pattern list' is: - * - * everything between the `in' in a `case word in' and the next ')' - * or `esac' - * everything between a `;;' and the next `)' or `esac' - */ - -#if defined (ALIAS) || defined (DPAREN_ARITHMETIC) - -#define END_OF_ALIAS 0 - -/* - * Pseudo-global variables used in implementing token-wise alias expansion. - */ - -/* - * Pushing and popping strings. This works together with shell_getc to - * implement alias expansion on a per-token basis. - */ - -typedef struct string_saver { - struct string_saver *next; - int expand_alias; /* Value to set expand_alias to when string is popped. */ - char *saved_line; -#if defined (ALIAS) - alias_t *expander; /* alias that caused this line to be pushed. */ -#endif - int saved_line_size, saved_line_index, saved_line_terminator; -} STRING_SAVER; - -STRING_SAVER *pushed_string_list = (STRING_SAVER *)NULL; - -/* - * Push the current shell_input_line onto a stack of such lines and make S - * the current input. Used when expanding aliases. EXPAND is used to set - * the value of expand_next_token when the string is popped, so that the - * word after the alias in the original line is handled correctly when the - * alias expands to multiple words. TOKEN is the token that was expanded - * into S; it is saved and used to prevent infinite recursive expansion. - */ -static void -push_string (s, expand, ap) - char *s; - int expand; - alias_t *ap; -{ - STRING_SAVER *temp = (STRING_SAVER *)xmalloc (sizeof (STRING_SAVER)); - - temp->expand_alias = expand; - temp->saved_line = shell_input_line; - temp->saved_line_size = shell_input_line_size; - temp->saved_line_index = shell_input_line_index; - temp->saved_line_terminator = shell_input_line_terminator; -#if defined (ALIAS) - temp->expander = ap; -#endif - temp->next = pushed_string_list; - pushed_string_list = temp; - -#if defined (ALIAS) - if (ap) - ap->flags |= AL_BEINGEXPANDED; -#endif - - shell_input_line = s; - shell_input_line_size = strlen (s); - shell_input_line_index = 0; - shell_input_line_terminator = '\0'; -#if 0 - parser_state &= ~PST_ALEXPNEXT; /* XXX */ -#endif - - set_line_mbstate (); -} - -/* - * Make the top of the pushed_string stack be the current shell input. - * Only called when there is something on the stack. Called from shell_getc - * when it thinks it has consumed the string generated by an alias expansion - * and needs to return to the original input line. - */ -static void -pop_string () -{ - STRING_SAVER *t; - - FREE (shell_input_line); - shell_input_line = pushed_string_list->saved_line; - shell_input_line_index = pushed_string_list->saved_line_index; - shell_input_line_size = pushed_string_list->saved_line_size; - shell_input_line_terminator = pushed_string_list->saved_line_terminator; - - if (pushed_string_list->expand_alias) - parser_state |= PST_ALEXPNEXT; - else - parser_state &= ~PST_ALEXPNEXT; - - t = pushed_string_list; - pushed_string_list = pushed_string_list->next; - -#if defined (ALIAS) - if (t->expander) - t->expander->flags &= ~AL_BEINGEXPANDED; -#endif - - free ((char *)t); - - set_line_mbstate (); -} - -static void -free_string_list () -{ - register STRING_SAVER *t, *t1; - - for (t = pushed_string_list; t; ) - { - t1 = t->next; - FREE (t->saved_line); -#if defined (ALIAS) - if (t->expander) - t->expander->flags &= ~AL_BEINGEXPANDED; -#endif - free ((char *)t); - t = t1; - } - pushed_string_list = (STRING_SAVER *)NULL; -} - -#endif /* ALIAS || DPAREN_ARITHMETIC */ - -void -free_pushed_string_input () -{ -#if defined (ALIAS) || defined (DPAREN_ARITHMETIC) - free_string_list (); -#endif -} - -/* Return a line of text, taken from wherever yylex () reads input. - If there is no more input, then we return NULL. If REMOVE_QUOTED_NEWLINE - is non-zero, we remove unquoted \ pairs. This is used by - read_secondary_line to read here documents. */ -static char * -read_a_line (remove_quoted_newline) - int remove_quoted_newline; -{ - static char *line_buffer = (char *)NULL; - static int buffer_size = 0; - int indx = 0, c, peekc, pass_next; - -#if defined (READLINE) - if (no_line_editing && SHOULD_PROMPT ()) -#else - if (SHOULD_PROMPT ()) -#endif - print_prompt (); - - pass_next = 0; - while (1) - { - /* Allow immediate exit if interrupted during input. */ - QUIT; - - c = yy_getc (); - - /* Ignore null bytes in input. */ - if (c == 0) - { -#if 0 - internal_warning ("read_a_line: ignored null byte in input"); -#endif - continue; - } - - /* If there is no more input, then we return NULL. */ - if (c == EOF) - { - if (interactive && bash_input.type == st_stream) - clearerr (stdin); - if (indx == 0) - return ((char *)NULL); - c = '\n'; - } - - /* `+2' in case the final character in the buffer is a newline. */ - RESIZE_MALLOCED_BUFFER (line_buffer, indx, 2, buffer_size, 128); - - /* IF REMOVE_QUOTED_NEWLINES is non-zero, we are reading a - here document with an unquoted delimiter. In this case, - the line will be expanded as if it were in double quotes. - We allow a backslash to escape the next character, but we - need to treat the backslash specially only if a backslash - quoting a backslash-newline pair appears in the line. */ - if (pass_next) - { - line_buffer[indx++] = c; - pass_next = 0; - } - else if (c == '\\' && remove_quoted_newline) - { - peekc = yy_getc (); - if (peekc == '\n') - { - line_number++; - continue; /* Make the unquoted \ pair disappear. */ - } - else - { - yy_ungetc (peekc); - pass_next = 1; - line_buffer[indx++] = c; /* Preserve the backslash. */ - } - } - else - line_buffer[indx++] = c; - - if (c == '\n') - { - line_buffer[indx] = '\0'; - return (line_buffer); - } - } -} - -/* Return a line as in read_a_line (), but insure that the prompt is - the secondary prompt. This is used to read the lines of a here - document. REMOVE_QUOTED_NEWLINE is non-zero if we should remove - newlines quoted with backslashes while reading the line. It is - non-zero unless the delimiter of the here document was quoted. */ -char * -read_secondary_line (remove_quoted_newline) - int remove_quoted_newline; -{ - prompt_string_pointer = &ps2_prompt; - if (SHOULD_PROMPT()) - prompt_again (); - return (read_a_line (remove_quoted_newline)); -} - -/* **************************************************************** */ -/* */ -/* YYLEX () */ -/* */ -/* **************************************************************** */ - -/* Reserved words. These are only recognized as the first word of a - command. */ -STRING_INT_ALIST word_token_alist[] = { - { "if", IF }, - { "then", THEN }, - { "else", ELSE }, - { "elif", ELIF }, - { "fi", FI }, - { "case", CASE }, - { "esac", ESAC }, - { "for", FOR }, -#if defined (SELECT_COMMAND) - { "select", SELECT }, -#endif - { "while", WHILE }, - { "until", UNTIL }, - { "do", DO }, - { "done", DONE }, - { "in", IN }, - { "function", FUNCTION }, -#if defined (COMMAND_TIMING) - { "time", TIME }, -#endif - { "{", '{' }, - { "}", '}' }, - { "!", BANG }, -#if defined (COND_COMMAND) - { "[[", COND_START }, - { "]]", COND_END }, -#endif - { (char *)NULL, 0} -}; - -/* other tokens that can be returned by read_token() */ -STRING_INT_ALIST other_token_alist[] = { - /* Multiple-character tokens with special values */ - { "-p", TIMEOPT }, - { "&&", AND_AND }, - { "||", OR_OR }, - { ">>", GREATER_GREATER }, - { "<<", LESS_LESS }, - { "<&", LESS_AND }, - { ">&", GREATER_AND }, - { ";;", SEMI_SEMI }, - { "<<-", LESS_LESS_MINUS }, - { "<<<", LESS_LESS_LESS }, - { "&>", AND_GREATER }, - { "<>", LESS_GREATER }, - { ">|", GREATER_BAR }, - { "EOF", yacc_EOF }, - /* Tokens whose value is the character itself */ - { ">", '>' }, - { "<", '<' }, - { "-", '-' }, - { "{", '{' }, - { "}", '}' }, - { ";", ';' }, - { "(", '(' }, - { ")", ')' }, - { "|", '|' }, - { "&", '&' }, - { "newline", '\n' }, - { (char *)NULL, 0} -}; - -/* others not listed here: - WORD look at yylval.word - ASSIGNMENT_WORD look at yylval.word - NUMBER look at yylval.number - ARITH_CMD look at yylval.word_list - ARITH_FOR_EXPRS look at yylval.word_list - COND_CMD look at yylval.command -*/ - -/* These are used by read_token_word, but appear up here so that shell_getc - can use them to decide when to add otherwise blank lines to the history. */ - -/* The primary delimiter stack. */ -struct dstack dstack = { (char *)NULL, 0, 0 }; - -/* A temporary delimiter stack to be used when decoding prompt strings. - This is needed because command substitutions in prompt strings (e.g., PS2) - can screw up the parser's quoting state. */ -static struct dstack temp_dstack = { (char *)NULL, 0, 0 }; - -/* Macro for accessing the top delimiter on the stack. Returns the - delimiter or zero if none. */ -#define current_delimiter(ds) \ - (ds.delimiter_depth ? ds.delimiters[ds.delimiter_depth - 1] : 0) - -#define push_delimiter(ds, character) \ - do \ - { \ - if (ds.delimiter_depth + 2 > ds.delimiter_space) \ - ds.delimiters = (char *)xrealloc \ - (ds.delimiters, (ds.delimiter_space += 10) * sizeof (char)); \ - ds.delimiters[ds.delimiter_depth] = character; \ - ds.delimiter_depth++; \ - } \ - while (0) - -#define pop_delimiter(ds) ds.delimiter_depth-- - -/* Return the next shell input character. This always reads characters - from shell_input_line; when that line is exhausted, it is time to - read the next line. This is called by read_token when the shell is - processing normal command input. */ - -/* This implements one-character lookahead/lookbehind across physical input - lines, to avoid something being lost because it's pushed back with - shell_ungetc when we're at the start of a line. */ -static int eol_ungetc_lookahead = 0; - -static int -shell_getc (remove_quoted_newline) - int remove_quoted_newline; -{ - register int i; - int c; - unsigned char uc; - static int mustpop = 0; - - QUIT; - - if (eol_ungetc_lookahead) - { - c = eol_ungetc_lookahead; - eol_ungetc_lookahead = 0; - return (c); - } - -#if defined (ALIAS) || defined (DPAREN_ARITHMETIC) - /* If shell_input_line[shell_input_line_index] == 0, but there is - something on the pushed list of strings, then we don't want to go - off and get another line. We let the code down below handle it. */ - - if (!shell_input_line || ((!shell_input_line[shell_input_line_index]) && - (pushed_string_list == (STRING_SAVER *)NULL))) -#else /* !ALIAS && !DPAREN_ARITHMETIC */ - if (!shell_input_line || !shell_input_line[shell_input_line_index]) -#endif /* !ALIAS && !DPAREN_ARITHMETIC */ - { - line_number++; - - restart_read: - - /* Allow immediate exit if interrupted during input. */ - QUIT; - - i = 0; - shell_input_line_terminator = 0; - - /* If the shell is interatctive, but not currently printing a prompt - (interactive_shell && interactive == 0), we don't want to print - notifies or cleanup the jobs -- we want to defer it until we do - print the next prompt. */ - if (interactive_shell == 0 || SHOULD_PROMPT()) - { -#if defined (JOB_CONTROL) - /* This can cause a problem when reading a command as the result - of a trap, when the trap is called from flush_child. This call - had better not cause jobs to disappear from the job table in - that case, or we will have big trouble. */ - notify_and_cleanup (); -#else /* !JOB_CONTROL */ - cleanup_dead_jobs (); -#endif /* !JOB_CONTROL */ - } - -#if defined (READLINE) - if (no_line_editing && SHOULD_PROMPT()) -#else - if (SHOULD_PROMPT()) -#endif - print_prompt (); - - if (bash_input.type == st_stream) - clearerr (stdin); - - while (1) - { - c = yy_getc (); - - /* Allow immediate exit if interrupted during input. */ - QUIT; - - if (c == '\0') - { -#if 0 - internal_warning ("shell_getc: ignored null byte in input"); -#endif - continue; - } - - RESIZE_MALLOCED_BUFFER (shell_input_line, i, 2, shell_input_line_size, 256); - - if (c == EOF) - { - if (bash_input.type == st_stream) - clearerr (stdin); - - if (i == 0) - shell_input_line_terminator = EOF; - - shell_input_line[i] = '\0'; - break; - } - - shell_input_line[i++] = c; - - if (c == '\n') - { - shell_input_line[--i] = '\0'; - current_command_line_count++; - break; - } - } - - shell_input_line_index = 0; - shell_input_line_len = i; /* == strlen (shell_input_line) */ - - set_line_mbstate (); - -#if defined (HISTORY) - if (remember_on_history && shell_input_line && shell_input_line[0]) - { - char *expansions; -# if defined (BANG_HISTORY) - int old_hist; - - /* If the current delimiter is a single quote, we should not be - performing history expansion, even if we're on a different - line from the original single quote. */ - old_hist = history_expansion_inhibited; - if (current_delimiter (dstack) == '\'') - history_expansion_inhibited = 1; -# endif - expansions = pre_process_line (shell_input_line, 1, 1); -# if defined (BANG_HISTORY) - history_expansion_inhibited = old_hist; -# endif - if (expansions != shell_input_line) - { - free (shell_input_line); - shell_input_line = expansions; - shell_input_line_len = shell_input_line ? - strlen (shell_input_line) : 0; - if (!shell_input_line_len) - current_command_line_count--; - - /* We have to force the xrealloc below because we don't know - the true allocated size of shell_input_line anymore. */ - shell_input_line_size = shell_input_line_len; - - set_line_mbstate (); - } - } - /* Try to do something intelligent with blank lines encountered while - entering multi-line commands. XXX - this is grotesque */ - else if (remember_on_history && shell_input_line && - shell_input_line[0] == '\0' && - current_command_line_count > 1) - { - if (current_delimiter (dstack)) - /* We know shell_input_line[0] == 0 and we're reading some sort of - quoted string. This means we've got a line consisting of only - a newline in a quoted string. We want to make sure this line - gets added to the history. */ - maybe_add_history (shell_input_line); - else - { - char *hdcs; - hdcs = history_delimiting_chars (); - if (hdcs && hdcs[0] == ';') - maybe_add_history (shell_input_line); - } - } - -#endif /* HISTORY */ - - if (shell_input_line) - { - /* Lines that signify the end of the shell's input should not be - echoed. */ - if (echo_input_at_read && (shell_input_line[0] || - shell_input_line_terminator != EOF)) - fprintf (stderr, "%s\n", shell_input_line); - } - else - { - shell_input_line_size = 0; - prompt_string_pointer = ¤t_prompt_string; - if (SHOULD_PROMPT ()) - prompt_again (); - goto restart_read; - } - - /* Add the newline to the end of this string, iff the string does - not already end in an EOF character. */ - if (shell_input_line_terminator != EOF) - { - if (shell_input_line_len + 3 > shell_input_line_size) - shell_input_line = (char *)xrealloc (shell_input_line, - 1 + (shell_input_line_size += 2)); - - shell_input_line[shell_input_line_len] = '\n'; - shell_input_line[shell_input_line_len + 1] = '\0'; - - set_line_mbstate (); - } - } - - uc = shell_input_line[shell_input_line_index]; - - if (uc) - shell_input_line_index++; - -#if defined (ALIAS) || defined (DPAREN_ARITHMETIC) - /* If UC is NULL, we have reached the end of the current input string. If - pushed_string_list is non-empty, it's time to pop to the previous string - because we have fully consumed the result of the last alias expansion. - Do it transparently; just return the next character of the string popped - to. */ - if (!uc && (pushed_string_list != (STRING_SAVER *)NULL)) - { - pop_string (); - uc = shell_input_line[shell_input_line_index]; - if (uc) - shell_input_line_index++; - } -#endif /* ALIAS || DPAREN_ARITHMETIC */ - - if MBTEST(uc == '\\' && remove_quoted_newline && shell_input_line[shell_input_line_index] == '\n') - { - if (SHOULD_PROMPT ()) - prompt_again (); - line_number++; - goto restart_read; - } - - if (!uc && shell_input_line_terminator == EOF) - return ((shell_input_line_index != 0) ? '\n' : EOF); - - return (uc); -} - -/* Put C back into the input for the shell. This might need changes for - HANDLE_MULTIBYTE around EOLs. Since we (currently) never push back a - character different than we read, shell_input_line_property doesn't need - to change when manipulating shell_input_line. The define for - last_shell_getc_is_singlebyte should take care of it, though. */ -static void -shell_ungetc (c) - int c; -{ - if (shell_input_line && shell_input_line_index) - shell_input_line[--shell_input_line_index] = c; - else - eol_ungetc_lookahead = c; -} - -#ifdef INCLUDE_UNUSED -/* Back the input pointer up by one, effectively `ungetting' a character. */ -static void -shell_ungetchar () -{ - if (shell_input_line && shell_input_line_index) - shell_input_line_index--; -} -#endif - -/* Discard input until CHARACTER is seen, then push that character back - onto the input stream. */ -static void -discard_until (character) - int character; -{ - int c; - - while ((c = shell_getc (0)) != EOF && c != character) - ; - - if (c != EOF) - shell_ungetc (c); -} - -void -execute_prompt_command (command) - char *command; -{ - char *last_lastarg; - sh_parser_state_t ps; - - save_parser_state (&ps); - last_lastarg = get_string_value ("_"); - if (last_lastarg) - last_lastarg = savestring (last_lastarg); - - parse_and_execute (savestring (command), "PROMPT_COMMAND", SEVAL_NONINT|SEVAL_NOHIST); - - restore_parser_state (&ps); - bind_variable ("_", last_lastarg, 0); - FREE (last_lastarg); - - if (token_to_read == '\n') /* reset_parser was called */ - token_to_read = 0; -} - -/* Place to remember the token. We try to keep the buffer - at a reasonable size, but it can grow. */ -static char *token = (char *)NULL; - -/* Current size of the token buffer. */ -static int token_buffer_size; - -/* Command to read_token () explaining what we want it to do. */ -#define READ 0 -#define RESET 1 -#define prompt_is_ps1 \ - (!prompt_string_pointer || prompt_string_pointer == &ps1_prompt) - -/* Function for yyparse to call. yylex keeps track of - the last two tokens read, and calls read_token. */ -static int -yylex () -{ - if (interactive && (current_token == 0 || current_token == '\n')) - { - /* Before we print a prompt, we might have to check mailboxes. - We do this only if it is time to do so. Notice that only here - is the mail alarm reset; nothing takes place in check_mail () - except the checking of mail. Please don't change this. */ - if (prompt_is_ps1 && time_to_check_mail ()) - { - check_mail (); - reset_mail_timer (); - } - - /* Avoid printing a prompt if we're not going to read anything, e.g. - after resetting the parser with read_token (RESET). */ - if (token_to_read == 0 && SHOULD_PROMPT ()) - prompt_again (); - } - - two_tokens_ago = token_before_that; - token_before_that = last_read_token; - last_read_token = current_token; - current_token = read_token (READ); - return (current_token); -} - -/* When non-zero, we have read the required tokens - which allow ESAC to be the next one read. */ -static int esacs_needed_count; - -void -gather_here_documents () -{ - int r = 0; - while (need_here_doc) - { - make_here_document (redir_stack[r++]); - need_here_doc--; - } -} - -/* When non-zero, an open-brace used to create a group is awaiting a close - brace partner. */ -static int open_brace_count; - -#define command_token_position(token) \ - (((token) == ASSIGNMENT_WORD) || \ - ((token) != SEMI_SEMI && reserved_word_acceptable(token))) - -#define assignment_acceptable(token) \ - (command_token_position(token) && ((parser_state & PST_CASEPAT) == 0)) - -/* Check to see if TOKEN is a reserved word and return the token - value if it is. */ -#define CHECK_FOR_RESERVED_WORD(tok) \ - do { \ - if (!dollar_present && !quoted && \ - reserved_word_acceptable (last_read_token)) \ - { \ - int i; \ - for (i = 0; word_token_alist[i].word != (char *)NULL; i++) \ - if (STREQ (tok, word_token_alist[i].word)) \ - { \ - if ((parser_state & PST_CASEPAT) && (word_token_alist[i].token != ESAC)) \ - break; \ - if (word_token_alist[i].token == TIME && time_command_acceptable () == 0) \ - break; \ - if (word_token_alist[i].token == ESAC) \ - parser_state &= ~(PST_CASEPAT|PST_CASESTMT); \ - else if (word_token_alist[i].token == CASE) \ - parser_state |= PST_CASESTMT; \ - else if (word_token_alist[i].token == COND_END) \ - parser_state &= ~(PST_CONDCMD|PST_CONDEXPR); \ - else if (word_token_alist[i].token == COND_START) \ - parser_state |= PST_CONDCMD; \ - else if (word_token_alist[i].token == '{') \ - open_brace_count++; \ - else if (word_token_alist[i].token == '}' && open_brace_count) \ - open_brace_count--; \ - return (word_token_alist[i].token); \ - } \ - } \ - } while (0) - -#if defined (ALIAS) - - /* OK, we have a token. Let's try to alias expand it, if (and only if) - it's eligible. - - It is eligible for expansion if EXPAND_ALIASES is set, and - the token is unquoted and the last token read was a command - separator (or expand_next_token is set), and we are currently - processing an alias (pushed_string_list is non-empty) and this - token is not the same as the current or any previously - processed alias. - - Special cases that disqualify: - In a pattern list in a case statement (parser_state & PST_CASEPAT). */ - -static char * -mk_alexpansion (s) - char *s; -{ - int l; - char *r; - - l = strlen (s); - r = xmalloc (l + 2); - strcpy (r, s); - if (r[l -1] != ' ') - r[l++] = ' '; - r[l] = '\0'; - return r; -} - -static int -alias_expand_token (tokstr) - char *tokstr; -{ - char *expanded; - alias_t *ap; - - if (((parser_state & PST_ALEXPNEXT) || command_token_position (last_read_token)) && - (parser_state & PST_CASEPAT) == 0) - { - ap = find_alias (tokstr); - - /* Currently expanding this token. */ - if (ap && (ap->flags & AL_BEINGEXPANDED)) - return (NO_EXPANSION); - - /* mk_alexpansion puts an extra space on the end of the alias expansion, - so the lookahead by the parser works right. If this gets changed, - make sure the code in shell_getc that deals with reaching the end of - an expanded alias is changed with it. */ - expanded = ap ? mk_alexpansion (ap->value) : (char *)NULL; - - if (expanded) - { - push_string (expanded, ap->flags & AL_EXPANDNEXT, ap); - return (RE_READ_TOKEN); - } - else - /* This is an eligible token that does not have an expansion. */ - return (NO_EXPANSION); - } - return (NO_EXPANSION); -} -#endif /* ALIAS */ - -static int -time_command_acceptable () -{ -#if defined (COMMAND_TIMING) - switch (last_read_token) - { - case 0: - case ';': - case '\n': - case AND_AND: - case OR_OR: - case '&': - case DO: - case THEN: - case ELSE: - case '{': /* } */ - case '(': /* ) */ - return 1; - default: - return 0; - } -#else - return 0; -#endif /* COMMAND_TIMING */ -} - -/* Handle special cases of token recognition: - IN is recognized if the last token was WORD and the token - before that was FOR or CASE or SELECT. - - DO is recognized if the last token was WORD and the token - before that was FOR or SELECT. - - ESAC is recognized if the last token caused `esacs_needed_count' - to be set - - `{' is recognized if the last token as WORD and the token - before that was FUNCTION, or if we just parsed an arithmetic - `for' command. - - `}' is recognized if there is an unclosed `{' present. - - `-p' is returned as TIMEOPT if the last read token was TIME. - - ']]' is returned as COND_END if the parser is currently parsing - a conditional expression ((parser_state & PST_CONDEXPR) != 0) - - `time' is returned as TIME if and only if it is immediately - preceded by one of `;', `\n', `||', `&&', or `&'. -*/ - -static int -special_case_tokens (tokstr) - char *tokstr; -{ - if ((last_read_token == WORD) && -#if defined (SELECT_COMMAND) - ((token_before_that == FOR) || (token_before_that == CASE) || (token_before_that == SELECT)) && -#else - ((token_before_that == FOR) || (token_before_that == CASE)) && -#endif - (tokstr[0] == 'i' && tokstr[1] == 'n' && tokstr[2] == 0)) - { - if (token_before_that == CASE) - { - parser_state |= PST_CASEPAT; - esacs_needed_count++; - } - return (IN); - } - - if (last_read_token == WORD && -#if defined (SELECT_COMMAND) - (token_before_that == FOR || token_before_that == SELECT) && -#else - (token_before_that == FOR) && -#endif - (tokstr[0] == 'd' && tokstr[1] == 'o' && tokstr[2] == '\0')) - return (DO); - - /* Ditto for ESAC in the CASE case. - Specifically, this handles "case word in esac", which is a legal - construct, certainly because someone will pass an empty arg to the - case construct, and we don't want it to barf. Of course, we should - insist that the case construct has at least one pattern in it, but - the designers disagree. */ - if (esacs_needed_count) - { - esacs_needed_count--; - if (STREQ (tokstr, "esac")) - { - parser_state &= ~PST_CASEPAT; - return (ESAC); - } - } - - /* The start of a shell function definition. */ - if (parser_state & PST_ALLOWOPNBRC) - { - parser_state &= ~PST_ALLOWOPNBRC; - if (tokstr[0] == '{' && tokstr[1] == '\0') /* } */ - { - open_brace_count++; - function_bstart = line_number; - return ('{'); /* } */ - } - } - - /* We allow a `do' after a for ((...)) without an intervening - list_terminator */ - if (last_read_token == ARITH_FOR_EXPRS && tokstr[0] == 'd' && tokstr[1] == 'o' && !tokstr[2]) - return (DO); - if (last_read_token == ARITH_FOR_EXPRS && tokstr[0] == '{' && tokstr[1] == '\0') /* } */ - { - open_brace_count++; - return ('{'); /* } */ - } - - if (open_brace_count && reserved_word_acceptable (last_read_token) && tokstr[0] == '}' && !tokstr[1]) - { - open_brace_count--; /* { */ - return ('}'); - } - -#if defined (COMMAND_TIMING) - /* Handle -p after `time'. */ - if (last_read_token == TIME && tokstr[0] == '-' && tokstr[1] == 'p' && !tokstr[2]) - return (TIMEOPT); -#endif - -#if 0 -#if defined (COMMAND_TIMING) - if (STREQ (token, "time") && ((parser_state & PST_CASEPAT) == 0) && time_command_acceptable ()) - return (TIME); -#endif /* COMMAND_TIMING */ -#endif - -#if defined (COND_COMMAND) /* [[ */ - if ((parser_state & PST_CONDEXPR) && tokstr[0] == ']' && tokstr[1] == ']' && tokstr[2] == '\0') - return (COND_END); -#endif - - return (-1); -} - -/* Called from shell.c when Control-C is typed at top level. Or - by the error rule at top level. */ -void -reset_parser () -{ - dstack.delimiter_depth = 0; /* No delimiters found so far. */ - open_brace_count = 0; - - parser_state = 0; - -#if defined (ALIAS) || defined (DPAREN_ARITHMETIC) - if (pushed_string_list) - free_string_list (); -#endif /* ALIAS || DPAREN_ARITHMETIC */ - - if (shell_input_line) - { - free (shell_input_line); - shell_input_line = (char *)NULL; - shell_input_line_size = shell_input_line_index = 0; - } - - FREE (word_desc_to_read); - word_desc_to_read = (WORD_DESC *)NULL; - - last_read_token = '\n'; - token_to_read = '\n'; -} - -/* Read the next token. Command can be READ (normal operation) or - RESET (to normalize state). */ -static int -read_token (command) - int command; -{ - int character; /* Current character. */ - int peek_char; /* Temporary look-ahead character. */ - int result; /* The thing to return. */ - - if (command == RESET) - { - reset_parser (); - return ('\n'); - } - - if (token_to_read) - { - result = token_to_read; - if (token_to_read == WORD || token_to_read == ASSIGNMENT_WORD) - { - yylval.word = word_desc_to_read; - word_desc_to_read = (WORD_DESC *)NULL; - } - token_to_read = 0; - return (result); - } - -#if defined (COND_COMMAND) - if ((parser_state & (PST_CONDCMD|PST_CONDEXPR)) == PST_CONDCMD) - { - cond_lineno = line_number; - parser_state |= PST_CONDEXPR; - yylval.command = parse_cond_command (); - if (cond_token != COND_END) - { - cond_error (); - return (-1); - } - token_to_read = COND_END; - parser_state &= ~(PST_CONDEXPR|PST_CONDCMD); - return (COND_CMD); - } -#endif - -#if defined (ALIAS) - /* This is a place to jump back to once we have successfully expanded a - token with an alias and pushed the string with push_string () */ - re_read_token: -#endif /* ALIAS */ - - /* Read a single word from input. Start by skipping blanks. */ - while ((character = shell_getc (1)) != EOF && whitespace (character)) - ; - - if (character == EOF) - { - EOF_Reached = 1; - return (yacc_EOF); - } - - if MBTEST(character == '#' && (!interactive || interactive_comments)) - { - /* A comment. Discard until EOL or EOF, and then return a newline. */ - discard_until ('\n'); - shell_getc (0); - character = '\n'; /* this will take the next if statement and return. */ - } - - if (character == '\n') - { - /* If we're about to return an unquoted newline, we can go and collect - the text of any pending here document. */ - if (need_here_doc) - gather_here_documents (); - -#if defined (ALIAS) - parser_state &= ~PST_ALEXPNEXT; -#endif /* ALIAS */ - - parser_state &= ~PST_ASSIGNOK; - - return (character); - } - - /* Shell meta-characters. */ - if MBTEST(shellmeta (character) && ((parser_state & PST_DBLPAREN) == 0)) - { -#if defined (ALIAS) - /* Turn off alias tokenization iff this character sequence would - not leave us ready to read a command. */ - if (character == '<' || character == '>') - parser_state &= ~PST_ALEXPNEXT; -#endif /* ALIAS */ - - parser_state &= ~PST_ASSIGNOK; - - peek_char = shell_getc (1); - if (character == peek_char) - { - switch (character) - { - case '<': - /* If '<' then we could be at "<<" or at "<<-". We have to - look ahead one more character. */ - peek_char = shell_getc (1); - if (peek_char == '-') - return (LESS_LESS_MINUS); - else if (peek_char == '<') - return (LESS_LESS_LESS); - else - { - shell_ungetc (peek_char); - return (LESS_LESS); - } - - case '>': - return (GREATER_GREATER); - - case ';': - parser_state |= PST_CASEPAT; -#if defined (ALIAS) - parser_state &= ~PST_ALEXPNEXT; -#endif /* ALIAS */ - - return (SEMI_SEMI); - - case '&': - return (AND_AND); - - case '|': - return (OR_OR); - -#if defined (DPAREN_ARITHMETIC) || defined (ARITH_FOR_COMMAND) - case '(': /* ) */ - result = parse_dparen (character); - if (result == -2) - break; - else - return result; -#endif - } - } - else if MBTEST(character == '<' && peek_char == '&') - return (LESS_AND); - else if MBTEST(character == '>' && peek_char == '&') - return (GREATER_AND); - else if MBTEST(character == '<' && peek_char == '>') - return (LESS_GREATER); - else if MBTEST(character == '>' && peek_char == '|') - return (GREATER_BAR); - else if MBTEST(peek_char == '>' && character == '&') - return (AND_GREATER); - - shell_ungetc (peek_char); - - /* If we look like we are reading the start of a function - definition, then let the reader know about it so that - we will do the right thing with `{'. */ - if MBTEST(character == ')' && last_read_token == '(' && token_before_that == WORD) - { - parser_state |= PST_ALLOWOPNBRC; -#if defined (ALIAS) - parser_state &= ~PST_ALEXPNEXT; -#endif /* ALIAS */ - function_dstart = line_number; - } - - /* case pattern lists may be preceded by an optional left paren. If - we're not trying to parse a case pattern list, the left paren - indicates a subshell. */ - if MBTEST(character == '(' && (parser_state & PST_CASEPAT) == 0) /* ) */ - parser_state |= PST_SUBSHELL; - /*(*/ - else if MBTEST((parser_state & PST_CASEPAT) && character == ')') - parser_state &= ~PST_CASEPAT; - /*(*/ - else if MBTEST((parser_state & PST_SUBSHELL) && character == ')') - parser_state &= ~PST_SUBSHELL; - -#if defined (PROCESS_SUBSTITUTION) - /* Check for the constructs which introduce process substitution. - Shells running in `posix mode' don't do process substitution. */ - if MBTEST(posixly_correct || ((character != '>' && character != '<') || peek_char != '(')) /*)*/ -#endif /* PROCESS_SUBSTITUTION */ - return (character); - } - - /* Hack <&- (close stdin) case. Also <&N- (dup and close). */ - if MBTEST(character == '-' && (last_read_token == LESS_AND || last_read_token == GREATER_AND)) - return (character); - - /* Okay, if we got this far, we have to read a word. Read one, - and then check it against the known ones. */ - result = read_token_word (character); -#if defined (ALIAS) - if (result == RE_READ_TOKEN) - goto re_read_token; -#endif - return result; -} - -/* - * Match a $(...) or other grouping construct. This has to handle embedded - * quoted strings ('', ``, "") and nested constructs. It also must handle - * reprompting the user, if necessary, after reading a newline (unless the - * P_NONL flag is passed), and returning correct error values if it reads - * EOF. - */ -#define P_FIRSTCLOSE 0x01 -#define P_ALLOWESC 0x02 -#define P_DQUOTE 0x04 - -static char matched_pair_error; -static char * -parse_matched_pair (qc, open, close, lenp, flags) - int qc; /* `"' if this construct is within double quotes */ - int open, close; - int *lenp, flags; -{ - int count, ch, was_dollar; - int pass_next_character, nestlen, ttranslen, start_lineno; - char *ret, *nestret, *ttrans; - int retind, retsize, rflags; - - count = 1; - pass_next_character = was_dollar = 0; - - /* RFLAGS is the set of flags we want to pass to recursive calls. */ - rflags = (qc == '"') ? P_DQUOTE : (flags & P_DQUOTE); - - ret = (char *)xmalloc (retsize = 64); - retind = 0; - - start_lineno = line_number; - while (count) - { -#if 0 - ch = shell_getc ((qc != '\'' || (flags & P_ALLOWESC)) && pass_next_character == 0); -#else - ch = shell_getc (qc != '\'' && pass_next_character == 0); -#endif - if (ch == EOF) - { - free (ret); - parser_error (start_lineno, _("unexpected EOF while looking for matching `%c'"), close); - EOF_Reached = 1; /* XXX */ - return (&matched_pair_error); - } - - /* Possible reprompting. */ - if (ch == '\n' && SHOULD_PROMPT ()) - prompt_again (); - - if (pass_next_character) /* last char was backslash */ - { - pass_next_character = 0; - if (qc != '\'' && ch == '\n') /* double-quoted \ disappears. */ - { - if (retind > 0) retind--; /* swallow previously-added backslash */ - continue; - } - - RESIZE_MALLOCED_BUFFER (ret, retind, 2, retsize, 64); - if MBTEST(ch == CTLESC || ch == CTLNUL) - ret[retind++] = CTLESC; - ret[retind++] = ch; - continue; - } - else if MBTEST(ch == CTLESC || ch == CTLNUL) /* special shell escapes */ - { - RESIZE_MALLOCED_BUFFER (ret, retind, 2, retsize, 64); - ret[retind++] = CTLESC; - ret[retind++] = ch; - continue; - } - else if MBTEST(ch == close) /* ending delimiter */ - count--; -#if 1 - /* handle nested ${...} specially. */ - else if MBTEST(open != close && was_dollar && open == '{' && ch == open) /* } */ - count++; -#endif - else if MBTEST(((flags & P_FIRSTCLOSE) == 0) && ch == open) /* nested begin */ - count++; - - /* Add this character. */ - RESIZE_MALLOCED_BUFFER (ret, retind, 1, retsize, 64); - ret[retind++] = ch; - - if (open == '\'') /* '' inside grouping construct */ - { - if MBTEST((flags & P_ALLOWESC) && ch == '\\') - pass_next_character++; - continue; - } - - if MBTEST(ch == '\\') /* backslashes */ - pass_next_character++; - - if (open != close) /* a grouping construct */ - { - if MBTEST(shellquote (ch)) - { - /* '', ``, or "" inside $(...) or other grouping construct. */ - push_delimiter (dstack, ch); - if MBTEST(was_dollar && ch == '\'') /* $'...' inside group */ - nestret = parse_matched_pair (ch, ch, ch, &nestlen, P_ALLOWESC|rflags); - else - nestret = parse_matched_pair (ch, ch, ch, &nestlen, rflags); - pop_delimiter (dstack); - if (nestret == &matched_pair_error) - { - free (ret); - return &matched_pair_error; - } - if MBTEST(was_dollar && ch == '\'' && (extended_quote || (rflags & P_DQUOTE) == 0)) - { - /* Translate $'...' here. */ - ttrans = ansiexpand (nestret, 0, nestlen - 1, &ttranslen); - xfree (nestret); - - nestret = sh_single_quote (ttrans); - free (ttrans); - nestlen = strlen (nestret); - retind -= 2; /* back up before the $' */ - } - else if MBTEST(was_dollar && ch == '"' && (extended_quote || (rflags & P_DQUOTE) == 0)) - { - /* Locale expand $"..." here. */ - ttrans = localeexpand (nestret, 0, nestlen - 1, start_lineno, &ttranslen); - xfree (nestret); - - nestret = sh_mkdoublequoted (ttrans, ttranslen, 0); - free (ttrans); - nestlen = ttranslen + 2; - retind -= 2; /* back up before the $" */ - } - - if (nestlen) - { - RESIZE_MALLOCED_BUFFER (ret, retind, nestlen, retsize, 64); - strcpy (ret + retind, nestret); - retind += nestlen; - } - FREE (nestret); - } - } - /* Parse an old-style command substitution within double quotes as a - single word. */ - /* XXX - sh and ksh93 don't do this - XXX */ - else if MBTEST(open == '"' && ch == '`') - { - nestret = parse_matched_pair (0, '`', '`', &nestlen, rflags); - if (nestret == &matched_pair_error) - { - free (ret); - return &matched_pair_error; - } - if (nestlen) - { - RESIZE_MALLOCED_BUFFER (ret, retind, nestlen, retsize, 64); - strcpy (ret + retind, nestret); - retind += nestlen; - } - FREE (nestret); - } - else if MBTEST(was_dollar && (ch == '(' || ch == '{' || ch == '[')) /* ) } ] */ - /* check for $(), $[], or ${} inside quoted string. */ - { - if (open == ch) /* undo previous increment */ - count--; - if (ch == '(') /* ) */ - nestret = parse_matched_pair (0, '(', ')', &nestlen, rflags); - else if (ch == '{') /* } */ - nestret = parse_matched_pair (0, '{', '}', &nestlen, P_FIRSTCLOSE|rflags); - else if (ch == '[') /* ] */ - nestret = parse_matched_pair (0, '[', ']', &nestlen, rflags); - if (nestret == &matched_pair_error) - { - free (ret); - return &matched_pair_error; - } - if (nestlen) - { - RESIZE_MALLOCED_BUFFER (ret, retind, nestlen, retsize, 64); - strcpy (ret + retind, nestret); - retind += nestlen; - } - FREE (nestret); - } - was_dollar = MBTEST(ch == '$'); - } - - ret[retind] = '\0'; - if (lenp) - *lenp = retind; - return ret; -} - -#if defined (DPAREN_ARITHMETIC) || defined (ARITH_FOR_COMMAND) -/* Parse a double-paren construct. It can be either an arithmetic - command, an arithmetic `for' command, or a nested subshell. Returns - the parsed token, -1 on error, or -2 if we didn't do anything and - should just go on. */ -static int -parse_dparen (c) - int c; -{ - int cmdtyp, len, sline; - char *wval, *wv2; - WORD_DESC *wd; - -#if defined (ARITH_FOR_COMMAND) - if (last_read_token == FOR) - { - arith_for_lineno = line_number; - cmdtyp = parse_arith_cmd (&wval, 0); - if (cmdtyp == 1) - { - wd = alloc_word_desc (); - wd->word = wval; - wd = make_word (wval); - yylval.word_list = make_word_list (wd, (WORD_LIST *)NULL); - return (ARITH_FOR_EXPRS); - } - else - return -1; /* ERROR */ - } -#endif - -#if defined (DPAREN_ARITHMETIC) - if (reserved_word_acceptable (last_read_token)) - { - sline = line_number; - - cmdtyp = parse_arith_cmd (&wval, 0); - if (cmdtyp == 1) /* arithmetic command */ - { - wd = alloc_word_desc (); - wd->word = wval; - wd->flags = W_QUOTED|W_NOSPLIT|W_NOGLOB|W_DQUOTE; - yylval.word_list = make_word_list (wd, (WORD_LIST *)NULL); - return (ARITH_CMD); - } - else if (cmdtyp == 0) /* nested subshell */ - { - push_string (wval, 0, (alias_t *)NULL); - if ((parser_state & PST_CASEPAT) == 0) - parser_state |= PST_SUBSHELL; - return (c); - } - else /* ERROR */ - return -1; - } -#endif - - return -2; /* XXX */ -} - -/* We've seen a `(('. Look for the matching `))'. If we get it, return 1. - If not, assume it's a nested subshell for backwards compatibility and - return 0. In any case, put the characters we've consumed into a locally- - allocated buffer and make *ep point to that buffer. Return -1 on an - error, for example EOF. */ -static int -parse_arith_cmd (ep, adddq) - char **ep; - int adddq; -{ - int exp_lineno, rval, c; - char *ttok, *tokstr; - int ttoklen; - - exp_lineno = line_number; - ttok = parse_matched_pair (0, '(', ')', &ttoklen, 0); - rval = 1; - if (ttok == &matched_pair_error) - return -1; - /* Check that the next character is the closing right paren. If - not, this is a syntax error. ( */ - c = shell_getc (0); - if MBTEST(c != ')') - rval = 0; - - tokstr = (char *)xmalloc (ttoklen + 4); - - /* if ADDDQ != 0 then (( ... )) -> "..." */ - if (rval == 1 && adddq) /* arith cmd, add double quotes */ - { - tokstr[0] = '"'; - strncpy (tokstr + 1, ttok, ttoklen - 1); - tokstr[ttoklen] = '"'; - tokstr[ttoklen+1] = '\0'; - } - else if (rval == 1) /* arith cmd, don't add double quotes */ - { - strncpy (tokstr, ttok, ttoklen - 1); - tokstr[ttoklen-1] = '\0'; - } - else /* nested subshell */ - { - tokstr[0] = '('; - strncpy (tokstr + 1, ttok, ttoklen - 1); - tokstr[ttoklen] = ')'; - tokstr[ttoklen+1] = c; - tokstr[ttoklen+2] = '\0'; - } - - *ep = tokstr; - FREE (ttok); - return rval; -} -#endif /* DPAREN_ARITHMETIC || ARITH_FOR_COMMAND */ - -#if defined (COND_COMMAND) -static void -cond_error () -{ - char *etext; - - if (EOF_Reached && cond_token != COND_ERROR) /* [[ */ - parser_error (cond_lineno, _("unexpected EOF while looking for `]]'")); - else if (cond_token != COND_ERROR) - { - if (etext = error_token_from_token (cond_token)) - { - parser_error (cond_lineno, _("syntax error in conditional expression: unexpected token `%s'"), etext); - free (etext); - } - else - parser_error (cond_lineno, _("syntax error in conditional expression")); - } -} - -static COND_COM * -cond_expr () -{ - return (cond_or ()); -} - -static COND_COM * -cond_or () -{ - COND_COM *l, *r; - - l = cond_and (); - if (cond_token == OR_OR) - { - r = cond_or (); - l = make_cond_node (COND_OR, (WORD_DESC *)NULL, l, r); - } - return l; -} - -static COND_COM * -cond_and () -{ - COND_COM *l, *r; - - l = cond_term (); - if (cond_token == AND_AND) - { - r = cond_and (); - l = make_cond_node (COND_AND, (WORD_DESC *)NULL, l, r); - } - return l; -} - -static int -cond_skip_newlines () -{ - while ((cond_token = read_token (READ)) == '\n') - { - if (SHOULD_PROMPT ()) - prompt_again (); - } - return (cond_token); -} - -#define COND_RETURN_ERROR() \ - do { cond_token = COND_ERROR; return ((COND_COM *)NULL); } while (0) - -static COND_COM * -cond_term () -{ - WORD_DESC *op; - COND_COM *term, *tleft, *tright; - int tok, lineno; - char *etext; - - /* Read a token. It can be a left paren, a `!', a unary operator, or a - word that should be the first argument of a binary operator. Start by - skipping newlines, since this is a compound command. */ - tok = cond_skip_newlines (); - lineno = line_number; - if (tok == COND_END) - { - COND_RETURN_ERROR (); - } - else if (tok == '(') - { - term = cond_expr (); - if (cond_token != ')') - { - if (term) - dispose_cond_node (term); /* ( */ - if (etext = error_token_from_token (cond_token)) - { - parser_error (lineno, _("unexpected token `%s', expected `)'"), etext); - free (etext); - } - else - parser_error (lineno, _("expected `)'")); - COND_RETURN_ERROR (); - } - term = make_cond_node (COND_EXPR, (WORD_DESC *)NULL, term, (COND_COM *)NULL); - (void)cond_skip_newlines (); - } - else if (tok == BANG || (tok == WORD && (yylval.word->word[0] == '!' && yylval.word->word[1] == '\0'))) - { - if (tok == WORD) - dispose_word (yylval.word); /* not needed */ - term = cond_term (); - if (term) - term->flags |= CMD_INVERT_RETURN; - } - else if (tok == WORD && test_unop (yylval.word->word)) - { - op = yylval.word; - tok = read_token (READ); - if (tok == WORD) - { - tleft = make_cond_node (COND_TERM, yylval.word, (COND_COM *)NULL, (COND_COM *)NULL); - term = make_cond_node (COND_UNARY, op, tleft, (COND_COM *)NULL); - } - else - { - dispose_word (op); - if (etext = error_token_from_token (tok)) - { - parser_error (line_number, _("unexpected argument `%s' to conditional unary operator"), etext); - free (etext); - } - else - parser_error (line_number, _("unexpected argument to conditional unary operator")); - COND_RETURN_ERROR (); - } - - (void)cond_skip_newlines (); - } - else if (tok == WORD) /* left argument to binary operator */ - { - /* lhs */ - tleft = make_cond_node (COND_TERM, yylval.word, (COND_COM *)NULL, (COND_COM *)NULL); - - /* binop */ - tok = read_token (READ); - if (tok == WORD && test_binop (yylval.word->word)) - op = yylval.word; -#if defined (COND_REGEXP) - else if (tok == WORD && STREQ (yylval.word->word,"=~")) - op = yylval.word; -#endif - else if (tok == '<' || tok == '>') - op = make_word_from_token (tok); /* ( */ - /* There should be a check before blindly accepting the `)' that we have - seen the opening `('. */ - else if (tok == COND_END || tok == AND_AND || tok == OR_OR || tok == ')') - { - /* Special case. [[ x ]] is equivalent to [[ -n x ]], just like - the test command. Similarly for [[ x && expr ]] or - [[ x || expr ]] or [[ (x) ]]. */ - op = make_word ("-n"); - term = make_cond_node (COND_UNARY, op, tleft, (COND_COM *)NULL); - cond_token = tok; - return (term); - } - else - { - if (etext = error_token_from_token (tok)) - { - parser_error (line_number, _("unexpected token `%s', conditional binary operator expected"), etext); - free (etext); - } - else - parser_error (line_number, _("conditional binary operator expected")); - dispose_cond_node (tleft); - COND_RETURN_ERROR (); - } - - /* rhs */ - tok = read_token (READ); - if (tok == WORD) - { - tright = make_cond_node (COND_TERM, yylval.word, (COND_COM *)NULL, (COND_COM *)NULL); - term = make_cond_node (COND_BINARY, op, tleft, tright); - } - else - { - if (etext = error_token_from_token (tok)) - { - parser_error (line_number, _("unexpected argument `%s' to conditional binary operator"), etext); - free (etext); - } - else - parser_error (line_number, _("unexpected argument to conditional binary operator")); - dispose_cond_node (tleft); - dispose_word (op); - COND_RETURN_ERROR (); - } - - (void)cond_skip_newlines (); - } - else - { - if (tok < 256) - parser_error (line_number, _("unexpected token `%c' in conditional command"), tok); - else if (etext = error_token_from_token (tok)) - { - parser_error (line_number, _("unexpected token `%s' in conditional command"), etext); - free (etext); - } - else - parser_error (line_number, _("unexpected token %d in conditional command"), tok); - COND_RETURN_ERROR (); - } - return (term); -} - -/* This is kind of bogus -- we slip a mini recursive-descent parser in - here to handle the conditional statement syntax. */ -static COMMAND * -parse_cond_command () -{ - COND_COM *cexp; - - cexp = cond_expr (); - return (make_cond_command (cexp)); -} -#endif - -#if defined (ARRAY_VARS) -/* When this is called, it's guaranteed that we don't care about anything - in t beyond i. We do save and restore the chars, though. */ -static int -token_is_assignment (t, i) - char *t; - int i; -{ - unsigned char c, c1; - int r; - - c = t[i]; c1 = t[i+1]; - t[i] = '='; t[i+1] = '\0'; - r = assignment (t, (parser_state & PST_COMPASSIGN) != 0); - t[i] = c; t[i+1] = c1; - return r; -} - -/* XXX - possible changes here for `+=' */ -static int -token_is_ident (t, i) - char *t; - int i; -{ - unsigned char c; - int r; - - c = t[i]; - t[i] = '\0'; - r = legal_identifier (t); - t[i] = c; - return r; -} -#endif - -static int -read_token_word (character) - int character; -{ - /* The value for YYLVAL when a WORD is read. */ - WORD_DESC *the_word; - - /* Index into the token that we are building. */ - int token_index; - - /* ALL_DIGITS becomes zero when we see a non-digit. */ - int all_digit_token; - - /* DOLLAR_PRESENT becomes non-zero if we see a `$'. */ - int dollar_present; - - /* COMPOUND_ASSIGNMENT becomes non-zero if we are parsing a compound - assignment. */ - int compound_assignment; - - /* QUOTED becomes non-zero if we see one of ("), ('), (`), or (\). */ - int quoted; - - /* Non-zero means to ignore the value of the next character, and just - to add it no matter what. */ - int pass_next_character; - - /* The current delimiting character. */ - int cd; - int result, peek_char; - char *ttok, *ttrans; - int ttoklen, ttranslen; - intmax_t lvalue; - - if (token_buffer_size < TOKEN_DEFAULT_INITIAL_SIZE) - token = (char *)xrealloc (token, token_buffer_size = TOKEN_DEFAULT_INITIAL_SIZE); - - token_index = 0; - all_digit_token = DIGIT (character); - dollar_present = quoted = pass_next_character = compound_assignment = 0; - - for (;;) - { - if (character == EOF) - goto got_token; - - if (pass_next_character) - { - pass_next_character = 0; - goto got_character; - } - - cd = current_delimiter (dstack); - - /* Handle backslashes. Quote lots of things when not inside of - double-quotes, quote some things inside of double-quotes. */ - if MBTEST(character == '\\') - { - peek_char = shell_getc (0); - - /* Backslash-newline is ignored in all cases except - when quoted with single quotes. */ - if (peek_char == '\n') - { - character = '\n'; - goto next_character; - } - else - { - shell_ungetc (peek_char); - - /* If the next character is to be quoted, note it now. */ - if (cd == 0 || cd == '`' || - (cd == '"' && peek_char >= 0 && (sh_syntaxtab[peek_char] & CBSDQUOTE))) - pass_next_character++; - - quoted = 1; - goto got_character; - } - } - - /* Parse a matched pair of quote characters. */ - if MBTEST(shellquote (character)) - { - push_delimiter (dstack, character); - ttok = parse_matched_pair (character, character, character, &ttoklen, 0); - pop_delimiter (dstack); - if (ttok == &matched_pair_error) - return -1; /* Bail immediately. */ - RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 2, - token_buffer_size, TOKEN_DEFAULT_GROW_SIZE); - token[token_index++] = character; - strcpy (token + token_index, ttok); - token_index += ttoklen; - all_digit_token = 0; - quoted = 1; - dollar_present |= (character == '"' && strchr (ttok, '$') != 0); - FREE (ttok); - goto next_character; - } - -#ifdef EXTENDED_GLOB - /* Parse a ksh-style extended pattern matching specification. */ - if (extended_glob && PATTERN_CHAR (character)) - { - peek_char = shell_getc (1); - if MBTEST(peek_char == '(') /* ) */ - { - push_delimiter (dstack, peek_char); - ttok = parse_matched_pair (cd, '(', ')', &ttoklen, 0); - pop_delimiter (dstack); - if (ttok == &matched_pair_error) - return -1; /* Bail immediately. */ - RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 2, - token_buffer_size, - TOKEN_DEFAULT_GROW_SIZE); - token[token_index++] = character; - token[token_index++] = peek_char; - strcpy (token + token_index, ttok); - token_index += ttoklen; - FREE (ttok); - dollar_present = all_digit_token = 0; - goto next_character; - } - else - shell_ungetc (peek_char); - } -#endif /* EXTENDED_GLOB */ - - /* If the delimiter character is not single quote, parse some of - the shell expansions that must be read as a single word. */ - if (shellexp (character)) - { - peek_char = shell_getc (1); - /* $(...), <(...), >(...), $((...)), ${...}, and $[...] constructs */ - if MBTEST(peek_char == '(' || \ - ((peek_char == '{' || peek_char == '[') && character == '$')) /* ) ] } */ - { - if (peek_char == '{') /* } */ - ttok = parse_matched_pair (cd, '{', '}', &ttoklen, P_FIRSTCLOSE); - else if (peek_char == '(') /* ) */ - { - /* XXX - push and pop the `(' as a delimiter for use by - the command-oriented-history code. This way newlines - appearing in the $(...) string get added to the - history literally rather than causing a possibly- - incorrect `;' to be added. ) */ - push_delimiter (dstack, peek_char); - ttok = parse_matched_pair (cd, '(', ')', &ttoklen, 0); - pop_delimiter (dstack); - } - else - ttok = parse_matched_pair (cd, '[', ']', &ttoklen, 0); - if (ttok == &matched_pair_error) - return -1; /* Bail immediately. */ - RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 2, - token_buffer_size, - TOKEN_DEFAULT_GROW_SIZE); - token[token_index++] = character; - token[token_index++] = peek_char; - strcpy (token + token_index, ttok); - token_index += ttoklen; - FREE (ttok); - dollar_present = 1; - all_digit_token = 0; - goto next_character; - } - /* This handles $'...' and $"..." new-style quoted strings. */ - else if MBTEST(character == '$' && (peek_char == '\'' || peek_char == '"')) - { - int first_line; - - first_line = line_number; - push_delimiter (dstack, peek_char); - ttok = parse_matched_pair (peek_char, peek_char, peek_char, - &ttoklen, - (peek_char == '\'') ? P_ALLOWESC : 0); - pop_delimiter (dstack); - if (ttok == &matched_pair_error) - return -1; - if (peek_char == '\'') - { - ttrans = ansiexpand (ttok, 0, ttoklen - 1, &ttranslen); - free (ttok); - - /* Insert the single quotes and correctly quote any - embedded single quotes (allowed because P_ALLOWESC was - passed to parse_matched_pair). */ - ttok = sh_single_quote (ttrans); - free (ttrans); - ttranslen = strlen (ttok); - ttrans = ttok; - } - else - { - /* Try to locale)-expand the converted string. */ - ttrans = localeexpand (ttok, 0, ttoklen - 1, first_line, &ttranslen); - free (ttok); - - /* Add the double quotes back */ - ttok = sh_mkdoublequoted (ttrans, ttranslen, 0); - free (ttrans); - ttranslen += 2; - ttrans = ttok; - } - - RESIZE_MALLOCED_BUFFER (token, token_index, ttranslen + 2, - token_buffer_size, - TOKEN_DEFAULT_GROW_SIZE); - strcpy (token + token_index, ttrans); - token_index += ttranslen; - FREE (ttrans); - quoted = 1; - all_digit_token = 0; - goto next_character; - } - /* This could eventually be extended to recognize all of the - shell's single-character parameter expansions, and set flags.*/ - else if MBTEST(character == '$' && peek_char == '$') - { - ttok = (char *)xmalloc (3); - ttok[0] = ttok[1] = '$'; - ttok[2] = '\0'; - RESIZE_MALLOCED_BUFFER (token, token_index, 3, - token_buffer_size, - TOKEN_DEFAULT_GROW_SIZE); - strcpy (token + token_index, ttok); - token_index += 2; - dollar_present = 1; - all_digit_token = 0; - FREE (ttok); - goto next_character; - } - else - shell_ungetc (peek_char); - } - -#if defined (ARRAY_VARS) - /* Identify possible array subscript assignment; match [...] */ - else if MBTEST(character == '[' && token_index > 0 && assignment_acceptable (last_read_token) && token_is_ident (token, token_index)) /* ] */ - { - ttok = parse_matched_pair (cd, '[', ']', &ttoklen, 0); - if (ttok == &matched_pair_error) - return -1; /* Bail immediately. */ - RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 2, - token_buffer_size, - TOKEN_DEFAULT_GROW_SIZE); - token[token_index++] = character; - strcpy (token + token_index, ttok); - token_index += ttoklen; - FREE (ttok); - all_digit_token = 0; - goto next_character; - } - /* Identify possible compound array variable assignment. */ - else if MBTEST(character == '=' && token_index > 0 && (assignment_acceptable (last_read_token) || (parser_state & PST_ASSIGNOK)) && token_is_assignment (token, token_index)) - { - peek_char = shell_getc (1); - if MBTEST(peek_char == '(') /* ) */ - { - ttok = parse_compound_assignment (&ttoklen); - - RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 4, - token_buffer_size, - TOKEN_DEFAULT_GROW_SIZE); - - token[token_index++] = '='; - token[token_index++] = '('; - if (ttok) - { - strcpy (token + token_index, ttok); - token_index += ttoklen; - } - token[token_index++] = ')'; - FREE (ttok); - all_digit_token = 0; - compound_assignment = 1; -#if 0 - goto next_character; -#else - goto got_token; /* ksh93 seems to do this */ -#endif - } - else - shell_ungetc (peek_char); - } -#endif - - /* When not parsing a multi-character word construct, shell meta- - characters break words. */ - if MBTEST(shellbreak (character)) - { - shell_ungetc (character); - goto got_token; - } - - got_character: - - all_digit_token &= DIGIT (character); - dollar_present |= character == '$'; - - if (character == CTLESC || character == CTLNUL) - token[token_index++] = CTLESC; - - token[token_index++] = character; - - RESIZE_MALLOCED_BUFFER (token, token_index, 1, token_buffer_size, - TOKEN_DEFAULT_GROW_SIZE); - - next_character: - if (character == '\n' && SHOULD_PROMPT ()) - prompt_again (); - - /* We want to remove quoted newlines (that is, a \ pair) - unless we are within single quotes or pass_next_character is - set (the shell equivalent of literal-next). */ - cd = current_delimiter (dstack); - character = shell_getc (cd != '\'' && pass_next_character == 0); - } /* end for (;;) */ - -got_token: - - token[token_index] = '\0'; - - /* Check to see what thing we should return. If the last_read_token - is a `<', or a `&', or the character which ended this token is - a '>' or '<', then, and ONLY then, is this input token a NUMBER. - Otherwise, it is just a word, and should be returned as such. */ - if MBTEST(all_digit_token && (character == '<' || character == '>' || \ - last_read_token == LESS_AND || \ - last_read_token == GREATER_AND)) - { - if (legal_number (token, &lvalue) && (int)lvalue == lvalue) - yylval.number = lvalue; - else - yylval.number = -1; - return (NUMBER); - } - - /* Check for special case tokens. */ - result = (last_shell_getc_is_singlebyte) ? special_case_tokens (token) : -1; - if (result >= 0) - return result; - -#if defined (ALIAS) - /* Posix.2 does not allow reserved words to be aliased, so check for all - of them, including special cases, before expanding the current token - as an alias. */ - if MBTEST(posixly_correct) - CHECK_FOR_RESERVED_WORD (token); - - /* Aliases are expanded iff EXPAND_ALIASES is non-zero, and quoting - inhibits alias expansion. */ - if (expand_aliases && quoted == 0) - { - result = alias_expand_token (token); - if (result == RE_READ_TOKEN) - return (RE_READ_TOKEN); - else if (result == NO_EXPANSION) - parser_state &= ~PST_ALEXPNEXT; - } - - /* If not in Posix.2 mode, check for reserved words after alias - expansion. */ - if MBTEST(posixly_correct == 0) -#endif - CHECK_FOR_RESERVED_WORD (token); - - the_word = (WORD_DESC *)xmalloc (sizeof (WORD_DESC)); - the_word->word = (char *)xmalloc (1 + token_index); - the_word->flags = 0; - strcpy (the_word->word, token); - if (dollar_present) - the_word->flags |= W_HASDOLLAR; - if (quoted) - the_word->flags |= W_QUOTED; - if (compound_assignment) - the_word->flags |= W_COMPASSIGN; - /* A word is an assignment if it appears at the beginning of a - simple command, or after another assignment word. This is - context-dependent, so it cannot be handled in the grammar. */ - if (assignment (token, (parser_state & PST_COMPASSIGN) != 0)) - { - the_word->flags |= W_ASSIGNMENT; - /* Don't perform word splitting on assignment statements. */ - if (assignment_acceptable (last_read_token) || (parser_state & PST_COMPASSIGN) != 0) - the_word->flags |= W_NOSPLIT; - } - - if (command_token_position (last_read_token)) - { - struct builtin *b; - b = builtin_address_internal (token, 0); - if (b && (b->flags & ASSIGNMENT_BUILTIN)) - parser_state |= PST_ASSIGNOK; - } - - yylval.word = the_word; - - result = ((the_word->flags & (W_ASSIGNMENT|W_NOSPLIT)) == (W_ASSIGNMENT|W_NOSPLIT)) - ? ASSIGNMENT_WORD : WORD; - - switch (last_read_token) - { - case FUNCTION: - parser_state |= PST_ALLOWOPNBRC; - function_dstart = line_number; - break; - case CASE: - case SELECT: - case FOR: - if (word_top < MAX_CASE_NEST) - word_top++; - word_lineno[word_top] = line_number; - break; - } - - return (result); -} - -/* Return 1 if TOKSYM is a token that after being read would allow - a reserved word to be seen, else 0. */ -static int -reserved_word_acceptable (toksym) - int toksym; -{ - switch (toksym) - { - case '\n': - case ';': - case '(': - case ')': - case '|': - case '&': - case '{': - case '}': /* XXX */ - case AND_AND: - case BANG: - case DO: - case DONE: - case ELIF: - case ELSE: - case ESAC: - case FI: - case IF: - case OR_OR: - case SEMI_SEMI: - case THEN: - case TIME: - case TIMEOPT: - case UNTIL: - case WHILE: - case 0: - return 1; - default: - return 0; - } -} - -/* Return the index of TOKEN in the alist of reserved words, or -1 if - TOKEN is not a shell reserved word. */ -int -find_reserved_word (tokstr) - char *tokstr; -{ - int i; - for (i = 0; word_token_alist[i].word; i++) - if (STREQ (tokstr, word_token_alist[i].word)) - return i; - return -1; -} - -#if 0 -#if defined (READLINE) -/* Called after each time readline is called. This insures that whatever - the new prompt string is gets propagated to readline's local prompt - variable. */ -static void -reset_readline_prompt () -{ - char *temp_prompt; - - if (prompt_string_pointer) - { - temp_prompt = (*prompt_string_pointer) - ? decode_prompt_string (*prompt_string_pointer) - : (char *)NULL; - - if (temp_prompt == 0) - { - temp_prompt = (char *)xmalloc (1); - temp_prompt[0] = '\0'; - } - - FREE (current_readline_prompt); - current_readline_prompt = temp_prompt; - } -} -#endif /* READLINE */ -#endif /* 0 */ - -#if defined (HISTORY) -/* A list of tokens which can be followed by newlines, but not by - semi-colons. When concatenating multiple lines of history, the - newline separator for such tokens is replaced with a space. */ -static int no_semi_successors[] = { - '\n', '{', '(', ')', ';', '&', '|', - CASE, DO, ELSE, IF, SEMI_SEMI, THEN, UNTIL, WHILE, AND_AND, OR_OR, IN, - 0 -}; - -/* If we are not within a delimited expression, try to be smart - about which separators can be semi-colons and which must be - newlines. Returns the string that should be added into the - history entry. */ -char * -history_delimiting_chars () -{ - register int i; - - if (dstack.delimiter_depth != 0) - return ("\n"); - - /* First, handle some special cases. */ - /*(*/ - /* If we just read `()', assume it's a function definition, and don't - add a semicolon. If the token before the `)' was not `(', and we're - not in the midst of parsing a case statement, assume it's a - parenthesized command and add the semicolon. */ - /*)(*/ - if (token_before_that == ')') - { - if (two_tokens_ago == '(') /*)*/ /* function def */ - return " "; - /* This does not work for subshells inside case statement - command lists. It's a suboptimal solution. */ - else if (parser_state & PST_CASESTMT) /* case statement pattern */ - return " "; - else - return "; "; /* (...) subshell */ - } - else if (token_before_that == WORD && two_tokens_ago == FUNCTION) - return " "; /* function def using `function name' without `()' */ - - else if (token_before_that == WORD && two_tokens_ago == FOR) - { - /* Tricky. `for i\nin ...' should not have a semicolon, but - `for i\ndo ...' should. We do what we can. */ - for (i = shell_input_line_index; whitespace(shell_input_line[i]); i++) - ; - if (shell_input_line[i] && shell_input_line[i] == 'i' && shell_input_line[i+1] == 'n') - return " "; - return ";"; - } - else if (two_tokens_ago == CASE && token_before_that == WORD && (parser_state & PST_CASESTMT)) - return " "; - - for (i = 0; no_semi_successors[i]; i++) - { - if (token_before_that == no_semi_successors[i]) - return (" "); - } - - return ("; "); -} -#endif /* HISTORY */ - -/* Issue a prompt, or prepare to issue a prompt when the next character - is read. */ -static void -prompt_again () -{ - char *temp_prompt; - - if (interactive == 0 || expanding_alias()) /* XXX */ - return; - - ps1_prompt = get_string_value ("PS1"); - ps2_prompt = get_string_value ("PS2"); - - if (!prompt_string_pointer) - prompt_string_pointer = &ps1_prompt; - - temp_prompt = *prompt_string_pointer - ? decode_prompt_string (*prompt_string_pointer) - : (char *)NULL; - - if (temp_prompt == 0) - { - temp_prompt = (char *)xmalloc (1); - temp_prompt[0] = '\0'; - } - - current_prompt_string = *prompt_string_pointer; - prompt_string_pointer = &ps2_prompt; - -#if defined (READLINE) - if (!no_line_editing) - { - FREE (current_readline_prompt); - current_readline_prompt = temp_prompt; - } - else -#endif /* READLINE */ - { - FREE (current_decoded_prompt); - current_decoded_prompt = temp_prompt; - } -} - -int -get_current_prompt_level () -{ - return ((current_prompt_string && current_prompt_string == ps2_prompt) ? 2 : 1); -} - -void -set_current_prompt_level (x) - int x; -{ - prompt_string_pointer = (x == 2) ? &ps2_prompt : &ps1_prompt; - current_prompt_string = *prompt_string_pointer; -} - -static void -print_prompt () -{ - fprintf (stderr, "%s", current_decoded_prompt); - fflush (stderr); -} - -/* Return a string which will be printed as a prompt. The string - may contain special characters which are decoded as follows: - - \a bell (ascii 07) - \d the date in Day Mon Date format - \e escape (ascii 033) - \h the hostname up to the first `.' - \H the hostname - \j the number of active jobs - \l the basename of the shell's tty device name - \n CRLF - \r CR - \s the name of the shell - \t the time in 24-hour hh:mm:ss format - \T the time in 12-hour hh:mm:ss format - \@ the time in 12-hour hh:mm am/pm format - \A the time in 24-hour hh:mm format - \D{fmt} the result of passing FMT to strftime(3) - \u your username - \v the version of bash (e.g., 2.00) - \V the release of bash, version + patchlevel (e.g., 2.00.0) - \w the current working directory - \W the last element of $PWD - \! the history number of this command - \# the command number of this command - \$ a $ or a # if you are root - \nnn character code nnn in octal - \\ a backslash - \[ begin a sequence of non-printing chars - \] end a sequence of non-printing chars -*/ -#define PROMPT_GROWTH 48 -char * -decode_prompt_string (string) - char *string; -{ - WORD_LIST *list; - char *result, *t; - struct dstack save_dstack; - int last_exit_value; -#if defined (PROMPT_STRING_DECODE) - int result_size, result_index; - int c, n; - char *temp, octal_string[4]; - struct tm *tm; - time_t the_time; - char timebuf[128]; - char *timefmt; - - result = (char *)xmalloc (result_size = PROMPT_GROWTH); - result[result_index = 0] = 0; - temp = (char *)NULL; - - while (c = *string++) - { - if (posixly_correct && c == '!') - { - if (*string == '!') - { - temp = savestring ("!"); - goto add_string; - } - else - { -#if !defined (HISTORY) - temp = savestring ("1"); -#else /* HISTORY */ - temp = itos (history_number ()); -#endif /* HISTORY */ - string--; /* add_string increments string again. */ - goto add_string; - } - } - if (c == '\\') - { - c = *string; - - switch (c) - { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - strncpy (octal_string, string, 3); - octal_string[3] = '\0'; - - n = read_octal (octal_string); - temp = (char *)xmalloc (3); - - if (n == CTLESC || n == CTLNUL) - { - temp[0] = CTLESC; - temp[1] = n; - temp[2] = '\0'; - } - else if (n == -1) - { - temp[0] = '\\'; - temp[1] = '\0'; - } - else - { - temp[0] = n; - temp[1] = '\0'; - } - - for (c = 0; n != -1 && c < 3 && ISOCTAL (*string); c++) - string++; - - c = 0; /* tested at add_string: */ - goto add_string; - - case 'd': - case 't': - case 'T': - case '@': - case 'A': - /* Make the current time/date into a string. */ - (void) time (&the_time); - tm = localtime (&the_time); - - if (c == 'd') - n = strftime (timebuf, sizeof (timebuf), "%a %b %d", tm); - else if (c == 't') - n = strftime (timebuf, sizeof (timebuf), "%H:%M:%S", tm); - else if (c == 'T') - n = strftime (timebuf, sizeof (timebuf), "%I:%M:%S", tm); - else if (c == '@') - n = strftime (timebuf, sizeof (timebuf), "%I:%M %p", tm); - else if (c == 'A') - n = strftime (timebuf, sizeof (timebuf), "%H:%M", tm); - - if (n == 0) - timebuf[0] = '\0'; - else - timebuf[sizeof(timebuf) - 1] = '\0'; - - temp = savestring (timebuf); - goto add_string; - - case 'D': /* strftime format */ - if (string[1] != '{') /* } */ - goto not_escape; - - (void) time (&the_time); - tm = localtime (&the_time); - string += 2; /* skip { */ - timefmt = xmalloc (strlen (string) + 3); - for (t = timefmt; *string && *string != '}'; ) - *t++ = *string++; - *t = '\0'; - c = *string; /* tested at add_string */ - if (timefmt[0] == '\0') - { - timefmt[0] = '%'; - timefmt[1] = 'X'; /* locale-specific current time */ - timefmt[2] = '\0'; - } - n = strftime (timebuf, sizeof (timebuf), timefmt, tm); - free (timefmt); - - if (n == 0) - timebuf[0] = '\0'; - else - timebuf[sizeof(timebuf) - 1] = '\0'; - - if (promptvars || posixly_correct) - /* Make sure that expand_prompt_string is called with a - second argument of Q_DOUBLE_QUOTES if we use this - function here. */ - temp = sh_backslash_quote_for_double_quotes (timebuf); - else - temp = savestring (timebuf); - goto add_string; - - case 'n': - temp = (char *)xmalloc (3); - temp[0] = no_line_editing ? '\n' : '\r'; - temp[1] = no_line_editing ? '\0' : '\n'; - temp[2] = '\0'; - goto add_string; - - case 's': - temp = base_pathname (shell_name); - temp = savestring (temp); - goto add_string; - - case 'v': - case 'V': - temp = (char *)xmalloc (16); - if (c == 'v') - strcpy (temp, dist_version); - else - sprintf (temp, "%s.%d", dist_version, patch_level); - goto add_string; - - case 'w': - case 'W': - { - /* Use the value of PWD because it is much more efficient. */ - char t_string[PATH_MAX], *t; - int tlen; - - temp = get_string_value ("PWD"); - - if (temp == 0) - { - if (getcwd (t_string, sizeof(t_string)) == 0) - { - 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'; - -#define ROOT_PATH(x) ((x)[0] == '/' && (x)[1] == 0) -#define DOUBLE_SLASH_ROOT(x) ((x)[0] == '/' && (x)[1] == '/' && (x)[2] == 0) - /* Abbreviate \W as ~ if $PWD == $HOME */ - if (c == 'W' && (((t = get_string_value ("HOME")) == 0) || STREQ (t, t_string) == 0)) - { - if (ROOT_PATH (t_string) == 0 && DOUBLE_SLASH_ROOT (t_string) == 0) - { - t = strrchr (t_string, '/'); - if (t) - strcpy (t_string, t + 1); - } - } -#undef ROOT_PATH -#undef DOUBLE_SLASH_ROOT - else - /* polite_directory_format is guaranteed to return a string - no longer than PATH_MAX - 1 characters. */ - strcpy (t_string, polite_directory_format (t_string)); - - /* If we're going to be expanding the prompt string later, - quote the directory name. */ - if (promptvars || posixly_correct) - /* Make sure that expand_prompt_string is called with a - second argument of Q_DOUBLE_QUOTES if we use this - function here. */ - temp = sh_backslash_quote_for_double_quotes (t_string); - else - temp = savestring (t_string); - - goto add_string; - } - - case 'u': - if (current_user.user_name == 0) - get_current_user_info (); - temp = savestring (current_user.user_name); - goto add_string; - - case 'h': - case 'H': - temp = savestring (current_host_name); - if (c == 'h' && (t = (char *)strchr (temp, '.'))) - *t = '\0'; - goto add_string; - - case '#': - temp = itos (current_command_number); - goto add_string; - - case '!': -#if !defined (HISTORY) - temp = savestring ("1"); -#else /* HISTORY */ - temp = itos (history_number ()); -#endif /* HISTORY */ - goto add_string; - - case '$': - t = temp = (char *)xmalloc (3); - if ((promptvars || posixly_correct) && (current_user.euid != 0)) - *t++ = '\\'; - *t++ = current_user.euid == 0 ? '#' : '$'; - *t = '\0'; - goto add_string; - - case 'j': - temp = itos (count_all_jobs ()); - goto add_string; - - case 'l': -#if defined (HAVE_TTYNAME) - temp = (char *)ttyname (fileno (stdin)); - t = temp ? base_pathname (temp) : "tty"; - temp = savestring (t); -#else - temp = savestring ("tty"); -#endif /* !HAVE_TTYNAME */ - goto add_string; - -#if defined (READLINE) - case '[': - case ']': - if (no_line_editing) - { - string++; - break; - } - temp = (char *)xmalloc (3); - temp[0] = '\001'; - temp[1] = (c == '[') ? RL_PROMPT_START_IGNORE : RL_PROMPT_END_IGNORE; - temp[2] = '\0'; - goto add_string; -#endif /* READLINE */ - - case '\\': - case 'a': - case 'e': - case 'r': - temp = (char *)xmalloc (2); - if (c == 'a') - temp[0] = '\07'; - else if (c == 'e') - temp[0] = '\033'; - else if (c == 'r') - temp[0] = '\r'; - else /* (c == '\\') */ - temp[0] = c; - temp[1] = '\0'; - goto add_string; - - default: -not_escape: - temp = (char *)xmalloc (3); - temp[0] = '\\'; - temp[1] = c; - temp[2] = '\0'; - - add_string: - if (c) - string++; - result = - sub_append_string (temp, result, &result_index, &result_size); - temp = (char *)NULL; /* Freed in sub_append_string (). */ - result[result_index] = '\0'; - break; - } - } - else - { - RESIZE_MALLOCED_BUFFER (result, result_index, 3, result_size, PROMPT_GROWTH); - result[result_index++] = c; - result[result_index] = '\0'; - } - } -#else /* !PROMPT_STRING_DECODE */ - result = savestring (string); -#endif /* !PROMPT_STRING_DECODE */ - - /* Save the delimiter stack and point `dstack' to temp space so any - command substitutions in the prompt string won't result in screwing - up the parser's quoting state. */ - save_dstack = dstack; - dstack = temp_dstack; - dstack.delimiter_depth = 0; - - /* Perform variable and parameter expansion and command substitution on - the prompt string. */ - if (promptvars || posixly_correct) - { - last_exit_value = last_command_exit_value; - list = expand_prompt_string (result, Q_DOUBLE_QUOTES); - free (result); - result = string_list (list); - dispose_words (list); - last_command_exit_value = last_exit_value; - } - else - { - t = dequote_string (result); - free (result); - result = t; - } - - dstack = save_dstack; - - return (result); -} - -/************************************************ - * * - * ERROR HANDLING * - * * - ************************************************/ - -/* Report a syntax error, and restart the parser. Call here for fatal - errors. */ -int -yyerror (msg) - const char *msg; -{ - report_syntax_error ((char *)NULL); - reset_parser (); - return (0); -} - -static char * -error_token_from_token (token) - int token; -{ - char *t; - - if (t = find_token_in_alist (token, word_token_alist, 0)) - return t; - - if (t = find_token_in_alist (token, other_token_alist, 0)) - return t; - - t = (char *)NULL; - /* This stuff is dicy and needs closer inspection */ - switch (current_token) - { - case WORD: - case ASSIGNMENT_WORD: - if (yylval.word) - t = savestring (yylval.word->word); - break; - case NUMBER: - t = itos (yylval.number); - break; - case ARITH_CMD: - if (yylval.word_list) - t = string_list (yylval.word_list); - break; - case ARITH_FOR_EXPRS: - if (yylval.word_list) - t = string_list_internal (yylval.word_list, " ; "); - break; - case COND_CMD: - t = (char *)NULL; /* punt */ - break; - } - - return t; -} - -static char * -error_token_from_text () -{ - char *msg, *t; - int token_end, i; - - t = shell_input_line; - i = shell_input_line_index; - token_end = 0; - msg = (char *)NULL; - - if (i && t[i] == '\0') - i--; - - while (i && (whitespace (t[i]) || t[i] == '\n')) - i--; - - if (i) - token_end = i + 1; - - while (i && (member (t[i], " \n\t;|&") == 0)) - i--; - - while (i != token_end && (whitespace (t[i]) || t[i] == '\n')) - i++; - - /* Return our idea of the offending token. */ - if (token_end || (i == 0 && token_end == 0)) - { - if (token_end) - msg = substring (t, i, token_end); - else /* one-character token */ - { - msg = (char *)xmalloc (2); - msg[0] = t[i]; - msg[1] = '\0'; - } - } - - return (msg); -} - -static void -print_offending_line () -{ - char *msg; - int token_end; - - msg = savestring (shell_input_line); - token_end = strlen (msg); - while (token_end && msg[token_end - 1] == '\n') - msg[--token_end] = '\0'; - - parser_error (line_number, "`%s'", msg); - free (msg); -} - -/* Report a syntax error with line numbers, etc. - Call here for recoverable errors. If you have a message to print, - then place it in MESSAGE, otherwise pass NULL and this will figure - out an appropriate message for you. */ -static void -report_syntax_error (message) - char *message; -{ - char *msg; - - if (message) - { - parser_error (line_number, "%s", message); - if (interactive && EOF_Reached) - EOF_Reached = 0; - last_command_exit_value = EX_USAGE; - return; - } - - /* If the line of input we're reading is not null, try to find the - objectionable token. First, try to figure out what token the - parser's complaining about by looking at current_token. */ - if (current_token != 0 && EOF_Reached == 0 && (msg = error_token_from_token (current_token))) - { - parser_error (line_number, _("syntax error near unexpected token `%s'"), msg); - free (msg); - - if (interactive == 0) - print_offending_line (); - - last_command_exit_value = EX_USAGE; - return; - } - - /* If looking at the current token doesn't prove fruitful, try to find the - offending token by analyzing the text of the input line near the current - input line index and report what we find. */ - if (shell_input_line && *shell_input_line) - { - msg = error_token_from_text (); - if (msg) - { - parser_error (line_number, _("syntax error near `%s'"), msg); - free (msg); - } - - /* If not interactive, print the line containing the error. */ - if (interactive == 0) - print_offending_line (); - } - else - { - msg = EOF_Reached ? _("syntax error: unexpected end of file") : _("syntax error"); - parser_error (line_number, "%s", msg); - /* When the shell is interactive, this file uses EOF_Reached - only for error reporting. Other mechanisms are used to - decide whether or not to exit. */ - if (interactive && EOF_Reached) - EOF_Reached = 0; - } - - last_command_exit_value = EX_USAGE; -} - -/* ??? Needed function. ??? We have to be able to discard the constructs - created during parsing. In the case of error, we want to return - allocated objects to the memory pool. In the case of no error, we want - to throw away the information about where the allocated objects live. - (dispose_command () will actually free the command.) */ -static void -discard_parser_constructs (error_p) - int error_p; -{ -} - -/************************************************ - * * - * EOF HANDLING * - * * - ************************************************/ - -/* Do that silly `type "bye" to exit' stuff. You know, "ignoreeof". */ - -/* A flag denoting whether or not ignoreeof is set. */ -int ignoreeof = 0; - -/* The number of times that we have encountered an EOF character without - another character intervening. When this gets above the limit, the - shell terminates. */ -int eof_encountered = 0; - -/* The limit for eof_encountered. */ -int eof_encountered_limit = 10; - -/* If we have EOF as the only input unit, this user wants to leave - the shell. If the shell is not interactive, then just leave. - Otherwise, if ignoreeof is set, and we haven't done this the - required number of times in a row, print a message. */ -static void -handle_eof_input_unit () -{ - if (interactive) - { - /* shell.c may use this to decide whether or not to write out the - history, among other things. We use it only for error reporting - in this file. */ - if (EOF_Reached) - EOF_Reached = 0; - - /* If the user wants to "ignore" eof, then let her do so, kind of. */ - if (ignoreeof) - { - if (eof_encountered < eof_encountered_limit) - { - fprintf (stderr, _("Use \"%s\" to leave the shell.\n"), - login_shell ? "logout" : "exit"); - eof_encountered++; - /* Reset the parsing state. */ - last_read_token = current_token = '\n'; - /* Reset the prompt string to be $PS1. */ - prompt_string_pointer = (char **)NULL; - prompt_again (); - return; - } - } - - /* In this case EOF should exit the shell. Do it now. */ - reset_parser (); - exit_builtin ((WORD_LIST *)NULL); - } - else - { - /* We don't write history files, etc., for non-interactive shells. */ - EOF_Reached = 1; - } -} - -/************************************************ - * * - * STRING PARSING FUNCTIONS * - * * - ************************************************/ - -/* It's very important that these two functions treat the characters - between ( and ) identically. */ - -static WORD_LIST parse_string_error; - -/* Take a string and run it through the shell parser, returning the - resultant word list. Used by compound array assignment. */ -WORD_LIST * -parse_string_to_word_list (s, flags, whom) - char *s; - int flags; - const char *whom; -{ - WORD_LIST *wl; - int tok, orig_current_token, orig_line_number, orig_input_terminator; - int orig_line_count; - int old_echo_input, old_expand_aliases; -#if defined (HISTORY) - int old_remember_on_history, old_history_expansion_inhibited; -#endif - -#if defined (HISTORY) - old_remember_on_history = remember_on_history; -# if defined (BANG_HISTORY) - old_history_expansion_inhibited = history_expansion_inhibited; -# endif - bash_history_disable (); -#endif - - orig_line_number = line_number; - orig_line_count = current_command_line_count; - orig_input_terminator = shell_input_line_terminator; - old_echo_input = echo_input_at_read; - old_expand_aliases = expand_aliases; - - push_stream (1); - last_read_token = WORD; /* WORD to allow reserved words here */ - current_command_line_count = 0; - echo_input_at_read = expand_aliases = 0; - - with_input_from_string (s, whom); - wl = (WORD_LIST *)NULL; - - if (flags & 1) - parser_state |= PST_COMPASSIGN; - - while ((tok = read_token (READ)) != yacc_EOF) - { - if (tok == '\n' && *bash_input.location.string == '\0') - break; - if (tok == '\n') /* Allow newlines in compound assignments */ - continue; - if (tok != WORD && tok != ASSIGNMENT_WORD) - { - line_number = orig_line_number + line_number - 1; - orig_current_token = current_token; - current_token = tok; - yyerror (NULL); /* does the right thing */ - current_token = orig_current_token; - if (wl) - dispose_words (wl); - wl = &parse_string_error; - break; - } - wl = make_word_list (yylval.word, wl); - } - - last_read_token = '\n'; - pop_stream (); - -#if defined (HISTORY) - remember_on_history = old_remember_on_history; -# if defined (BANG_HISTORY) - history_expansion_inhibited = old_history_expansion_inhibited; -# endif /* BANG_HISTORY */ -#endif /* HISTORY */ - - echo_input_at_read = old_echo_input; - expand_aliases = old_expand_aliases; - - current_command_line_count = orig_line_count; - shell_input_line_terminator = orig_input_terminator; - - if (flags & 1) - parser_state &= ~PST_COMPASSIGN; - - if (wl == &parse_string_error) - { - last_command_exit_value = EXECUTION_FAILURE; - if (interactive_shell == 0 && posixly_correct) - jump_to_top_level (FORCE_EOF); - else - jump_to_top_level (DISCARD); - } - - return (REVERSE_LIST (wl, WORD_LIST *)); -} - -static char * -parse_compound_assignment (retlenp) - int *retlenp; -{ - WORD_LIST *wl, *rl; - int tok, orig_line_number, orig_token_size; - char *saved_token, *ret; - - saved_token = token; - orig_token_size = token_buffer_size; - orig_line_number = line_number; - - last_read_token = WORD; /* WORD to allow reserved words here */ - - token = (char *)NULL; - token_buffer_size = 0; - - wl = (WORD_LIST *)NULL; /* ( */ - parser_state |= PST_COMPASSIGN; - - while ((tok = read_token (READ)) != ')') - { - if (tok == '\n') /* Allow newlines in compound assignments */ - { - if (SHOULD_PROMPT ()) - prompt_again (); - continue; - } - if (tok != WORD && tok != ASSIGNMENT_WORD) - { - current_token = tok; /* for error reporting */ - if (tok == yacc_EOF) /* ( */ - parser_error (orig_line_number, _("unexpected EOF while looking for matching `)'")); - else - yyerror(NULL); /* does the right thing */ - if (wl) - dispose_words (wl); - wl = &parse_string_error; - break; - } - wl = make_word_list (yylval.word, wl); - } - - FREE (token); - token = saved_token; - token_buffer_size = orig_token_size; - - parser_state &= ~PST_COMPASSIGN; - - if (wl == &parse_string_error) - { - last_command_exit_value = EXECUTION_FAILURE; - last_read_token = '\n'; /* XXX */ - if (interactive_shell == 0 && posixly_correct) - jump_to_top_level (FORCE_EOF); - else - jump_to_top_level (DISCARD); - } - - last_read_token = WORD; - if (wl) - { - rl = REVERSE_LIST (wl, WORD_LIST *); - ret = string_list (rl); - dispose_words (rl); - } - else - ret = (char *)NULL; - - if (retlenp) - *retlenp = (ret && *ret) ? strlen (ret) : 0; - return ret; -} - -/************************************************ - * * - * SAVING AND RESTORING PARTIAL PARSE STATE * - * * - ************************************************/ - -sh_parser_state_t * -save_parser_state (ps) - sh_parser_state_t *ps; -{ -#if defined (ARRAY_VARS) - SHELL_VAR *v; -#endif - - if (ps == 0) - ps = (sh_parser_state_t *)xmalloc (sizeof (sh_parser_state_t)); - if (ps == 0) - return ((sh_parser_state_t *)NULL); - - ps->parser_state = parser_state; - ps->token_state = save_token_state (); - - ps->input_line_terminator = shell_input_line_terminator; - ps->eof_encountered = eof_encountered; - - ps->current_command_line_count = current_command_line_count; - -#if defined (HISTORY) - ps->remember_on_history = remember_on_history; -# if defined (BANG_HISTORY) - ps->history_expansion_inhibited = history_expansion_inhibited; -# endif -#endif - - ps->last_command_exit_value = last_command_exit_value; -#if defined (ARRAY_VARS) - v = find_variable ("PIPESTATUS"); - if (v && array_p (v) && array_cell (v)) - ps->pipestatus = array_copy (array_cell (v)); - else - ps->pipestatus = (ARRAY *)NULL; -#endif - - ps->last_shell_builtin = last_shell_builtin; - ps->this_shell_builtin = this_shell_builtin; - - ps->expand_aliases = expand_aliases; - ps->echo_input_at_read = echo_input_at_read; - - return (ps); -} - -void -restore_parser_state (ps) - sh_parser_state_t *ps; -{ -#if defined (ARRAY_VARS) - SHELL_VAR *v; -#endif - - if (ps == 0) - return; - - parser_state = ps->parser_state; - if (ps->token_state) - { - restore_token_state (ps->token_state); - free (ps->token_state); - } - - shell_input_line_terminator = ps->input_line_terminator; - eof_encountered = ps->eof_encountered; - - current_command_line_count = ps->current_command_line_count; - -#if defined (HISTORY) - remember_on_history = ps->remember_on_history; -# if defined (BANG_HISTORY) - history_expansion_inhibited = ps->history_expansion_inhibited; -# endif -#endif - - last_command_exit_value = ps->last_command_exit_value; -#if defined (ARRAY_VARS) - v = find_variable ("PIPESTATUS"); - if (v && array_p (v) && array_cell (v)) - { - array_dispose (array_cell (v)); - var_setarray (v, ps->pipestatus); - } -#endif - - last_shell_builtin = ps->last_shell_builtin; - this_shell_builtin = ps->this_shell_builtin; - - expand_aliases = ps->expand_aliases; - echo_input_at_read = ps->echo_input_at_read; -} - -/************************************************ - * * - * MULTIBYTE CHARACTER HANDLING * - * * - ************************************************/ - -#if defined (HANDLE_MULTIBYTE) -static void -set_line_mbstate () -{ - int i, previ, len, c; - mbstate_t mbs, prevs; - size_t mbclen; - - if (shell_input_line == NULL) - return; - len = strlen (shell_input_line); /* XXX - shell_input_line_len ? */ - FREE (shell_input_line_property); - shell_input_line_property = (char *)xmalloc (len + 1); - - memset (&prevs, '\0', sizeof (mbstate_t)); - for (i = previ = 0; i < len; i++) - { - mbs = prevs; - - c = shell_input_line[i]; - if (c == EOF) - { - int j; - for (j = i; j < len; j++) - shell_input_line_property[j] = 1; - break; - } - - mbclen = mbrlen (shell_input_line + previ, i - previ + 1, &mbs); - if (mbclen == 1 || mbclen == (size_t)-1) - { - mbclen = 1; - previ = i + 1; - } - else if (mbclen == (size_t)-2) - mbclen = 0; - else if (mbclen > 1) - { - mbclen = 0; - previ = i + 1; - prevs = mbs; - } - else - { - /* XXX - what to do if mbrlen returns 0? (null wide character) */ - int j; - for (j = i; j < len; j++) - shell_input_line_property[j] = 1; - break; - } - - shell_input_line_property[i] = mbclen; - } -} -#endif /* HANDLE_MULTIBYTE */ diff --git a/pcomplete.c.diff b/pcomplete.c.diff deleted file mode 100644 index 699988bcf..000000000 --- a/pcomplete.c.diff +++ /dev/null @@ -1,20 +0,0 @@ -*** ../bash-3.0/pcomplete.c Thu Jan 8 10:36:17 2004 ---- pcomplete.c Tue Aug 3 23:15:41 2004 -*************** -*** 864,867 **** ---- 864,869 ---- - v = convert_var_to_array (v); - v = assign_array_var_from_word_list (v, lwords); -+ -+ VUNSETATTR (v, att_invisible); - return v; - } -*************** -*** 1022,1025 **** ---- 1024,1029 ---- - if (array_p (v) == 0) - v = convert_var_to_array (v); -+ -+ VUNSETATTR (v, att_invisible); - - a = array_cell (v); diff --git a/po.orig/LINGUAS b/po.orig/LINGUAS deleted file mode 100644 index 3595cc0f5..000000000 --- a/po.orig/LINGUAS +++ /dev/null @@ -1,2 +0,0 @@ -# Set of available languages. -en@quot en@boldquot diff --git a/po.orig/Makefile.in.in b/po.orig/Makefile.in.in deleted file mode 100644 index c28f1ce4d..000000000 --- a/po.orig/Makefile.in.in +++ /dev/null @@ -1,357 +0,0 @@ -# Makefile for PO directory in any package using GNU gettext. -# Copyright (C) 1995-1997, 2000-2003 by Ulrich Drepper -# -# This file can be copied and used freely without restrictions. It can -# be used in projects which are not available under the GNU General Public -# License but which still want to provide support for the GNU gettext -# functionality. -# Please note that the actual code of GNU gettext is covered by the GNU -# General Public License and is *not* in the public domain. - -PACKAGE = @PACKAGE_NAME@ -VERSION = @PACKAGE_VERSION@ - -SHELL = /bin/sh -@SET_MAKE@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ - -topdir = @top_srcdir@ -BUILD_DIR = @BUILD_DIR@ - -prefix = @prefix@ -exec_prefix = @exec_prefix@ -datadir = @datadir@ -localedir = $(datadir)/locale -gettextsrcdir = $(datadir)/gettext/po - -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -mkinstalldirs = $(SHELL) $(MKINSTALLDIRS) - -GMSGFMT = @GMSGFMT@ -MSGFMT = @MSGFMT@ -XGETTEXT = @XGETTEXT@ -MSGMERGE = msgmerge -MSGMERGE_UPDATE = @MSGMERGE@ --update -MSGINIT = msginit -MSGCONV = msgconv -MSGFILTER = msgfilter - -POFILES = @POFILES@ -GMOFILES = @GMOFILES@ -UPDATEPOFILES = @UPDATEPOFILES@ -DUMMYPOFILES = @DUMMYPOFILES@ -DISTFILES.common = Makefile.in.in remove-potcdate.sin \ -$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) -DISTFILES = $(DISTFILES.common) Makevars POTFILES.in $(DOMAIN).pot stamp-po \ -$(POFILES) $(GMOFILES) \ -$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) - -POTFILES = \ - -CATALOGS = @CATALOGS@ - -# Makevars gets inserted here. (Don't remove this line!) - -.SUFFIXES: -.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-update - -.po.mo: - @echo "$(MSGFMT) -c -o $@ $<"; \ - $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@ - -.po.gmo: - @lang=`echo $* | sed -e 's,.*/,,'`; \ - test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ - echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \ - cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo - -.sin.sed: - sed -e '/^#/d' $< > t-$@ - mv t-$@ $@ - - -all: all-@USE_NLS@ - -all-yes: stamp-po -all-no: - -# stamp-po is a timestamp denoting the last time at which the CATALOGS have -# been loosely updated. Its purpose is that when a developer or translator -# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS, -# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent -# invocations of "make" will do nothing. This timestamp would not be necessary -# if updating the $(CATALOGS) would always touch them; however, the rule for -# $(POFILES) has been designed to not touch files that don't need to be -# changed. -stamp-po: $(srcdir)/$(DOMAIN).pot - test -z "$(CATALOGS)" || $(MAKE) $(CATALOGS) - @echo "touch stamp-po" - @echo timestamp > stamp-poT - @mv stamp-poT stamp-po - -# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', -# otherwise packages like GCC can not be built if only parts of the source -# have been downloaded. - -# This target rebuilds $(DOMAIN).pot; it is an expensive operation. -# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. -$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed - $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ - --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \ - --files-from=$(srcdir)/POTFILES.in \ - --copyright-holder='$(COPYRIGHT_HOLDER)' \ - --msgid-bugs-address='$(MSGID_BUGS_ADDRESS)' - $(MAKE) $(MFLAGS) builtins.pot-update - test ! -f $(DOMAIN).po || { \ - if test -f $(srcdir)/$(DOMAIN).pot; then \ - sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ - sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ - if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ - rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ - else \ - rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ - mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ - fi; \ - else \ - mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ - fi; \ - } - -# This rule has no dependencies: we don't need to update $(DOMAIN).pot at -# every "make" invocation, only create it when it is missing. -# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. -$(srcdir)/$(DOMAIN).pot: - $(MAKE) $(DOMAIN).pot-update - -# This target rebuilds a PO file if $(DOMAIN).pot has changed. -# Note that a PO file is not touched if it doesn't need to be changed. -$(POFILES): $(srcdir)/$(DOMAIN).pot - @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ - test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ - echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \ - cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot - - -install: install-exec install-data -install-exec: -install-data: install-data-@USE_NLS@ - if test "$(PACKAGE)" = "gettext-tools"; then \ - $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ - for file in $(DISTFILES.common) Makevars.template; do \ - $(INSTALL_DATA) $(srcdir)/$$file \ - $(DESTDIR)$(gettextsrcdir)/$$file; \ - done; \ - for file in Makevars; do \ - rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ - done; \ - else \ - : ; \ - fi -install-data-no: all -install-data-yes: all - $(mkinstalldirs) $(DESTDIR)$(datadir) - @catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ - dir=$(localedir)/$$lang/LC_MESSAGES; \ - $(mkinstalldirs) $(DESTDIR)$$dir; \ - if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ - $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ - echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ - for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ - if test -n "$$lc"; then \ - if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ - link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ - mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ - mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ - (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ - for file in *; do \ - if test -f $$file; then \ - ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ - fi; \ - done); \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ - else \ - if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ - :; \ - else \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ - mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ - fi; \ - fi; \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ - ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ - ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ - cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ - echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ - fi; \ - done; \ - done - -install-strip: install - -installdirs: installdirs-exec installdirs-data -installdirs-exec: -installdirs-data: installdirs-data-@USE_NLS@ - if test "$(PACKAGE)" = "gettext-tools"; then \ - $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ - else \ - : ; \ - fi -installdirs-data-no: -installdirs-data-yes: - $(mkinstalldirs) $(DESTDIR)$(datadir) - @catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ - dir=$(localedir)/$$lang/LC_MESSAGES; \ - $(mkinstalldirs) $(DESTDIR)$$dir; \ - for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ - if test -n "$$lc"; then \ - if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ - link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ - mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ - mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ - (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ - for file in *; do \ - if test -f $$file; then \ - ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ - fi; \ - done); \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ - else \ - if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ - :; \ - else \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ - mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ - fi; \ - fi; \ - fi; \ - done; \ - done - -# Define this as empty until I found a useful application. -installcheck: - -uninstall: uninstall-exec uninstall-data -uninstall-exec: -uninstall-data: uninstall-data-@USE_NLS@ - if test "$(PACKAGE)" = "gettext-tools"; then \ - for file in $(DISTFILES.common) Makevars.template; do \ - rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ - done; \ - else \ - : ; \ - fi -uninstall-data-no: -uninstall-data-yes: - catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ - for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ - done; \ - done - -check: all - -info dvi ps pdf html tags TAGS ctags CTAGS ID: - -mostlyclean: - rm -f remove-potcdate.sed - rm -f stamp-poT - rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po - rm -fr *.o - -clean: mostlyclean - -distclean: clean - rm -f Makefile Makefile.in POTFILES *.mo - -maintainer-clean: distclean - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - rm -f stamp-po $(GMOFILES) - -distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) -dist distdir: - $(MAKE) update-po - @$(MAKE) dist2 -# This is a separate target because 'update-po' must be executed before. -dist2: $(DISTFILES) - dists="$(DISTFILES)"; \ - if test "$(PACKAGE)" = "gettext-tools"; then \ - dists="$$dists Makevars.template"; \ - fi; \ - if test -f $(srcdir)/ChangeLog; then \ - dists="$$dists ChangeLog"; \ - fi; \ - for i in 0 1 2 3 4 5 6 7 8 9; do \ - if test -f $(srcdir)/ChangeLog.$$i; then \ - dists="$$dists ChangeLog.$$i"; \ - fi; \ - done; \ - if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ - for file in $$dists; do \ - if test -f $$file; then \ - cp -p $$file $(distdir); \ - else \ - cp -p $(srcdir)/$$file $(distdir); \ - fi; \ - done - -update-po: Makefile - $(MAKE) $(DOMAIN).pot-update - test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) - $(MAKE) update-gmo - -# General rule for updating PO files. - -.nop.po-update: - @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ - if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \ - tmpdir=`pwd`; \ - echo "$$lang:"; \ - test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ - echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ - cd $(srcdir); \ - if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \ - if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ - rm -f $$tmpdir/$$lang.new.po; \ - else \ - if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ - :; \ - else \ - echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ - exit 1; \ - fi; \ - fi; \ - else \ - echo "msgmerge for $$lang.po failed!" 1>&2; \ - rm -f $$tmpdir/$$lang.new.po; \ - fi - -$(DUMMYPOFILES): - -update-gmo: Makefile $(GMOFILES) - @: - -Makefile: Makefile.in.in $(top_builddir)/config.status @POMAKEFILEDEPS@ $(srcdir)/Rules-builtins - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \ - $(SHELL) ./config.status - -force: - -# Tell versions [3.59,3.63) of GNU make not to export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/po.orig/Makevars b/po.orig/Makevars deleted file mode 100644 index 84b2d9562..000000000 --- a/po.orig/Makevars +++ /dev/null @@ -1,41 +0,0 @@ -# Makefile variables for PO directory in any package using GNU gettext. - -# Usually the message domain is the same as the package name. -DOMAIN = $(PACKAGE) - -# These two variables depend on the location of this directory. -subdir = po -top_builddir = $(BUILD_DIR) - -# These options get passed to xgettext. -XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ -C - -# This is the copyright holder that gets inserted into the header of the -# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding -# package. (Note that the msgstr strings, extracted from the package's -# sources, belong to the copyright holder of the package.) Translators are -# expected to transfer the copyright for their translations to this person -# or entity, or to disclaim their copyright. The empty string stands for -# the public domain; in this case the translators are expected to disclaim -# their copyright. -COPYRIGHT_HOLDER = Free Software Foundation, Inc. - -# This is the email address or URL to which the translators shall report -# bugs in the untranslated strings: -# - Strings which are not entire sentences, see the maintainer guidelines -# in the GNU gettext documentation, section 'Preparing Strings'. -# - Strings which use unclear terms or require additional context to be -# understood. -# - Strings which make invalid assumptions about notation of date, time or -# money. -# - Pluralisation problems. -# - Incorrect English spelling. -# - Incorrect formatting. -# It can be your email address, or a mailing list address where translators -# can write to without being subscribed, or the URL of a web page through -# which the translators can contact you. -MSGID_BUGS_ADDRESS = bug-bash@gnu.org - -# This is the list of locale categories, beyond LC_MESSAGES, for which the -# message catalogs shall be used. It is usually empty. -EXTRA_LOCALE_CATEGORIES = diff --git a/po.orig/Makevars.template b/po.orig/Makevars.template deleted file mode 100644 index 32692ab4b..000000000 --- a/po.orig/Makevars.template +++ /dev/null @@ -1,41 +0,0 @@ -# Makefile variables for PO directory in any package using GNU gettext. - -# Usually the message domain is the same as the package name. -DOMAIN = $(PACKAGE) - -# These two variables depend on the location of this directory. -subdir = po -top_builddir = .. - -# These options get passed to xgettext. -XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ - -# This is the copyright holder that gets inserted into the header of the -# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding -# package. (Note that the msgstr strings, extracted from the package's -# sources, belong to the copyright holder of the package.) Translators are -# expected to transfer the copyright for their translations to this person -# or entity, or to disclaim their copyright. The empty string stands for -# the public domain; in this case the translators are expected to disclaim -# their copyright. -COPYRIGHT_HOLDER = Free Software Foundation, Inc. - -# This is the email address or URL to which the translators shall report -# bugs in the untranslated strings: -# - Strings which are not entire sentences, see the maintainer guidelines -# in the GNU gettext documentation, section 'Preparing Strings'. -# - Strings which use unclear terms or require additional context to be -# understood. -# - Strings which make invalid assumptions about notation of date, time or -# money. -# - Pluralisation problems. -# - Incorrect English spelling. -# - Incorrect formatting. -# It can be your email address, or a mailing list address where translators -# can write to without being subscribed, or the URL of a web page through -# which the translators can contact you. -MSGID_BUGS_ADDRESS = - -# This is the list of locale categories, beyond LC_MESSAGES, for which the -# message catalogs shall be used. It is usually empty. -EXTRA_LOCALE_CATEGORIES = diff --git a/po.orig/POTFILES.in b/po.orig/POTFILES.in deleted file mode 100644 index a59a0965b..000000000 --- a/po.orig/POTFILES.in +++ /dev/null @@ -1,76 +0,0 @@ -# List of source files containing translatable strings. -# Copyright (C) 2004 Free Software Foundation, Inc. - -arrayfunc.c -bashhist.c -bashline.c -braces.c -builtins/bind.def -builtins/break.def -builtins/caller.def -builtins/cd.def -builtins/common.c -builtins/complete.def -builtins/declare.def -builtins/enable.def -builtins/evalfile.c -builtins/exec.def -builtins/exit.def -builtins/fc.def -builtins/fg_bg.def -builtins/getopt.c -builtins/hash.def -builtins/help.def -builtins/history.def -builtins/inlib.def -builtins/jobs.def -builtins/kill.def -builtins/let.def -builtins/mkbuiltins.c -builtins/printf.def -builtins/pushd.def -builtins/read.def -builtins/return.def -builtins/set.def -builtins/setattr.def -builtins/shift.def -builtins/shopt.def -builtins/source.def -builtins/suspend.def -builtins/type.def -builtins/ulimit.def -builtins/umask.def -error.c -eval.c -execute_cmd.c -expr.c -general.c -input.c -jobs.c -lib/malloc/malloc.c -lib/malloc/stats.c -lib/malloc/table.c -lib/malloc/watch.c -lib/sh/fmtulong.c -lib/sh/netopen.c -mailcheck.c -make_cmd.c -nojobs.c -parse.y -pcomplete.c -pcomplib.c -print_cmd.c -redir.c -shell.c -sig.c -siglist.c -subst.c -test.c -trap.c -variables.c -version.c -xmalloc.c - -# Apparently gettext's defaults cannot handle files that exist outside of the -# source directory, like in the build directory -#../builtins/builtins.c diff --git a/po.orig/README b/po.orig/README deleted file mode 100644 index 979884c63..000000000 --- a/po.orig/README +++ /dev/null @@ -1 +0,0 @@ -This apparently requires GNU sed diff --git a/po.orig/Rules-builtins b/po.orig/Rules-builtins deleted file mode 100644 index 57df81c9c..000000000 --- a/po.orig/Rules-builtins +++ /dev/null @@ -1,19 +0,0 @@ -# -# Update the strings from the builtins' long docs. Must be called when -# bash.pot exists, in the middle of the bash.pot-update recipe -# -builtins.pot-update: $(top_builddir)/builtins/builtins.c - $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_builddir)/builtins \ - $(XGETTEXT_OPTIONS) --omit-header \ - --copyright-holder='$(COPYRIGHT_HOLDER)' \ - --join-existing \ - builtins.c - -# This rule has no dependencies: we don't need to update builtins.pot at -# every "make" invocation, only create it when it is missing. -# Only "make builtins.pot-update" or "make dist" will force an update. -$(srcdir)/builtins.pot: - $(MAKE) builtins.pot-update - -xdist: - $(MAKE) update-po diff --git a/po.orig/Rules-quot b/po.orig/Rules-quot deleted file mode 100644 index 5f46d237d..000000000 --- a/po.orig/Rules-quot +++ /dev/null @@ -1,42 +0,0 @@ -# Special Makefile rules for English message catalogs with quotation marks. - -DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot - -.SUFFIXES: .insert-header .po-update-en - -en@quot.po-update: en@quot.po-update-en -en@boldquot.po-update: en@boldquot.po-update-en - -.insert-header.po-update-en: - @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \ - if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \ - tmpdir=`pwd`; \ - echo "$$lang:"; \ - ll=`echo $$lang | sed -e 's/@.*//'`; \ - LC_ALL=C; export LC_ALL; \ - cd $(srcdir); \ - if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$ll -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \ - if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ - rm -f $$tmpdir/$$lang.new.po; \ - else \ - if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ - :; \ - else \ - echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ - exit 1; \ - fi; \ - fi; \ - else \ - echo "creation of $$lang.po failed!" 1>&2; \ - rm -f $$tmpdir/$$lang.new.po; \ - fi - -en@quot.insert-header: insert-header.sin - sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header - -en@boldquot.insert-header: insert-header.sin - sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header - -mostlyclean: mostlyclean-quot -mostlyclean-quot: - rm -f *.insert-header diff --git a/po.orig/bash.pot b/po.orig/bash.pot deleted file mode 100644 index 3340d22cc..000000000 --- a/po.orig/bash.pot +++ /dev/null @@ -1,4174 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR Free Software Foundation, Inc. -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#: builtins/caller.def:128 builtins/caller.def:132 builtins/pushd.def:655 -#: builtins/pushd.def:663 builtins/pushd.def:666 builtins/pushd.def:676 -#: builtins/pushd.def:680 builtins/pushd.def:684 builtins/pushd.def:687 -#: builtins/pushd.def:690 builtins/pushd.def:699 builtins/pushd.def:703 -#: builtins/pushd.def:707 builtins/pushd.def:710 builtins.c:321 builtins.c:325 -#: builtins.c:390 builtins.c:392 builtins.c:401 builtins.c:404 builtins.c:408 -#: builtins.c:445 builtins.c:487 builtins.c:491 builtins.c:498 builtins.c:509 -#: builtins.c:513 builtins.c:552 builtins.c:555 builtins.c:559 builtins.c:562 -#: builtins.c:630 builtins.c:637 builtins.c:692 builtins.c:713 builtins.c:718 -#: builtins.c:722 builtins.c:745 builtins.c:835 builtins.c:919 builtins.c:921 -#: builtins.c:943 builtins.c:946 builtins.c:948 builtins.c:950 builtins.c:952 -#: builtins.c:954 builtins.c:957 builtins.c:966 builtins.c:968 builtins.c:973 -#: builtins.c:976 builtins.c:1019 builtins.c:1024 builtins.c:1028 -#: builtins.c:1032 builtins.c:1034 builtins.c:1047 builtins.c:1062 -#: builtins.c:1226 builtins.c:1231 builtins.c:1305 builtins.c:1309 -#: builtins.c:1313 builtins.c:1316 builtins.c:1319 builtins.c:1331 -#: builtins.c:1335 builtins.c:1339 builtins.c:1342 builtins.c:1354 -#: builtins.c:1362 builtins.c:1365 -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: bug-bash@gnu.org\n" -"POT-Creation-Date: 2003-12-22 15:34-0500\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" -"Content-Transfer-Encoding: 8bit\n" - -#: arrayfunc.c:45 -msgid "bad array subscript" -msgstr "" - -#: arrayfunc.c:306 -#, c-format -msgid "%s: cannot assign to non-numeric index" -msgstr "" - -#: bashhist.c:321 -#, c-format -msgid "%s: cannot create: %s" -msgstr "" - -#: bashline.c:2791 -msgid "bash_execute_unix_command: cannot find keymap for command" -msgstr "" - -#: bashline.c:2840 -#, c-format -msgid "%s: first non-whitespace character is not `\"'" -msgstr "" - -#: bashline.c:2869 -#, c-format -msgid "no closing `%c' in %s" -msgstr "" - -#: bashline.c:2903 -#, c-format -msgid "%s: missing colon separator" -msgstr "" - -#: builtins/alias.def:123 -#, c-format -msgid "`%s': invalid alias name" -msgstr "" - -#: builtins/bind.def:194 -#, c-format -msgid "`%s': invalid keymap name" -msgstr "" - -#: builtins/bind.def:233 -#, c-format -msgid "%s: cannot read: %s" -msgstr "" - -#: builtins/bind.def:248 -#, c-format -msgid "`%s': cannot unbind" -msgstr "" - -#: builtins/bind.def:283 -#, c-format -msgid "`%s': unknown function name" -msgstr "" - -#: builtins/bind.def:291 -#, c-format -msgid "%s is not bound to any keys.\n" -msgstr "" - -#: builtins/bind.def:295 -#, c-format -msgid "%s can be invoked via " -msgstr "" - -#: builtins/break.def:128 -msgid "only meaningful in a `for', `while', or `until' loop" -msgstr "" - -#: builtins/caller.def:127 builtins.c:320 -msgid "Returns the context of the current subroutine call." -msgstr "" - -#: builtins/caller.def:129 builtins.c:322 -msgid "Without EXPR, returns returns \"$line $filename\". With EXPR," -msgstr "" - -#: builtins/caller.def:130 builtins.c:323 -msgid "returns \"$line $subroutine $filename\"; this extra information" -msgstr "" - -#: builtins/caller.def:131 builtins.c:324 -msgid "can be used used to provide a stack trace." -msgstr "" - -#: builtins/caller.def:133 builtins.c:326 -msgid "The value of EXPR indicates how many call frames to go back before the" -msgstr "" - -#: builtins/caller.def:134 builtins.c:327 -msgid "current one; the top frame is frame 0." -msgstr "" - -#: builtins/cd.def:188 -msgid "HOME not set" -msgstr "" - -#: builtins/cd.def:200 -msgid "OLDPWD not set" -msgstr "" - -#: builtins/cd.def:357 -#, c-format -msgid "write error: %s" -msgstr "" - -#: builtins/common.c:133 test.c:921 -msgid "too many arguments" -msgstr "" - -#: builtins/common.c:157 shell.c:465 shell.c:737 -#, c-format -msgid "%s: option requires an argument" -msgstr "" - -#: builtins/common.c:164 -#, c-format -msgid "%s: numeric argument required" -msgstr "" - -#: builtins/common.c:171 -#, c-format -msgid "%s: not found" -msgstr "" - -#: builtins/common.c:180 shell.c:750 -#, c-format -msgid "%s: invalid option" -msgstr "" - -#: builtins/common.c:187 -#, c-format -msgid "%s: invalid option name" -msgstr "" - -#: builtins/common.c:194 general.c:229 general.c:234 -#, c-format -msgid "`%s': not a valid identifier" -msgstr "" - -#: builtins/common.c:201 -#, c-format -msgid "%s: invalid number" -msgstr "" - -#: builtins/common.c:208 -#, c-format -msgid "%s: invalid signal specification" -msgstr "" - -#: builtins/common.c:215 -#, c-format -msgid "`%s': not a pid or valid job spec" -msgstr "" - -#: builtins/common.c:222 error.c:453 -#, c-format -msgid "%s: readonly variable" -msgstr "" - -#: builtins/common.c:230 -#, c-format -msgid "%s: %s out of range" -msgstr "" - -#: builtins/common.c:230 builtins/common.c:232 -msgid "argument" -msgstr "" - -#: builtins/common.c:232 -#, c-format -msgid "%s out of range" -msgstr "" - -#: builtins/common.c:240 -#, c-format -msgid "%s: no such job" -msgstr "" - -#: builtins/common.c:248 -#, c-format -msgid "%s: no job control" -msgstr "" - -#: builtins/common.c:250 -msgid "no job control" -msgstr "" - -#: builtins/common.c:260 -#, c-format -msgid "%s: restricted" -msgstr "" - -#: builtins/common.c:262 -msgid "restricted" -msgstr "" - -#: builtins/common.c:270 -#, c-format -msgid "%s: not a shell builtin" -msgstr "" - -#: builtins/common.c:486 -#, c-format -msgid "%s: error retrieving current directory: %s: %s\n" -msgstr "" - -#: builtins/common.c:553 builtins/common.c:555 -#, c-format -msgid "%s: ambiguous job spec" -msgstr "" - -#: builtins/complete.def:251 -#, c-format -msgid "%s: invalid action name" -msgstr "" - -#: builtins/complete.def:381 builtins/complete.def:524 -#, c-format -msgid "%s: no completion specification" -msgstr "" - -#: builtins/complete.def:571 -msgid "warning: -F option may not work as you expect" -msgstr "" - -#: builtins/complete.def:573 -msgid "warning: -C option may not work as you expect" -msgstr "" - -#: builtins/declare.def:105 -msgid "can only be used in a function" -msgstr "" - -#: builtins/declare.def:295 -msgid "cannot use `-f' to make functions" -msgstr "" - -#: builtins/declare.def:307 execute_cmd.c:3949 -#, c-format -msgid "%s: readonly function" -msgstr "" - -#: builtins/declare.def:389 -#, c-format -msgid "%s: cannot destroy array variables in this way" -msgstr "" - -#: builtins/enable.def:128 builtins/enable.def:136 -msgid "dynamic loading not available" -msgstr "" - -#: builtins/enable.def:303 -#, c-format -msgid "cannot open shared object %s: %s" -msgstr "" - -#: builtins/enable.def:326 -#, c-format -msgid "cannot find %s in shared object %s: %s" -msgstr "" - -#: builtins/enable.def:450 -#, c-format -msgid "%s: not dynamically loaded" -msgstr "" - -#: builtins/enable.def:465 -#, c-format -msgid "%s: cannot delete: %s" -msgstr "" - -#: builtins/evalfile.c:128 execute_cmd.c:3821 shell.c:1395 -#, c-format -msgid "%s: is a directory" -msgstr "" - -#: builtins/evalfile.c:133 -#, c-format -msgid "%s: not a regular file" -msgstr "" - -#: builtins/evalfile.c:141 -#, c-format -msgid "%s: file is too large" -msgstr "" - -#: builtins/exec.def:205 -#, c-format -msgid "%s: cannot execute: %s" -msgstr "" - -#: builtins/exit.def:83 -msgid "not login shell: use `exit'" -msgstr "" - -#: builtins/exit.def:111 -msgid "There are stopped jobs.\n" -msgstr "" - -#: builtins/fc.def:252 -msgid "no command found" -msgstr "" - -#: builtins/fc.def:317 -msgid "history specification" -msgstr "" - -#: builtins/fc.def:338 -#, c-format -msgid "%s: cannot open temp file: %s" -msgstr "" - -#: builtins/fg_bg.def:133 -#, c-format -msgid "job %d started without job control" -msgstr "" - -#: builtins/getopt.c:109 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "" - -#: builtins/getopt.c:110 -#, c-format -msgid "%s: option requires an argument -- %c\n" -msgstr "" - -#: builtins/hash.def:83 -msgid "hashing disabled" -msgstr "" - -#: builtins/hash.def:128 -#, c-format -msgid "%s: hash table empty\n" -msgstr "" - -#: builtins/help.def:108 -msgid "Shell commands matching keywords `" -msgstr "" - -#: builtins/help.def:110 -msgid "Shell commands matching keyword `" -msgstr "" - -#: builtins/help.def:138 -#, c-format -msgid "" -"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." -msgstr "" - -#: builtins/help.def:164 -#, c-format -msgid "%s: cannot open: %s" -msgstr "" - -#: builtins/help.def:182 -msgid "" -"These shell commands are defined internally. Type `help' to see this list.\n" -"Type `help name' to find out more about the function `name'.\n" -"Use `info bash' to find out more about the shell in general.\n" -"Use `man -k' or `info' to find out more about commands not in this list.\n" -"\n" -"A star (*) next to a name means that the command is disabled.\n" -"\n" -msgstr "" - -#: builtins/history.def:148 -msgid "cannot use more than one of -anrw" -msgstr "" - -#: builtins/history.def:180 -msgid "history position" -msgstr "" - -#: builtins/history.def:390 -#, c-format -msgid "%s: history expansion failed" -msgstr "" - -#: builtins/jobs.def:99 -msgid "no other options allowed with `-x'" -msgstr "" - -#: builtins/kill.def:187 -#, c-format -msgid "%s: arguments must be process or job IDs" -msgstr "" - -#: builtins/kill.def:248 -msgid "Unknown error" -msgstr "" - -#: builtins/let.def:94 builtins/let.def:119 expr.c:496 expr.c:511 -msgid "expression expected" -msgstr "" - -#: builtins/printf.def:249 -#, c-format -msgid "`%s': missing format character" -msgstr "" - -#: builtins/printf.def:408 -#, c-format -msgid "`%c': invalid format character" -msgstr "" - -#: builtins/printf.def:601 -msgid "missing hex digit for \\x" -msgstr "" - -#: builtins/pushd.def:168 -msgid "no other directory" -msgstr "" - -#: builtins/pushd.def:435 -msgid "" -msgstr "" - -#: builtins/pushd.def:652 builtins.c:1351 -msgid "Display the list of currently remembered directories. Directories" -msgstr "" - -#: builtins/pushd.def:653 builtins.c:1352 -msgid "find their way onto the list with the `pushd' command; you can get" -msgstr "" - -#: builtins/pushd.def:654 builtins.c:1353 -msgid "back up through the list with the `popd' command." -msgstr "" - -#: builtins/pushd.def:656 builtins.c:1355 -msgid "The -l flag specifies that `dirs' should not print shorthand versions" -msgstr "" - -#: builtins/pushd.def:657 builtins.c:1356 -msgid "of directories which are relative to your home directory. This means" -msgstr "" - -#: builtins/pushd.def:658 builtins.c:1357 -msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" -msgstr "" - -#: builtins/pushd.def:659 builtins.c:1358 -msgid "causes `dirs' to print the directory stack with one entry per line," -msgstr "" - -#: builtins/pushd.def:660 builtins.c:1359 -msgid "prepending the directory name with its position in the stack. The -p" -msgstr "" - -#: builtins/pushd.def:661 builtins.c:1360 -msgid "flag does the same thing, but the stack position is not prepended." -msgstr "" - -#: builtins/pushd.def:662 builtins.c:1361 -msgid "The -c flag clears the directory stack by deleting all of the elements." -msgstr "" - -#: builtins/pushd.def:664 -msgid "+N displays the Nth entry counting from the left of the list shown by" -msgstr "" - -#: builtins/pushd.def:665 builtins/pushd.def:668 -msgid " dirs when invoked without options, starting with zero." -msgstr "" - -#: builtins/pushd.def:667 -msgid "" -"-N displays the Nth entry counting from the right of the list shown by" -msgstr "" - -#: builtins/pushd.def:673 builtins.c:1302 -msgid "Adds a directory to the top of the directory stack, or rotates" -msgstr "" - -#: builtins/pushd.def:674 builtins.c:1303 -msgid "the stack, making the new top of the stack the current working" -msgstr "" - -#: builtins/pushd.def:675 builtins.c:1304 -msgid "directory. With no arguments, exchanges the top two directories." -msgstr "" - -#: builtins/pushd.def:677 -msgid "+N Rotates the stack so that the Nth directory (counting" -msgstr "" - -#: builtins/pushd.def:678 -msgid " from the left of the list shown by `dirs', starting with" -msgstr "" - -#: builtins/pushd.def:679 builtins/pushd.def:683 -msgid " zero) is at the top." -msgstr "" - -#: builtins/pushd.def:681 -msgid "-N Rotates the stack so that the Nth directory (counting" -msgstr "" - -#: builtins/pushd.def:682 -msgid " from the right of the list shown by `dirs', starting with" -msgstr "" - -#: builtins/pushd.def:685 -msgid "-n suppress the normal change of directory when adding directories" -msgstr "" - -#: builtins/pushd.def:686 -msgid " to the stack, so only the stack is manipulated." -msgstr "" - -#: builtins/pushd.def:688 -msgid "dir adds DIR to the directory stack at the top, making it the" -msgstr "" - -#: builtins/pushd.def:689 -msgid " new current working directory." -msgstr "" - -#: builtins/pushd.def:691 builtins/pushd.def:711 builtins.c:1320 -#: builtins.c:1343 -msgid "You can see the directory stack with the `dirs' command." -msgstr "" - -#: builtins/pushd.def:696 builtins.c:1328 -msgid "Removes entries from the directory stack. With no arguments," -msgstr "" - -#: builtins/pushd.def:697 builtins.c:1329 -msgid "removes the top directory from the stack, and cd's to the new" -msgstr "" - -#: builtins/pushd.def:698 builtins.c:1330 -msgid "top directory." -msgstr "" - -#: builtins/pushd.def:700 -msgid "+N removes the Nth entry counting from the left of the list" -msgstr "" - -#: builtins/pushd.def:701 -msgid " shown by `dirs', starting with zero. For example: `popd +0'" -msgstr "" - -#: builtins/pushd.def:702 -msgid " removes the first directory, `popd +1' the second." -msgstr "" - -#: builtins/pushd.def:704 -msgid "-N removes the Nth entry counting from the right of the list" -msgstr "" - -#: builtins/pushd.def:705 -msgid " shown by `dirs', starting with zero. For example: `popd -0'" -msgstr "" - -#: builtins/pushd.def:706 -msgid " removes the last directory, `popd -1' the next to last." -msgstr "" - -#: builtins/pushd.def:708 -msgid "-n suppress the normal change of directory when removing directories" -msgstr "" - -#: builtins/pushd.def:709 -msgid " from the stack, so only the stack is manipulated." -msgstr "" - -#: builtins/read.def:207 -#, c-format -msgid "%s: invalid timeout specification" -msgstr "" - -#: builtins/read.def:230 -#, c-format -msgid "%s: invalid file descriptor specification" -msgstr "" - -#: builtins/read.def:237 -#, c-format -msgid "%d: invalid file descriptor: %s" -msgstr "" - -#: builtins/read.def:463 -#, c-format -msgid "read error: %d: %s" -msgstr "" - -#: builtins/return.def:63 -msgid "can only `return' from a function or sourced script" -msgstr "" - -#: builtins/set.def:743 -msgid "cannot simultaneously unset a function and a variable" -msgstr "" - -#: builtins/set.def:780 -#, c-format -msgid "%s: cannot unset" -msgstr "" - -#: builtins/set.def:787 -#, c-format -msgid "%s: cannot unset: readonly %s" -msgstr "" - -#: builtins/set.def:798 -#, c-format -msgid "%s: not an array variable" -msgstr "" - -#: builtins/setattr.def:165 -#, c-format -msgid "%s: not a function" -msgstr "" - -#: builtins/shift.def:66 builtins/shift.def:72 -msgid "shift count" -msgstr "" - -#: builtins/shopt.def:226 -msgid "cannot set and unset shell options simultaneously" -msgstr "" - -#: builtins/shopt.def:291 -#, c-format -msgid "%s: invalid shell option name" -msgstr "" - -#: builtins/source.def:117 -msgid "filename argument required" -msgstr "" - -#: builtins/source.def:137 -#, c-format -msgid "%s: file not found" -msgstr "" - -#: builtins/suspend.def:93 -msgid "cannot suspend" -msgstr "" - -#: builtins/suspend.def:103 -msgid "cannot suspend a login shell" -msgstr "" - -#: builtins/type.def:231 -#, c-format -msgid "%s is aliased to `%s'\n" -msgstr "" - -#: builtins/type.def:252 -#, c-format -msgid "%s is a shell keyword\n" -msgstr "" - -#: builtins/type.def:272 -#, c-format -msgid "%s is a function\n" -msgstr "" - -#: builtins/type.def:297 -#, c-format -msgid "%s is a shell builtin\n" -msgstr "" - -#: builtins/type.def:318 -#, c-format -msgid "%s is %s\n" -msgstr "" - -#: builtins/type.def:338 -#, c-format -msgid "%s is hashed (%s)\n" -msgstr "" - -#: builtins/ulimit.def:332 -#, c-format -msgid "%s: invalid limit argument" -msgstr "" - -#: builtins/ulimit.def:358 -#, c-format -msgid "`%c': bad command" -msgstr "" - -#: builtins/ulimit.def:387 -#, c-format -msgid "%s: cannot get limit: %s" -msgstr "" - -#: builtins/ulimit.def:425 -#, c-format -msgid "%s: cannot modify limit: %s" -msgstr "" - -#: builtins/umask.def:112 -msgid "octal number" -msgstr "" - -#: builtins/umask.def:226 -#, c-format -msgid "`%c': invalid symbolic mode operator" -msgstr "" - -#: builtins/umask.def:279 -#, c-format -msgid "`%c': invalid symbolic mode character" -msgstr "" - -#: error.c:165 -#, c-format -msgid "last command: %s\n" -msgstr "" - -#: error.c:173 -msgid "Aborting..." -msgstr "" - -#: error.c:260 -#, c-format -msgid "%s: warning: " -msgstr "" - -#: error.c:405 -msgid "unknown command error" -msgstr "" - -#: error.c:406 -msgid "bad command type" -msgstr "" - -#: error.c:407 -msgid "bad connector" -msgstr "" - -#: error.c:408 -msgid "bad jump" -msgstr "" - -#: error.c:446 -#, c-format -msgid "%s: unbound variable" -msgstr "" - -#: eval.c:175 -msgid "timed out waiting for input: auto-logout\n" -msgstr "" - -#: execute_cmd.c:466 -#, c-format -msgid "cannot redirect standard input from /dev/null: %s" -msgstr "" - -#: execute_cmd.c:1036 -#, c-format -msgid "TIMEFORMAT: `%c': invalid format character" -msgstr "" - -#: execute_cmd.c:3521 -#, c-format -msgid "%s: restricted: cannot specify `/' in command names" -msgstr "" - -#: execute_cmd.c:3609 -#, c-format -msgid "%s: command not found" -msgstr "" - -#: execute_cmd.c:3839 -#, c-format -msgid "%s: %s: bad interpreter" -msgstr "" - -#: execute_cmd.c:3876 -#, c-format -msgid "%s: cannot execute binary file" -msgstr "" - -#: execute_cmd.c:3988 -#, c-format -msgid "cannot duplicate fd %d to fd %d" -msgstr "" - -#: expr.c:239 -msgid "expression recursion level exceeded" -msgstr "" - -#: expr.c:263 -msgid "recursion stack underflow" -msgstr "" - -#: expr.c:374 -msgid "syntax error in expression" -msgstr "" - -#: expr.c:414 -msgid "attempted assignment to non-variable" -msgstr "" - -#: expr.c:435 expr.c:440 expr.c:750 -msgid "division by 0" -msgstr "" - -#: expr.c:466 -msgid "bug: bad expassign token" -msgstr "" - -#: expr.c:508 -msgid "`:' expected for conditional expression" -msgstr "" - -#: expr.c:775 -msgid "exponent less than 0" -msgstr "" - -#: expr.c:819 -msgid "identifier expected after pre-increment or pre-decrement" -msgstr "" - -#: expr.c:847 -msgid "missing `)'" -msgstr "" - -#: expr.c:871 -msgid "syntax error: operand expected" -msgstr "" - -#: expr.c:1146 -msgid "invalid number" -msgstr "" - -#: expr.c:1150 -msgid "invalid arithmetic base" -msgstr "" - -#: expr.c:1170 -msgid "value too great for base" -msgstr "" - -#: general.c:60 -msgid "getcwd: cannot access parent directories" -msgstr "" - -#: input.c:231 -#, c-format -msgid "cannot allocate new file descriptor for bash input from fd %d" -msgstr "" - -#: input.c:239 -#, c-format -msgid "save_bash_input: buffer already exists for new fd %d" -msgstr "" - -#: jobs.c:693 -#, c-format -msgid "deleting stopped job %d with process group %ld" -msgstr "" - -#: jobs.c:1001 -#, c-format -msgid "describe_pid: %ld: no such pid" -msgstr "" - -#: jobs.c:1632 nojobs.c:648 -#, c-format -msgid "wait: pid %ld is not a child of this shell" -msgstr "" - -#: jobs.c:1815 -#, c-format -msgid "wait_for: No record of process %ld" -msgstr "" - -#: jobs.c:2062 -#, c-format -msgid "wait_for_job: job %d is stopped" -msgstr "" - -#: jobs.c:2284 -#, c-format -msgid "%s: job has terminated" -msgstr "" - -#: jobs.c:2293 -#, c-format -msgid "%s: job %d already in background" -msgstr "" - -#: jobs.c:3037 -msgid "no job control in this shell" -msgstr "" - -#: lib/malloc/malloc.c:298 -#, c-format -msgid "malloc: failed assertion: %s\n" -msgstr "" - -#: lib/malloc/malloc.c:314 -#, c-format -msgid "" -"\r\n" -"malloc: %s:%d: assertion botched\r\n" -msgstr "" - -#: lib/malloc/malloc.c:740 -msgid "malloc: block on free list clobbered" -msgstr "" - -#: lib/malloc/malloc.c:817 -msgid "free: called with already freed block argument" -msgstr "" - -#: lib/malloc/malloc.c:820 -msgid "free: called with unallocated block argument" -msgstr "" - -#: lib/malloc/malloc.c:839 -msgid "free: underflow detected; mh_nbytes out of range" -msgstr "" - -#: lib/malloc/malloc.c:845 -msgid "free: start and end chunk sizes differ" -msgstr "" - -#: lib/malloc/malloc.c:942 -msgid "realloc: called with unallocated block argument" -msgstr "" - -#: lib/malloc/malloc.c:957 -msgid "realloc: underflow detected; mh_nbytes out of range" -msgstr "" - -#: lib/malloc/malloc.c:963 -msgid "realloc: start and end chunk sizes differ" -msgstr "" - -#: lib/malloc/table.c:175 -msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" -msgstr "" - -#: lib/malloc/table.c:182 -#, c-format -msgid "register_alloc: %p already in table as allocated?\n" -msgstr "" - -#: lib/malloc/table.c:218 -#, c-format -msgid "register_free: %p already in table as free?\n" -msgstr "" - -#: lib/malloc/watch.c:46 -msgid "allocated" -msgstr "" - -#: lib/malloc/watch.c:48 -msgid "freed" -msgstr "" - -#: lib/malloc/watch.c:50 -msgid "requesting resize" -msgstr "" - -#: lib/malloc/watch.c:52 -msgid "just resized" -msgstr "" - -#: lib/malloc/watch.c:54 -msgid "bug: unknown operation" -msgstr "" - -#: lib/malloc/watch.c:56 -#, c-format -msgid "malloc: watch alert: %p %s " -msgstr "" - -#: lib/sh/fmtulong.c:101 -msgid "invalid base" -msgstr "" - -#: lib/sh/netopen.c:158 -#, c-format -msgid "%s: host unknown" -msgstr "" - -#: lib/sh/netopen.c:165 -#, c-format -msgid "%s: invalid service" -msgstr "" - -#: lib/sh/netopen.c:296 -#, c-format -msgid "%s: bad network path specification" -msgstr "" - -#: lib/sh/netopen.c:336 -msgid "network operations not supported" -msgstr "" - -#: mailcheck.c:382 -msgid "You have mail in $_" -msgstr "" - -#: mailcheck.c:407 -msgid "You have new mail in $_" -msgstr "" - -#: mailcheck.c:423 -#, c-format -msgid "The mail in %s has been read\n" -msgstr "" - -#: make_cmd.c:318 -msgid "syntax error: arithmetic expression required" -msgstr "" - -#: make_cmd.c:320 -msgid "syntax error: `;' unexpected" -msgstr "" - -#: make_cmd.c:321 -#, c-format -msgid "syntax error: `((%s))'" -msgstr "" - -#: make_cmd.c:560 -#, c-format -msgid "make_here_document: bad instruction type %d" -msgstr "" - -#: make_cmd.c:730 -#, c-format -msgid "make_redirection: redirection instruction `%d' out of range" -msgstr "" - -#: parse.y:2726 -#, c-format -msgid "unexpected EOF while looking for matching `%c'" -msgstr "" - -#: parse.y:3011 -msgid "unexpected EOF while looking for `]]'" -msgstr "" - -#: parse.y:3016 -#, c-format -msgid "syntax error in conditional expression: unexpected token `%s'" -msgstr "" - -#: parse.y:3020 -msgid "syntax error in conditional expression" -msgstr "" - -#: parse.y:3098 -#, c-format -msgid "unexpected token `%s', expected `)'" -msgstr "" - -#: parse.y:3102 -msgid "expected `)'" -msgstr "" - -#: parse.y:3130 -#, c-format -msgid "unexpected argument `%s' to conditional unary operator" -msgstr "" - -#: parse.y:3134 -msgid "unexpected argument to conditional unary operator" -msgstr "" - -#: parse.y:3171 -#, c-format -msgid "unexpected token `%s', conditional binary operator expected" -msgstr "" - -#: parse.y:3175 -msgid "conditional binary operator expected" -msgstr "" - -#: parse.y:3191 -#, c-format -msgid "unexpected argument `%s' to conditional binary operator" -msgstr "" - -#: parse.y:3195 -msgid "unexpected argument to conditional binary operator" -msgstr "" - -#: parse.y:3206 -#, c-format -msgid "unexpected token `%c' in conditional command" -msgstr "" - -#: parse.y:3209 -#, c-format -msgid "unexpected token `%s' in conditional command" -msgstr "" - -#: parse.y:3213 -#, c-format -msgid "unexpected token %d in conditional command" -msgstr "" - -#: parse.y:4400 -#, c-format -msgid "syntax error near unexpected token `%s'" -msgstr "" - -#: parse.y:4418 -#, c-format -msgid "syntax error near `%s'" -msgstr "" - -#: parse.y:4428 -msgid "syntax error: unexpected end of file" -msgstr "" - -#: parse.y:4428 -msgid "syntax error" -msgstr "" - -#: parse.y:4490 -#, c-format -msgid "Use \"%s\" to leave the shell.\n" -msgstr "" - -#: parse.y:4649 -msgid "unexpected EOF while looking for matching `)'" -msgstr "" - -#: pcomplete.c:988 -#, c-format -msgid "completion: function `%s' not found" -msgstr "" - -#: pcomplib.c:179 -#, c-format -msgid "progcomp_insert: %s: NULL COMPSPEC" -msgstr "" - -#: print_cmd.c:260 -#, c-format -msgid "print_command: bad connector `%d'" -msgstr "" - -#: print_cmd.c:1172 -#, c-format -msgid "cprintf: `%c': invalid format character" -msgstr "" - -#: redir.c:99 -msgid "file descriptor out of range" -msgstr "" - -#: redir.c:141 -#, c-format -msgid "%s: ambiguous redirect" -msgstr "" - -#: redir.c:145 -#, c-format -msgid "%s: cannot overwrite existing file" -msgstr "" - -#: redir.c:150 -#, c-format -msgid "%s: restricted: cannot redirect output" -msgstr "" - -#: redir.c:155 -#, c-format -msgid "cannot create temp file for here document: %s" -msgstr "" - -#: redir.c:509 -msgid "/dev/(tcp|udp)/host/port not supported without networking" -msgstr "" - -#: redir.c:949 -msgid "redirection error: cannot duplicate fd" -msgstr "" - -#: shell.c:302 -msgid "could not find /tmp, please create!" -msgstr "" - -#: shell.c:306 -msgid "/tmp must be a valid directory name" -msgstr "" - -#: shell.c:839 -#, c-format -msgid "%c%c: invalid option" -msgstr "" - -#: shell.c:1590 -msgid "I have no name!" -msgstr "" - -#: shell.c:1725 -#, c-format -msgid "" -"Usage:\t%s [GNU long option] [option] ...\n" -"\t%s [GNU long option] [option] script-file ...\n" -msgstr "" - -#: shell.c:1727 -msgid "GNU long options:\n" -msgstr "" - -#: shell.c:1731 -msgid "Shell options:\n" -msgstr "" - -#: shell.c:1732 -msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" -msgstr "" - -#: shell.c:1747 -#, c-format -msgid "\t-%s or -o option\n" -msgstr "" - -#: shell.c:1753 -#, c-format -msgid "Type `%s -c \"help set\"' for more information about shell options.\n" -msgstr "" - -#: shell.c:1754 -#, c-format -msgid "Type `%s -c help' for more information about shell builtin commands.\n" -msgstr "" - -#: shell.c:1755 -msgid "Use the `bashbug' command to report bugs.\n" -msgstr "" - -#: sig.c:485 -#, c-format -msgid "sigprocmask: %d: invalid operation" -msgstr "" - -#: subst.c:1011 -#, c-format -msgid "bad substitution: no closing `%s' in %s" -msgstr "" - -#: subst.c:2020 -#, c-format -msgid "%s: cannot assign list to array member" -msgstr "" - -#: subst.c:3516 subst.c:3532 -msgid "cannot make pipe for process substitution" -msgstr "" - -#: subst.c:3563 -msgid "cannot make child for process substitution" -msgstr "" - -#: subst.c:3608 -#, c-format -msgid "cannot open named pipe %s for reading" -msgstr "" - -#: subst.c:3610 -#, c-format -msgid "cannot open named pipe %s for writing" -msgstr "" - -#: subst.c:3618 -#, c-format -msgid "cannout reset nodelay mode for fd %d" -msgstr "" - -#: subst.c:3628 -#, c-format -msgid "cannot duplicate named pipe %s as fd %d" -msgstr "" - -#: subst.c:3803 -msgid "cannot make pipe for command substitution" -msgstr "" - -#: subst.c:3832 -msgid "cannot make child for command substitution" -msgstr "" - -#: subst.c:3849 -msgid "command_substitute: cannot duplicate pipe as fd 1" -msgstr "" - -#: subst.c:4284 -#, c-format -msgid "%s: parameter null or not set" -msgstr "" - -#: subst.c:4529 -#, c-format -msgid "%s: substring expression < 0" -msgstr "" - -#: subst.c:5209 -#, c-format -msgid "%s: bad substitution" -msgstr "" - -#: subst.c:5283 -#, c-format -msgid "$%s: cannot assign in this way" -msgstr "" - -#: subst.c:6652 -#, c-format -msgid "no match: %s" -msgstr "" - -#: test.c:154 -msgid "argument expected" -msgstr "" - -#: test.c:163 -#, c-format -msgid "%s: integer expression expected" -msgstr "" - -#: test.c:361 -msgid "`)' expected" -msgstr "" - -#: test.c:363 -#, c-format -msgid "`)' expected, found %s" -msgstr "" - -#: test.c:378 test.c:787 test.c:790 -#, c-format -msgid "%s: unary operator expected" -msgstr "" - -#: test.c:543 test.c:830 -#, c-format -msgid "%s: binary operator expected" -msgstr "" - -#: test.c:905 -msgid "missing `]'" -msgstr "" - -#: trap.c:194 -msgid "invalid signal number" -msgstr "" - -#: trap.c:309 -#, c-format -msgid "run_pending_traps: bad value in trap_list[%d]: %p" -msgstr "" - -#: trap.c:313 -#, c-format -msgid "" -"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" -msgstr "" - -#: trap.c:349 -#, c-format -msgid "trap_handler: bad signal %d" -msgstr "" - -#: variables.c:310 -#, c-format -msgid "error importing function definition for `%s'" -msgstr "" - -#: variables.c:670 -#, c-format -msgid "shell level (%d) too high, resetting to 1" -msgstr "" - -#: variables.c:1610 -msgid "make_local_variable: no function context at current scope" -msgstr "" - -#: variables.c:2709 -msgid "all_local_variables: no function context at current scope" -msgstr "" - -#: variables.c:2923 variables.c:2932 -#, c-format -msgid "invalid character %d in exportstr for %s" -msgstr "" - -#: variables.c:2938 -#, c-format -msgid "no `=' in exportstr for %s" -msgstr "" - -#: variables.c:3363 -msgid "pop_var_context: head of shell_variables not a function context" -msgstr "" - -#: variables.c:3376 -msgid "pop_var_context: no global_variables context" -msgstr "" - -#: variables.c:3442 -msgid "pop_scope: head of shell_variables not a temporary environment scope" -msgstr "" - -#: version.c:82 -msgid "Copyright (C) 2004 Free Software Foundation, Inc.\n" -msgstr "" - -#: xmalloc.c:93 -#, c-format -msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" -msgstr "" - -#: xmalloc.c:95 -#, c-format -msgid "xmalloc: cannot allocate %lu bytes" -msgstr "" - -#: xmalloc.c:115 -#, c-format -msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "" - -#: xmalloc.c:117 -#, c-format -msgid "xrealloc: cannot allocate %lu bytes" -msgstr "" - -#: xmalloc.c:151 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" -msgstr "" - -#: xmalloc.c:153 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes" -msgstr "" - -#: xmalloc.c:175 -#, c-format -msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "" - -#: xmalloc.c:177 -#, c-format -msgid "xrealloc: %s:%d: cannot allocate %lu bytes" -msgstr "" - -#: builtins.c:244 -msgid "`alias' with no arguments or with the -p option prints the list" -msgstr "" - -#: builtins.c:245 -msgid "of aliases in the form alias NAME=VALUE on standard output." -msgstr "" - -#: builtins.c:246 -msgid "Otherwise, an alias is defined for each NAME whose VALUE is given." -msgstr "" - -#: builtins.c:247 -msgid "A trailing space in VALUE causes the next word to be checked for" -msgstr "" - -#: builtins.c:248 -msgid "alias substitution when the alias is expanded. Alias returns" -msgstr "" - -#: builtins.c:249 -msgid "true unless a NAME is given for which no alias has been defined." -msgstr "" - -#: builtins.c:257 -msgid "" -"Remove NAMEs from the list of defined aliases. If the -a option is given," -msgstr "" - -#: builtins.c:258 -msgid "then remove all alias definitions." -msgstr "" - -#: builtins.c:266 -msgid "Bind a key sequence to a Readline function or a macro, or set" -msgstr "" - -#: builtins.c:267 -msgid "a Readline variable. The non-option argument syntax is equivalent" -msgstr "" - -#: builtins.c:268 -msgid "to that found in ~/.inputrc, but must be passed as a single argument:" -msgstr "" - -#: builtins.c:269 -msgid "bind '\"\\C-x\\C-r\": re-read-init-file'." -msgstr "" - -#: builtins.c:270 -msgid "bind accepts the following options:" -msgstr "" - -#: builtins.c:271 -msgid "" -" -m keymap Use `keymap' as the keymap for the duration of this" -msgstr "" - -#: builtins.c:272 -msgid " command. Acceptable keymap names are emacs," -msgstr "" - -#: builtins.c:273 -msgid "" -" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move," -msgstr "" - -#: builtins.c:274 -msgid " vi-command, and vi-insert." -msgstr "" - -#: builtins.c:275 -msgid " -l List names of functions." -msgstr "" - -#: builtins.c:276 -msgid " -P List function names and bindings." -msgstr "" - -#: builtins.c:277 -msgid " -p List functions and bindings in a form that can be" -msgstr "" - -#: builtins.c:278 -msgid " reused as input." -msgstr "" - -#: builtins.c:279 -msgid " -r keyseq Remove the binding for KEYSEQ." -msgstr "" - -#: builtins.c:280 -msgid " -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when" -msgstr "" - -#: builtins.c:281 -msgid "\t\t\t\tKEYSEQ is entered." -msgstr "" - -#: builtins.c:282 -msgid " -f filename Read key bindings from FILENAME." -msgstr "" - -#: builtins.c:283 -msgid " -q function-name Query about which keys invoke the named function." -msgstr "" - -#: builtins.c:284 -msgid "" -" -u function-name Unbind all keys which are bound to the named function." -msgstr "" - -#: builtins.c:285 -msgid " -V List variable names and values" -msgstr "" - -#: builtins.c:286 -msgid " -v List variable names and values in a form that can" -msgstr "" - -#: builtins.c:287 -msgid " be reused as input." -msgstr "" - -#: builtins.c:288 -msgid "" -" -S List key sequences that invoke macros and their values" -msgstr "" - -#: builtins.c:289 -msgid "" -" -s List key sequences that invoke macros and their values" -msgstr "" - -#: builtins.c:290 -msgid " in a form that can be reused as input." -msgstr "" - -#: builtins.c:297 -msgid "Exit from within a FOR, WHILE or UNTIL loop. If N is specified," -msgstr "" - -#: builtins.c:298 -msgid "break N levels." -msgstr "" - -#: builtins.c:304 -msgid "Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop." -msgstr "" - -#: builtins.c:305 -msgid "If N is specified, resume at the N-th enclosing loop." -msgstr "" - -#: builtins.c:311 -msgid "Run a shell builtin. This is useful when you wish to rename a" -msgstr "" - -#: builtins.c:312 -msgid "shell builtin to be a function, but need the functionality of the" -msgstr "" - -#: builtins.c:313 -msgid "builtin within the function itself." -msgstr "" - -#: builtins.c:334 -msgid "Change the current directory to DIR. The variable $HOME is the" -msgstr "" - -#: builtins.c:335 -msgid "default DIR. The variable CDPATH defines the search path for" -msgstr "" - -#: builtins.c:336 -msgid "the directory containing DIR. Alternative directory names in CDPATH" -msgstr "" - -#: builtins.c:337 -msgid "are separated by a colon (:). A null directory name is the same as" -msgstr "" - -#: builtins.c:338 -msgid "the current directory, i.e. `.'. If DIR begins with a slash (/)," -msgstr "" - -#: builtins.c:339 -msgid "then CDPATH is not used. If the directory is not found, and the" -msgstr "" - -#: builtins.c:340 -msgid "shell option `cdable_vars' is set, then try the word as a variable" -msgstr "" - -#: builtins.c:341 -msgid "name. If that variable has a value, then cd to the value of that" -msgstr "" - -#: builtins.c:342 -msgid "variable. The -P option says to use the physical directory structure" -msgstr "" - -#: builtins.c:343 -msgid "" -"instead of following symbolic links; the -L option forces symbolic links" -msgstr "" - -#: builtins.c:344 -msgid "to be followed." -msgstr "" - -#: builtins.c:350 -msgid "Print the current working directory. With the -P option, pwd prints" -msgstr "" - -#: builtins.c:351 -msgid "the physical directory, without any symbolic links; the -L option" -msgstr "" - -#: builtins.c:352 -msgid "makes pwd follow symbolic links." -msgstr "" - -#: builtins.c:358 -msgid "No effect; the command does nothing. A zero exit code is returned." -msgstr "" - -#: builtins.c:364 -msgid "Return a successful result." -msgstr "" - -#: builtins.c:370 -msgid "Return an unsuccessful result." -msgstr "" - -#: builtins.c:376 -msgid "Runs COMMAND with ARGS ignoring shell functions. If you have a shell" -msgstr "" - -#: builtins.c:377 -msgid "function called `ls', and you wish to call the command `ls', you can" -msgstr "" - -#: builtins.c:378 -msgid "say \"command ls\". If the -p option is given, a default value is used" -msgstr "" - -#: builtins.c:379 -msgid "for PATH that is guaranteed to find all of the standard utilities. If" -msgstr "" - -#: builtins.c:380 -msgid "the -V or -v option is given, a string is printed describing COMMAND." -msgstr "" - -#: builtins.c:381 -msgid "The -V option produces a more verbose description." -msgstr "" - -#: builtins.c:387 -msgid "Declare variables and/or give them attributes. If no NAMEs are" -msgstr "" - -#: builtins.c:388 -msgid "given, then display the values of variables instead. The -p option" -msgstr "" - -#: builtins.c:389 -msgid "will display the attributes and values of each NAME." -msgstr "" - -#: builtins.c:391 -msgid "The flags are:" -msgstr "" - -#: builtins.c:393 -msgid " -a\tto make NAMEs arrays (if supported)" -msgstr "" - -#: builtins.c:394 -msgid " -f\tto select from among function names only" -msgstr "" - -#: builtins.c:395 -msgid "" -" -F\tto display function names (and line number and source file name if" -msgstr "" - -#: builtins.c:396 -msgid "\tdebugging) without definitions" -msgstr "" - -#: builtins.c:397 -msgid " -i\tto make NAMEs have the `integer' attribute" -msgstr "" - -#: builtins.c:398 -msgid " -r\tto make NAMEs readonly" -msgstr "" - -#: builtins.c:399 -msgid " -t\tto make NAMEs have the `trace' attribute" -msgstr "" - -#: builtins.c:400 -msgid " -x\tto make NAMEs export" -msgstr "" - -#: builtins.c:402 -msgid "Variables with the integer attribute have arithmetic evaluation (see" -msgstr "" - -#: builtins.c:403 -msgid "`let') done when the variable is assigned to." -msgstr "" - -#: builtins.c:405 -msgid "When displaying values of variables, -f displays a function's name" -msgstr "" - -#: builtins.c:406 -msgid "and definition. The -F option restricts the display to function" -msgstr "" - -#: builtins.c:407 -msgid "name only." -msgstr "" - -#: builtins.c:409 -msgid "Using `+' instead of `-' turns off the given attribute instead. When" -msgstr "" - -#: builtins.c:410 -msgid "used in a function, makes NAMEs local, as with the `local' command." -msgstr "" - -#: builtins.c:416 -msgid "Obsolete. See `declare'." -msgstr "" - -#: builtins.c:422 -msgid "Create a local variable called NAME, and give it VALUE. LOCAL" -msgstr "" - -#: builtins.c:423 -msgid "can only be used within a function; it makes the variable NAME" -msgstr "" - -#: builtins.c:424 -msgid "have a visible scope restricted to that function and its children." -msgstr "" - -#: builtins.c:431 -msgid "Output the ARGs. If -n is specified, the trailing newline is" -msgstr "" - -#: builtins.c:432 -msgid "suppressed. If the -e option is given, interpretation of the" -msgstr "" - -#: builtins.c:433 -msgid "following backslash-escaped characters is turned on:" -msgstr "" - -#: builtins.c:434 -msgid "\t\\a\talert (bell)" -msgstr "" - -#: builtins.c:435 -msgid "\t\\b\tbackspace" -msgstr "" - -#: builtins.c:436 -msgid "\t\\c\tsuppress trailing newline" -msgstr "" - -#: builtins.c:437 -msgid "\t\\E\tescape character" -msgstr "" - -#: builtins.c:438 -msgid "\t\\f\tform feed" -msgstr "" - -#: builtins.c:439 -msgid "\t\\n\tnew line" -msgstr "" - -#: builtins.c:440 -msgid "\t\\r\tcarriage return" -msgstr "" - -#: builtins.c:441 -msgid "\t\\t\thorizontal tab" -msgstr "" - -#: builtins.c:442 -msgid "\t\\v\tvertical tab" -msgstr "" - -#: builtins.c:443 -msgid "\t\\\\\tbackslash" -msgstr "" - -#: builtins.c:444 -msgid "\t\\num\tthe character whose ASCII code is NUM (octal)." -msgstr "" - -#: builtins.c:446 -msgid "You can explicitly turn off the interpretation of the above characters" -msgstr "" - -#: builtins.c:447 -msgid "with the -E option." -msgstr "" - -#: builtins.c:455 -msgid "" -"Output the ARGs. If -n is specified, the trailing newline is suppressed." -msgstr "" - -#: builtins.c:462 -msgid "Enable and disable builtin shell commands. This allows" -msgstr "" - -#: builtins.c:463 -msgid "you to use a disk command which has the same name as a shell" -msgstr "" - -#: builtins.c:464 -msgid "builtin without specifying a full pathname. If -n is used, the" -msgstr "" - -#: builtins.c:465 -msgid "NAMEs become disabled; otherwise NAMEs are enabled. For example," -msgstr "" - -#: builtins.c:466 -msgid "to use the `test' found in $PATH instead of the shell builtin" -msgstr "" - -#: builtins.c:467 -msgid "version, type `enable -n test'. On systems supporting dynamic" -msgstr "" - -#: builtins.c:468 -msgid "loading, the -f option may be used to load new builtins from the" -msgstr "" - -#: builtins.c:469 -msgid "shared object FILENAME. The -d option will delete a builtin" -msgstr "" - -#: builtins.c:470 -msgid "previously loaded with -f. If no non-option names are given, or" -msgstr "" - -#: builtins.c:471 -msgid "the -p option is supplied, a list of builtins is printed. The" -msgstr "" - -#: builtins.c:472 -msgid "-a option means to print every builtin with an indication of whether" -msgstr "" - -#: builtins.c:473 -msgid "" -"or not it is enabled. The -s option restricts the output to the POSIX.2" -msgstr "" - -#: builtins.c:474 -msgid "" -"`special' builtins. The -n option displays a list of all disabled builtins." -msgstr "" - -#: builtins.c:480 -msgid "Read ARGs as input to the shell and execute the resulting command(s)." -msgstr "" - -#: builtins.c:486 -msgid "Getopts is used by shell procedures to parse positional parameters." -msgstr "" - -#: builtins.c:488 -msgid "OPTSTRING contains the option letters to be recognized; if a letter" -msgstr "" - -#: builtins.c:489 -msgid "is followed by a colon, the option is expected to have an argument," -msgstr "" - -#: builtins.c:490 -msgid "which should be separated from it by white space." -msgstr "" - -#: builtins.c:492 -msgid "Each time it is invoked, getopts will place the next option in the" -msgstr "" - -#: builtins.c:493 -msgid "shell variable $name, initializing name if it does not exist, and" -msgstr "" - -#: builtins.c:494 -msgid "the index of the next argument to be processed into the shell" -msgstr "" - -#: builtins.c:495 -msgid "variable OPTIND. OPTIND is initialized to 1 each time the shell or" -msgstr "" - -#: builtins.c:496 -msgid "a shell script is invoked. When an option requires an argument," -msgstr "" - -#: builtins.c:497 -msgid "getopts places that argument into the shell variable OPTARG." -msgstr "" - -#: builtins.c:499 -msgid "getopts reports errors in one of two ways. If the first character" -msgstr "" - -#: builtins.c:500 -msgid "of OPTSTRING is a colon, getopts uses silent error reporting. In" -msgstr "" - -#: builtins.c:501 -msgid "this mode, no error messages are printed. If an invalid option is" -msgstr "" - -#: builtins.c:502 -msgid "seen, getopts places the option character found into OPTARG. If a" -msgstr "" - -#: builtins.c:503 -msgid "required argument is not found, getopts places a ':' into NAME and" -msgstr "" - -#: builtins.c:504 -msgid "sets OPTARG to the option character found. If getopts is not in" -msgstr "" - -#: builtins.c:505 -msgid "silent mode, and an invalid option is seen, getopts places '?' into" -msgstr "" - -#: builtins.c:506 -msgid "NAME and unsets OPTARG. If a required argument is not found, a '?'" -msgstr "" - -#: builtins.c:507 -msgid "is placed in NAME, OPTARG is unset, and a diagnostic message is" -msgstr "" - -#: builtins.c:508 -msgid "printed." -msgstr "" - -#: builtins.c:510 -msgid "If the shell variable OPTERR has the value 0, getopts disables the" -msgstr "" - -#: builtins.c:511 -msgid "printing of error messages, even if the first character of" -msgstr "" - -#: builtins.c:512 -msgid "OPTSTRING is not a colon. OPTERR has the value 1 by default." -msgstr "" - -#: builtins.c:514 -msgid "Getopts normally parses the positional parameters ($0 - $9), but if" -msgstr "" - -#: builtins.c:515 -msgid "more arguments are given, they are parsed instead." -msgstr "" - -#: builtins.c:521 -msgid "Exec FILE, replacing this shell with the specified program." -msgstr "" - -#: builtins.c:522 -msgid "If FILE is not specified, the redirections take effect in this" -msgstr "" - -#: builtins.c:523 -msgid "shell. If the first argument is `-l', then place a dash in the" -msgstr "" - -#: builtins.c:524 -msgid "zeroth arg passed to FILE, as login does. If the `-c' option" -msgstr "" - -#: builtins.c:525 -msgid "is supplied, FILE is executed with a null environment. The `-a'" -msgstr "" - -#: builtins.c:526 -msgid "option means to make set argv[0] of the executed process to NAME." -msgstr "" - -#: builtins.c:527 -msgid "If the file cannot be executed and the shell is not interactive," -msgstr "" - -#: builtins.c:528 -msgid "then the shell exits, unless the shell option `execfail' is set." -msgstr "" - -#: builtins.c:534 -msgid "Exit the shell with a status of N. If N is omitted, the exit status" -msgstr "" - -#: builtins.c:535 -msgid "is that of the last command executed." -msgstr "" - -#: builtins.c:541 -msgid "Logout of a login shell." -msgstr "" - -#: builtins.c:548 -msgid "" -"fc is used to list or edit and re-execute commands from the history list." -msgstr "" - -#: builtins.c:549 -msgid "FIRST and LAST can be numbers specifying the range, or FIRST can be a" -msgstr "" - -#: builtins.c:550 -msgid "string, which means the most recent command beginning with that" -msgstr "" - -#: builtins.c:551 -msgid "string." -msgstr "" - -#: builtins.c:553 -msgid "" -" -e ENAME selects which editor to use. Default is FCEDIT, then EDITOR," -msgstr "" - -#: builtins.c:554 -msgid " then vi." -msgstr "" - -#: builtins.c:556 -msgid " -l means list lines instead of editing." -msgstr "" - -#: builtins.c:557 -msgid " -n means no line numbers listed." -msgstr "" - -#: builtins.c:558 -msgid "" -" -r means reverse the order of the lines (making it newest listed first)." -msgstr "" - -#: builtins.c:560 -msgid "With the `fc -s [pat=rep ...] [command]' format, the command is" -msgstr "" - -#: builtins.c:561 -msgid "re-executed after the substitution OLD=NEW is performed." -msgstr "" - -#: builtins.c:563 -msgid "A useful alias to use with this is r='fc -s', so that typing `r cc'" -msgstr "" - -#: builtins.c:564 -msgid "runs the last command beginning with `cc' and typing `r' re-executes" -msgstr "" - -#: builtins.c:565 -msgid "the last command." -msgstr "" - -#: builtins.c:573 -msgid "Place JOB_SPEC in the foreground, and make it the current job. If" -msgstr "" - -#: builtins.c:574 -msgid "JOB_SPEC is not present, the shell's notion of the current job is" -msgstr "" - -#: builtins.c:575 -msgid "used." -msgstr "" - -#: builtins.c:583 -msgid "Place JOB_SPEC in the background, as if it had been started with" -msgstr "" - -#: builtins.c:584 -msgid "`&'. If JOB_SPEC is not present, the shell's notion of the current" -msgstr "" - -#: builtins.c:585 -msgid "job is used." -msgstr "" - -#: builtins.c:592 -msgid "For each NAME, the full pathname of the command is determined and" -msgstr "" - -#: builtins.c:593 -msgid "remembered. If the -p option is supplied, PATHNAME is used as the" -msgstr "" - -#: builtins.c:594 -msgid "full pathname of NAME, and no path search is performed. The -r" -msgstr "" - -#: builtins.c:595 -msgid "option causes the shell to forget all remembered locations. The -d" -msgstr "" - -#: builtins.c:596 -msgid "option causes the shell to forget the remembered location of each NAME." -msgstr "" - -#: builtins.c:597 -msgid "If the -t option is supplied the full pathname to which each NAME" -msgstr "" - -#: builtins.c:598 -msgid "corresponds is printed. If multiple NAME arguments are supplied with" -msgstr "" - -#: builtins.c:599 -msgid "-t, the NAME is printed before the hashed full pathname. The -l option" -msgstr "" - -#: builtins.c:600 -msgid "causes output to be displayed in a format that may be reused as input." -msgstr "" - -#: builtins.c:601 -msgid "" -"If no arguments are given, information about remembered commands is " -"displayed." -msgstr "" - -#: builtins.c:608 -msgid "Display helpful information about builtin commands. If PATTERN is" -msgstr "" - -#: builtins.c:609 -msgid "specified, gives detailed help on all commands matching PATTERN," -msgstr "" - -#: builtins.c:610 -msgid "otherwise a list of the builtins is printed. The -s option" -msgstr "" - -#: builtins.c:611 -msgid "restricts the output for each builtin command matching PATTERN to" -msgstr "" - -#: builtins.c:612 -msgid "a short usage synopsis." -msgstr "" - -#: builtins.c:620 -msgid "Display the history list with line numbers. Lines listed with" -msgstr "" - -#: builtins.c:621 -msgid "with a `*' have been modified. Argument of N says to list only" -msgstr "" - -#: builtins.c:622 -msgid "the last N lines. The `-c' option causes the history list to be" -msgstr "" - -#: builtins.c:623 -msgid "cleared by deleting all of the entries. The `-d' option deletes" -msgstr "" - -#: builtins.c:624 -msgid "the history entry at offset OFFSET. The `-w' option writes out the" -msgstr "" - -#: builtins.c:625 -msgid "current history to the history file; `-r' means to read the file and" -msgstr "" - -#: builtins.c:626 -msgid "append the contents to the history list instead. `-a' means" -msgstr "" - -#: builtins.c:627 -msgid "to append history lines from this session to the history file." -msgstr "" - -#: builtins.c:628 -msgid "Argument `-n' means to read all history lines not already read" -msgstr "" - -#: builtins.c:629 -msgid "from the history file and append them to the history list." -msgstr "" - -#: builtins.c:631 -msgid "If FILENAME is given, then that is used as the history file else" -msgstr "" - -#: builtins.c:632 -msgid "if $HISTFILE has a value, that is used, else ~/.bash_history." -msgstr "" - -#: builtins.c:633 -msgid "If the -s option is supplied, the non-option ARGs are appended to" -msgstr "" - -#: builtins.c:634 -msgid "the history list as a single entry. The -p option means to perform" -msgstr "" - -#: builtins.c:635 -msgid "history expansion on each ARG and display the result, without storing" -msgstr "" - -#: builtins.c:636 -msgid "anything in the history list." -msgstr "" - -#: builtins.c:638 -msgid "If the $HISTTIMEFORMAT variable is set and not null, its value is used" -msgstr "" - -#: builtins.c:639 -msgid "as a format string for strftime(3) to print the time stamp associated" -msgstr "" - -#: builtins.c:640 -msgid "" -"with each displayed history entry. No time stamps are printed otherwise." -msgstr "" - -#: builtins.c:648 -msgid "Lists the active jobs. The -l option lists process id's in addition" -msgstr "" - -#: builtins.c:649 -msgid "to the normal information; the -p option lists process id's only." -msgstr "" - -#: builtins.c:650 -msgid "If -n is given, only processes that have changed status since the last" -msgstr "" - -#: builtins.c:651 -msgid "notification are printed. JOBSPEC restricts output to that job. The" -msgstr "" - -#: builtins.c:652 -msgid "-r and -s options restrict output to running and stopped jobs only," -msgstr "" - -#: builtins.c:653 -msgid "respectively. Without options, the status of all active jobs is" -msgstr "" - -#: builtins.c:654 -msgid "printed. If -x is given, COMMAND is run after all job specifications" -msgstr "" - -#: builtins.c:655 -msgid "" -"that appear in ARGS have been replaced with the process ID of that job's" -msgstr "" - -#: builtins.c:656 -msgid "process group leader." -msgstr "" - -#: builtins.c:664 -msgid "" -"By default, removes each JOBSPEC argument from the table of active jobs." -msgstr "" - -#: builtins.c:665 -msgid "" -"If the -h option is given, the job is not removed from the table, but is" -msgstr "" - -#: builtins.c:666 -msgid "marked so that SIGHUP is not sent to the job if the shell receives a" -msgstr "" - -#: builtins.c:667 -msgid "" -"SIGHUP. The -a option, when JOBSPEC is not supplied, means to remove all" -msgstr "" - -#: builtins.c:668 -msgid "" -"jobs from the job table; the -r option means to remove only running jobs." -msgstr "" - -#: builtins.c:675 -msgid "Send the processes named by PID (or JOB) the signal SIGSPEC. If" -msgstr "" - -#: builtins.c:676 -msgid "SIGSPEC is not present, then SIGTERM is assumed. An argument of `-l'" -msgstr "" - -#: builtins.c:677 -msgid "lists the signal names; if arguments follow `-l' they are assumed to" -msgstr "" - -#: builtins.c:678 -msgid "be signal numbers for which names should be listed. Kill is a shell" -msgstr "" - -#: builtins.c:679 -msgid "builtin for two reasons: it allows job IDs to be used instead of" -msgstr "" - -#: builtins.c:680 -msgid "process IDs, and, if you have reached the limit on processes that" -msgstr "" - -#: builtins.c:681 -msgid "you can create, you don't have to start a process to kill another one." -msgstr "" - -#: builtins.c:687 -msgid "Each ARG is an arithmetic expression to be evaluated. Evaluation" -msgstr "" - -#: builtins.c:688 -msgid "is done in fixed-width integers with no check for overflow, though" -msgstr "" - -#: builtins.c:689 -msgid "division by 0 is trapped and flagged as an error. The following" -msgstr "" - -#: builtins.c:690 -msgid "list of operators is grouped into levels of equal-precedence operators." -msgstr "" - -#: builtins.c:691 -msgid "The levels are listed in order of decreasing precedence." -msgstr "" - -#: builtins.c:693 -msgid "\tid++, id--\tvariable post-increment, post-decrement" -msgstr "" - -#: builtins.c:694 -msgid "\t++id, --id\tvariable pre-increment, pre-decrement" -msgstr "" - -#: builtins.c:695 -msgid "\t-, +\t\tunary minus, plus" -msgstr "" - -#: builtins.c:696 -msgid "\t!, ~\t\tlogical and bitwise negation" -msgstr "" - -#: builtins.c:697 -msgid "\t**\t\texponentiation" -msgstr "" - -#: builtins.c:698 -msgid "\t*, /, %\t\tmultiplication, division, remainder" -msgstr "" - -#: builtins.c:699 -msgid "\t+, -\t\taddition, subtraction" -msgstr "" - -#: builtins.c:700 -msgid "\t<<, >>\t\tleft and right bitwise shifts" -msgstr "" - -#: builtins.c:701 -msgid "\t<=, >=, <, >\tcomparison" -msgstr "" - -#: builtins.c:702 -msgid "\t==, !=\t\tequality, inequality" -msgstr "" - -#: builtins.c:703 -msgid "\t&\t\tbitwise AND" -msgstr "" - -#: builtins.c:704 -msgid "\t^\t\tbitwise XOR" -msgstr "" - -#: builtins.c:705 -msgid "\t|\t\tbitwise OR" -msgstr "" - -#: builtins.c:706 -msgid "\t&&\t\tlogical AND" -msgstr "" - -#: builtins.c:707 -msgid "\t||\t\tlogical OR" -msgstr "" - -#: builtins.c:708 -msgid "\texpr ? expr : expr" -msgstr "" - -#: builtins.c:709 -msgid "\t\t\tconditional operator" -msgstr "" - -#: builtins.c:710 -msgid "\t=, *=, /=, %=," -msgstr "" - -#: builtins.c:711 -msgid "\t+=, -=, <<=, >>=," -msgstr "" - -#: builtins.c:712 -msgid "\t&=, ^=, |=\tassignment" -msgstr "" - -#: builtins.c:714 -msgid "Shell variables are allowed as operands. The name of the variable" -msgstr "" - -#: builtins.c:715 -msgid "is replaced by its value (coerced to a fixed-width integer) within" -msgstr "" - -#: builtins.c:716 -msgid "an expression. The variable need not have its integer attribute" -msgstr "" - -#: builtins.c:717 -msgid "turned on to be used in an expression." -msgstr "" - -#: builtins.c:719 -msgid "Operators are evaluated in order of precedence. Sub-expressions in" -msgstr "" - -#: builtins.c:720 -msgid "parentheses are evaluated first and may override the precedence" -msgstr "" - -#: builtins.c:721 -msgid "rules above." -msgstr "" - -#: builtins.c:723 -msgid "If the last ARG evaluates to 0, let returns 1; 0 is returned" -msgstr "" - -#: builtins.c:724 -msgid "otherwise." -msgstr "" - -#: builtins.c:730 -msgid "" -"One line is read from the standard input, or from file descriptor FD if the" -msgstr "" - -#: builtins.c:731 -msgid "" -"-u option is supplied, and the first word is assigned to the first NAME," -msgstr "" - -#: builtins.c:732 -msgid "" -"the second word to the second NAME, and so on, with leftover words assigned" -msgstr "" - -#: builtins.c:733 -msgid "" -"to the last NAME. Only the characters found in $IFS are recognized as word" -msgstr "" - -#: builtins.c:734 -msgid "" -"delimiters. If no NAMEs are supplied, the line read is stored in the REPLY" -msgstr "" - -#: builtins.c:735 -msgid "variable. If the -r option is given, this signifies `raw' input, and" -msgstr "" - -#: builtins.c:736 -msgid "backslash escaping is disabled. The -d option causes read to continue" -msgstr "" - -#: builtins.c:737 -msgid "" -"until the first character of DELIM is read, rather than newline. If the -p" -msgstr "" - -#: builtins.c:738 -msgid "" -"option is supplied, the string PROMPT is output without a trailing newline" -msgstr "" - -#: builtins.c:739 -msgid "" -"before attempting to read. If -a is supplied, the words read are assigned" -msgstr "" - -#: builtins.c:740 -msgid "" -"to sequential indices of ARRAY, starting at zero. If -e is supplied and" -msgstr "" - -#: builtins.c:741 -msgid "" -"the shell is interactive, readline is used to obtain the line. If -n is" -msgstr "" - -#: builtins.c:742 -msgid "supplied with a non-zero NCHARS argument, read returns after NCHARS" -msgstr "" - -#: builtins.c:743 -msgid "characters have been read. The -s option causes input coming from a" -msgstr "" - -#: builtins.c:744 -msgid "terminal to not be echoed." -msgstr "" - -#: builtins.c:746 -msgid "" -"The -t option causes read to time out and return failure if a complete line" -msgstr "" - -#: builtins.c:747 -msgid "" -"of input is not read within TIMEOUT seconds. If the TMOUT variable is set," -msgstr "" - -#: builtins.c:748 -msgid "" -"its value is the default timeout. The return code is zero, unless end-of-" -"file" -msgstr "" - -#: builtins.c:749 -msgid "" -"is encountered, read times out, or an invalid file descriptor is supplied as" -msgstr "" - -#: builtins.c:750 -msgid "the argument to -u." -msgstr "" - -#: builtins.c:756 -msgid "Causes a function to exit with the return value specified by N. If N" -msgstr "" - -#: builtins.c:757 -msgid "is omitted, the return status is that of the last command." -msgstr "" - -#: builtins.c:763 -msgid " -a Mark variables which are modified or created for export." -msgstr "" - -#: builtins.c:764 -msgid " -b Notify of job termination immediately." -msgstr "" - -#: builtins.c:765 -msgid " -e Exit immediately if a command exits with a non-zero status." -msgstr "" - -#: builtins.c:766 -msgid " -f Disable file name generation (globbing)." -msgstr "" - -#: builtins.c:767 -msgid " -h Remember the location of commands as they are looked up." -msgstr "" - -#: builtins.c:768 -msgid " -k All assignment arguments are placed in the environment for a" -msgstr "" - -#: builtins.c:769 -msgid " command, not just those that precede the command name." -msgstr "" - -#: builtins.c:770 -msgid " -m Job control is enabled." -msgstr "" - -#: builtins.c:771 -msgid " -n Read commands but do not execute them." -msgstr "" - -#: builtins.c:772 -msgid " -o option-name" -msgstr "" - -#: builtins.c:773 -msgid " Set the variable corresponding to option-name:" -msgstr "" - -#: builtins.c:774 -msgid " allexport same as -a" -msgstr "" - -#: builtins.c:775 -msgid " braceexpand same as -B" -msgstr "" - -#: builtins.c:777 -msgid " emacs use an emacs-style line editing interface" -msgstr "" - -#: builtins.c:779 -msgid " errexit same as -e" -msgstr "" - -#: builtins.c:780 -msgid " errtrace same as -E" -msgstr "" - -#: builtins.c:781 -msgid " functrace same as -T" -msgstr "" - -#: builtins.c:782 -msgid " hashall same as -h" -msgstr "" - -#: builtins.c:784 -msgid " histexpand same as -H" -msgstr "" - -#: builtins.c:787 -msgid " history enable command history" -msgstr "" - -#: builtins.c:789 -msgid " ignoreeof the shell will not exit upon reading EOF" -msgstr "" - -#: builtins.c:790 -msgid " interactive-comments" -msgstr "" - -#: builtins.c:791 -msgid "" -" allow comments to appear in interactive commands" -msgstr "" - -#: builtins.c:792 -msgid " keyword same as -k" -msgstr "" - -#: builtins.c:793 -msgid " monitor same as -m" -msgstr "" - -#: builtins.c:794 -msgid " noclobber same as -C" -msgstr "" - -#: builtins.c:795 -msgid " noexec same as -n" -msgstr "" - -#: builtins.c:796 -msgid " noglob same as -f" -msgstr "" - -#: builtins.c:797 -msgid " nolog currently accepted but ignored" -msgstr "" - -#: builtins.c:798 -msgid " notify same as -b" -msgstr "" - -#: builtins.c:799 -msgid " nounset same as -u" -msgstr "" - -#: builtins.c:800 -msgid " onecmd same as -t" -msgstr "" - -#: builtins.c:801 -msgid " physical same as -P" -msgstr "" - -#: builtins.c:802 -msgid "" -" pipefail the return value of a pipeline is the status of" -msgstr "" - -#: builtins.c:803 -msgid "" -" the last command to exit with a non-zero status," -msgstr "" - -#: builtins.c:804 -msgid "" -" or zero if no command exited with a non-zero status" -msgstr "" - -#: builtins.c:805 -msgid " posix change the behavior of bash where the default" -msgstr "" - -#: builtins.c:806 -msgid " operation differs from the 1003.2 standard to" -msgstr "" - -#: builtins.c:807 -msgid " match the standard" -msgstr "" - -#: builtins.c:808 -msgid " privileged same as -p" -msgstr "" - -#: builtins.c:809 -msgid " verbose same as -v" -msgstr "" - -#: builtins.c:811 -msgid " vi use a vi-style line editing interface" -msgstr "" - -#: builtins.c:813 -msgid " xtrace same as -x" -msgstr "" - -#: builtins.c:814 -msgid "" -" -p Turned on whenever the real and effective user ids do not match." -msgstr "" - -#: builtins.c:815 -msgid " Disables processing of the $ENV file and importing of shell" -msgstr "" - -#: builtins.c:816 -msgid "" -" functions. Turning this option off causes the effective uid and" -msgstr "" - -#: builtins.c:817 -msgid " gid to be set to the real uid and gid." -msgstr "" - -#: builtins.c:818 -msgid " -t Exit after reading and executing one command." -msgstr "" - -#: builtins.c:819 -msgid " -u Treat unset variables as an error when substituting." -msgstr "" - -#: builtins.c:820 -msgid " -v Print shell input lines as they are read." -msgstr "" - -#: builtins.c:821 -msgid " -x Print commands and their arguments as they are executed." -msgstr "" - -#: builtins.c:823 -msgid " -B the shell will perform brace expansion" -msgstr "" - -#: builtins.c:825 -msgid " -C If set, disallow existing regular files to be overwritten" -msgstr "" - -#: builtins.c:826 -msgid " by redirection of output." -msgstr "" - -#: builtins.c:827 -msgid " -E If set, the ERR trap is inherited by shell functions." -msgstr "" - -#: builtins.c:829 -msgid " -H Enable ! style history substitution. This flag is on" -msgstr "" - -#: builtins.c:830 -msgid " by default." -msgstr "" - -#: builtins.c:832 -msgid " -P If set, do not follow symbolic links when executing commands" -msgstr "" - -#: builtins.c:833 -msgid " such as cd which change the current directory." -msgstr "" - -#: builtins.c:834 -msgid " -T If set, the DEBUG trap is inherited by shell functions." -msgstr "" - -#: builtins.c:836 -msgid "Using + rather than - causes these flags to be turned off. The" -msgstr "" - -#: builtins.c:837 -msgid "flags can also be used upon invocation of the shell. The current" -msgstr "" - -#: builtins.c:838 -msgid "set of flags may be found in $-. The remaining n ARGs are positional" -msgstr "" - -#: builtins.c:839 -msgid "parameters and are assigned, in order, to $1, $2, .. $n. If no" -msgstr "" - -#: builtins.c:840 -msgid "ARGs are given, all shell variables are printed." -msgstr "" - -#: builtins.c:846 -msgid "For each NAME, remove the corresponding variable or function. Given" -msgstr "" - -#: builtins.c:847 -msgid "the `-v', unset will only act on variables. Given the `-f' flag," -msgstr "" - -#: builtins.c:848 -msgid "unset will only act on functions. With neither flag, unset first" -msgstr "" - -#: builtins.c:849 -msgid "tries to unset a variable, and if that fails, then tries to unset a" -msgstr "" - -#: builtins.c:850 -msgid "function. Some variables cannot be unset; also see readonly." -msgstr "" - -#: builtins.c:856 -msgid "NAMEs are marked for automatic export to the environment of" -msgstr "" - -#: builtins.c:857 -msgid "subsequently executed commands. If the -f option is given," -msgstr "" - -#: builtins.c:858 -msgid "the NAMEs refer to functions. If no NAMEs are given, or if `-p'" -msgstr "" - -#: builtins.c:859 -msgid "is given, a list of all names that are exported in this shell is" -msgstr "" - -#: builtins.c:860 -msgid "printed. An argument of `-n' says to remove the export property" -msgstr "" - -#: builtins.c:861 -msgid "from subsequent NAMEs. An argument of `--' disables further option" -msgstr "" - -#: builtins.c:862 builtins.c:874 -msgid "processing." -msgstr "" - -#: builtins.c:868 -msgid "The given NAMEs are marked readonly and the values of these NAMEs may" -msgstr "" - -#: builtins.c:869 -msgid "not be changed by subsequent assignment. If the -f option is given," -msgstr "" - -#: builtins.c:870 -msgid "then functions corresponding to the NAMEs are so marked. If no" -msgstr "" - -#: builtins.c:871 -msgid "arguments are given, or if `-p' is given, a list of all readonly names" -msgstr "" - -#: builtins.c:872 -msgid "is printed. The `-a' option means to treat each NAME as" -msgstr "" - -#: builtins.c:873 -msgid "an array variable. An argument of `--' disables further option" -msgstr "" - -#: builtins.c:880 -msgid "The positional parameters from $N+1 ... are renamed to $1 ... If N is" -msgstr "" - -#: builtins.c:881 -msgid "not given, it is assumed to be 1." -msgstr "" - -#: builtins.c:887 builtins.c:896 -msgid "Read and execute commands from FILENAME and return. The pathnames" -msgstr "" - -#: builtins.c:888 builtins.c:897 -msgid "in $PATH are used to find the directory containing FILENAME. If any" -msgstr "" - -#: builtins.c:889 builtins.c:898 -msgid "ARGUMENTS are supplied, they become the positional parameters when" -msgstr "" - -#: builtins.c:890 builtins.c:899 -msgid "FILENAME is executed." -msgstr "" - -#: builtins.c:906 -msgid "Suspend the execution of this shell until it receives a SIGCONT" -msgstr "" - -#: builtins.c:907 -msgid "signal. The `-f' if specified says not to complain about this" -msgstr "" - -#: builtins.c:908 -msgid "being a login shell if it is; just suspend anyway." -msgstr "" - -#: builtins.c:915 -msgid "Exits with a status of 0 (true) or 1 (false) depending on" -msgstr "" - -#: builtins.c:916 -msgid "the evaluation of EXPR. Expressions may be unary or binary. Unary" -msgstr "" - -#: builtins.c:917 -msgid "expressions are often used to examine the status of a file. There" -msgstr "" - -#: builtins.c:918 -msgid "are string operators as well, and numeric comparison operators." -msgstr "" - -#: builtins.c:920 -msgid "File operators:" -msgstr "" - -#: builtins.c:922 -msgid " -a FILE True if file exists." -msgstr "" - -#: builtins.c:923 -msgid " -b FILE True if file is block special." -msgstr "" - -#: builtins.c:924 -msgid " -c FILE True if file is character special." -msgstr "" - -#: builtins.c:925 -msgid " -d FILE True if file is a directory." -msgstr "" - -#: builtins.c:926 -msgid " -e FILE True if file exists." -msgstr "" - -#: builtins.c:927 -msgid " -f FILE True if file exists and is a regular file." -msgstr "" - -#: builtins.c:928 -msgid " -g FILE True if file is set-group-id." -msgstr "" - -#: builtins.c:929 -msgid " -h FILE True if file is a symbolic link." -msgstr "" - -#: builtins.c:930 -msgid " -L FILE True if file is a symbolic link." -msgstr "" - -#: builtins.c:931 -msgid " -k FILE True if file has its `sticky' bit set." -msgstr "" - -#: builtins.c:932 -msgid " -p FILE True if file is a named pipe." -msgstr "" - -#: builtins.c:933 -msgid " -r FILE True if file is readable by you." -msgstr "" - -#: builtins.c:934 -msgid " -s FILE True if file exists and is not empty." -msgstr "" - -#: builtins.c:935 -msgid " -S FILE True if file is a socket." -msgstr "" - -#: builtins.c:936 -msgid " -t FD True if FD is opened on a terminal." -msgstr "" - -#: builtins.c:937 -msgid " -u FILE True if the file is set-user-id." -msgstr "" - -#: builtins.c:938 -msgid " -w FILE True if the file is writable by you." -msgstr "" - -#: builtins.c:939 -msgid " -x FILE True if the file is executable by you." -msgstr "" - -#: builtins.c:940 -msgid " -O FILE True if the file is effectively owned by you." -msgstr "" - -#: builtins.c:941 -msgid " -G FILE True if the file is effectively owned by your group." -msgstr "" - -#: builtins.c:942 -msgid "" -" -N FILE True if the file has been modified since it was last read." -msgstr "" - -#: builtins.c:944 -msgid " FILE1 -nt FILE2 True if file1 is newer than file2 (according to" -msgstr "" - -#: builtins.c:945 -msgid " modification date)." -msgstr "" - -#: builtins.c:947 -msgid " FILE1 -ot FILE2 True if file1 is older than file2." -msgstr "" - -#: builtins.c:949 -msgid " FILE1 -ef FILE2 True if file1 is a hard link to file2." -msgstr "" - -#: builtins.c:951 -msgid "String operators:" -msgstr "" - -#: builtins.c:953 -msgid " -z STRING True if string is empty." -msgstr "" - -#: builtins.c:955 -msgid " -n STRING" -msgstr "" - -#: builtins.c:956 -msgid " STRING True if string is not empty." -msgstr "" - -#: builtins.c:958 -msgid " STRING1 = STRING2" -msgstr "" - -#: builtins.c:959 -msgid " True if the strings are equal." -msgstr "" - -#: builtins.c:960 -msgid " STRING1 != STRING2" -msgstr "" - -#: builtins.c:961 -msgid " True if the strings are not equal." -msgstr "" - -#: builtins.c:962 -msgid " STRING1 < STRING2" -msgstr "" - -#: builtins.c:963 -msgid "" -" True if STRING1 sorts before STRING2 lexicographically." -msgstr "" - -#: builtins.c:964 -msgid " STRING1 > STRING2" -msgstr "" - -#: builtins.c:965 -msgid "" -" True if STRING1 sorts after STRING2 lexicographically." -msgstr "" - -#: builtins.c:967 -msgid "Other operators:" -msgstr "" - -#: builtins.c:969 -msgid " -o OPTION True if the shell option OPTION is enabled." -msgstr "" - -#: builtins.c:970 -msgid " ! EXPR True if expr is false." -msgstr "" - -#: builtins.c:971 -msgid " EXPR1 -a EXPR2 True if both expr1 AND expr2 are true." -msgstr "" - -#: builtins.c:972 -msgid " EXPR1 -o EXPR2 True if either expr1 OR expr2 is true." -msgstr "" - -#: builtins.c:974 -msgid " arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne," -msgstr "" - -#: builtins.c:975 -msgid " -lt, -le, -gt, or -ge." -msgstr "" - -#: builtins.c:977 -msgid "Arithmetic binary operators return true if ARG1 is equal, not-equal," -msgstr "" - -#: builtins.c:978 -msgid "less-than, less-than-or-equal, greater-than, or greater-than-or-equal" -msgstr "" - -#: builtins.c:979 -msgid "than ARG2." -msgstr "" - -#: builtins.c:985 -msgid "This is a synonym for the \"test\" builtin, but the last" -msgstr "" - -#: builtins.c:986 -msgid "argument must be a literal `]', to match the opening `['." -msgstr "" - -#: builtins.c:992 -msgid "Print the accumulated user and system times for processes run from" -msgstr "" - -#: builtins.c:993 -msgid "the shell." -msgstr "" - -#: builtins.c:999 -msgid "The command ARG is to be read and executed when the shell receives" -msgstr "" - -#: builtins.c:1000 -msgid "signal(s) SIGNAL_SPEC. If ARG is absent all specified signals are" -msgstr "" - -#: builtins.c:1001 -msgid "reset to their original values. If ARG is the null string each" -msgstr "" - -#: builtins.c:1002 -msgid "SIGNAL_SPEC is ignored by the shell and by the commands it invokes." -msgstr "" - -#: builtins.c:1003 -msgid "If a SIGNAL_SPEC is EXIT (0) the command ARG is executed on exit from" -msgstr "" - -#: builtins.c:1004 -msgid "the shell. If a SIGNAL_SPEC is DEBUG, ARG is executed after every" -msgstr "" - -#: builtins.c:1005 -msgid "command. If ARG is `-p' then the trap commands associated with" -msgstr "" - -#: builtins.c:1006 -msgid "each SIGNAL_SPEC are displayed. If no arguments are supplied or if" -msgstr "" - -#: builtins.c:1007 -msgid "only `-p' is given, trap prints the list of commands associated with" -msgstr "" - -#: builtins.c:1008 -msgid "" -"each signal number. Each SIGNAL_SPEC is either a signal name in " -msgstr "" - -#: builtins.c:1009 -msgid "or a signal number. `trap -l' prints a list of signal names and their" -msgstr "" - -#: builtins.c:1010 -msgid "corresponding numbers. Note that a signal can be sent to the shell" -msgstr "" - -#: builtins.c:1011 -msgid "with \"kill -signal $$\"." -msgstr "" - -#: builtins.c:1017 -msgid "For each NAME, indicate how it would be interpreted if used as a" -msgstr "" - -#: builtins.c:1018 -msgid "command name." -msgstr "" - -#: builtins.c:1020 -msgid "If the -t option is used, `type' outputs a single word which is one of" -msgstr "" - -#: builtins.c:1021 -msgid "`alias', `keyword', `function', `builtin', `file' or `', if NAME is an" -msgstr "" - -#: builtins.c:1022 -msgid "alias, shell reserved word, shell function, shell builtin, disk file," -msgstr "" - -#: builtins.c:1023 -msgid "or unfound, respectively." -msgstr "" - -#: builtins.c:1025 -msgid "If the -p flag is used, `type' either returns the name of the disk" -msgstr "" - -#: builtins.c:1026 -msgid "file that would be executed, or nothing if `type -t NAME' would not" -msgstr "" - -#: builtins.c:1027 -msgid "return `file'." -msgstr "" - -#: builtins.c:1029 -msgid "If the -a flag is used, `type' displays all of the places that contain" -msgstr "" - -#: builtins.c:1030 -msgid "an executable named `file'. This includes aliases, builtins, and" -msgstr "" - -#: builtins.c:1031 -msgid "functions, if and only if the -p flag is not also used." -msgstr "" - -#: builtins.c:1033 -msgid "The -f flag suppresses shell function lookup." -msgstr "" - -#: builtins.c:1035 -msgid "The -P flag forces a PATH search for each NAME, even if it is an alias," -msgstr "" - -#: builtins.c:1036 -msgid "builtin, or function, and returns the name of the disk file that would" -msgstr "" - -#: builtins.c:1037 -msgid "be executed." -msgstr "" - -#: builtins.c:1044 -msgid "Ulimit provides control over the resources available to processes" -msgstr "" - -#: builtins.c:1045 -msgid "started by the shell, on systems that allow such control. If an" -msgstr "" - -#: builtins.c:1046 -msgid "option is given, it is interpreted as follows:" -msgstr "" - -#: builtins.c:1048 -msgid " -S\tuse the `soft' resource limit" -msgstr "" - -#: builtins.c:1049 -msgid " -H\tuse the `hard' resource limit" -msgstr "" - -#: builtins.c:1050 -msgid " -a\tall current limits are reported" -msgstr "" - -#: builtins.c:1051 -msgid " -c\tthe maximum size of core files created" -msgstr "" - -#: builtins.c:1052 -msgid " -d\tthe maximum size of a process's data segment" -msgstr "" - -#: builtins.c:1053 -msgid " -f\tthe maximum size of files created by the shell" -msgstr "" - -#: builtins.c:1054 -msgid " -l\tthe maximum size a process may lock into memory" -msgstr "" - -#: builtins.c:1055 -msgid " -m\tthe maximum resident set size" -msgstr "" - -#: builtins.c:1056 -msgid " -n\tthe maximum number of open file descriptors" -msgstr "" - -#: builtins.c:1057 -msgid " -p\tthe pipe buffer size" -msgstr "" - -#: builtins.c:1058 -msgid " -s\tthe maximum stack size" -msgstr "" - -#: builtins.c:1059 -msgid " -t\tthe maximum amount of cpu time in seconds" -msgstr "" - -#: builtins.c:1060 -msgid " -u\tthe maximum number of user processes" -msgstr "" - -#: builtins.c:1061 -msgid " -v\tthe size of virtual memory" -msgstr "" - -#: builtins.c:1063 -msgid "If LIMIT is given, it is the new value of the specified resource;" -msgstr "" - -#: builtins.c:1064 -msgid "the special LIMIT values `soft', `hard', and `unlimited' stand for" -msgstr "" - -#: builtins.c:1065 -msgid "" -"the current soft limit, the current hard limit, and no limit, respectively." -msgstr "" - -#: builtins.c:1066 -msgid "Otherwise, the current value of the specified resource is printed." -msgstr "" - -#: builtins.c:1067 -msgid "If no option is given, then -f is assumed. Values are in 1024-byte" -msgstr "" - -#: builtins.c:1068 -msgid "increments, except for -t, which is in seconds, -p, which is in" -msgstr "" - -#: builtins.c:1069 -msgid "increments of 512 bytes, and -u, which is an unscaled number of" -msgstr "" - -#: builtins.c:1070 -msgid "processes." -msgstr "" - -#: builtins.c:1077 -msgid "The user file-creation mask is set to MODE. If MODE is omitted, or if" -msgstr "" - -#: builtins.c:1078 -msgid "`-S' is supplied, the current value of the mask is printed. The `-S'" -msgstr "" - -#: builtins.c:1079 -msgid "option makes the output symbolic; otherwise an octal number is output." -msgstr "" - -#: builtins.c:1080 -msgid "If `-p' is supplied, and MODE is omitted, the output is in a form" -msgstr "" - -#: builtins.c:1081 -msgid "that may be used as input. If MODE begins with a digit, it is" -msgstr "" - -#: builtins.c:1082 -msgid "interpreted as an octal number, otherwise it is a symbolic mode string" -msgstr "" - -#: builtins.c:1083 -msgid "like that accepted by chmod(1)." -msgstr "" - -#: builtins.c:1090 builtins.c:1102 -msgid "Wait for the specified process and report its termination status. If" -msgstr "" - -#: builtins.c:1091 builtins.c:1103 -msgid "N is not given, all currently active child processes are waited for," -msgstr "" - -#: builtins.c:1092 -msgid "and the return code is zero. N may be a process ID or a job" -msgstr "" - -#: builtins.c:1093 -msgid "specification; if a job spec is given, all processes in the job's" -msgstr "" - -#: builtins.c:1094 -msgid "pipeline are waited for." -msgstr "" - -#: builtins.c:1104 -msgid "and the return code is zero. N is a process ID; if it is not given," -msgstr "" - -#: builtins.c:1105 -msgid "all child processes of the shell are waited for." -msgstr "" - -#: builtins.c:1112 -msgid "The `for' loop executes a sequence of commands for each member in a" -msgstr "" - -#: builtins.c:1113 -msgid "list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is" -msgstr "" - -#: builtins.c:1114 -msgid "assumed. For each element in WORDS, NAME is set to that element, and" -msgstr "" - -#: builtins.c:1115 -msgid "the COMMANDS are executed." -msgstr "" - -#: builtins.c:1121 -msgid "Equivalent to" -msgstr "" - -#: builtins.c:1122 -msgid "\t(( EXP1 ))" -msgstr "" - -#: builtins.c:1123 -msgid "\twhile (( EXP2 )); do" -msgstr "" - -#: builtins.c:1124 -msgid "\t\tCOMMANDS" -msgstr "" - -#: builtins.c:1125 -msgid "\t\t(( EXP3 ))" -msgstr "" - -#: builtins.c:1126 -msgid "\tdone" -msgstr "" - -#: builtins.c:1127 -msgid "EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is" -msgstr "" - -#: builtins.c:1128 -msgid "omitted, it behaves as if it evaluates to 1." -msgstr "" - -#: builtins.c:1134 -msgid "The WORDS are expanded, generating a list of words. The" -msgstr "" - -#: builtins.c:1135 -msgid "set of expanded words is printed on the standard error, each" -msgstr "" - -#: builtins.c:1136 -msgid "preceded by a number. If `in WORDS' is not present, `in \"$@\"'" -msgstr "" - -#: builtins.c:1137 -msgid "is assumed. The PS3 prompt is then displayed and a line read" -msgstr "" - -#: builtins.c:1138 -msgid "from the standard input. If the line consists of the number" -msgstr "" - -#: builtins.c:1139 -msgid "corresponding to one of the displayed words, then NAME is set" -msgstr "" - -#: builtins.c:1140 -msgid "to that word. If the line is empty, WORDS and the prompt are" -msgstr "" - -#: builtins.c:1141 -msgid "redisplayed. If EOF is read, the command completes. Any other" -msgstr "" - -#: builtins.c:1142 -msgid "value read causes NAME to be set to null. The line read is saved" -msgstr "" - -#: builtins.c:1143 -msgid "in the variable REPLY. COMMANDS are executed after each selection" -msgstr "" - -#: builtins.c:1144 -msgid "until a break command is executed." -msgstr "" - -#: builtins.c:1150 -msgid "Execute PIPELINE and print a summary of the real time, user CPU time," -msgstr "" - -#: builtins.c:1151 -msgid "and system CPU time spent executing PIPELINE when it terminates." -msgstr "" - -#: builtins.c:1152 -msgid "The return status is the return status of PIPELINE. The `-p' option" -msgstr "" - -#: builtins.c:1153 -msgid "prints the timing summary in a slightly different format. This uses" -msgstr "" - -#: builtins.c:1154 -msgid "the value of the TIMEFORMAT variable as the output format." -msgstr "" - -#: builtins.c:1160 -msgid "Selectively execute COMMANDS based upon WORD matching PATTERN. The" -msgstr "" - -#: builtins.c:1161 -msgid "`|' is used to separate multiple patterns." -msgstr "" - -#: builtins.c:1167 -msgid "" -"The if COMMANDS are executed. If the exit status is zero, then the then" -msgstr "" - -#: builtins.c:1168 -msgid "" -"COMMANDS are executed. Otherwise, each of the elif COMMANDS are executed" -msgstr "" - -#: builtins.c:1169 -msgid "" -"in turn, and if the exit status is zero, the corresponding then COMMANDS" -msgstr "" - -#: builtins.c:1170 -msgid "" -"are executed and the if command completes. Otherwise, the else COMMANDS" -msgstr "" - -#: builtins.c:1171 -msgid "" -"are executed, if present. The exit status is the exit status of the last" -msgstr "" - -#: builtins.c:1172 -msgid "command executed, or zero if no condition tested true." -msgstr "" - -#: builtins.c:1178 builtins.c:1185 -msgid "Expand and execute COMMANDS as long as the final command in the" -msgstr "" - -#: builtins.c:1179 -msgid "`while' COMMANDS has an exit status of zero." -msgstr "" - -#: builtins.c:1186 -msgid "`until' COMMANDS has an exit status which is not zero." -msgstr "" - -#: builtins.c:1192 -msgid "Create a simple command invoked by NAME which runs COMMANDS." -msgstr "" - -#: builtins.c:1193 -msgid "Arguments on the command line along with NAME are passed to the" -msgstr "" - -#: builtins.c:1194 -msgid "function as $0 .. $n." -msgstr "" - -#: builtins.c:1200 -msgid "Run a set of commands in a group. This is one way to redirect an" -msgstr "" - -#: builtins.c:1201 -msgid "entire set of commands." -msgstr "" - -#: builtins.c:1207 -msgid "This is similar to the `fg' command. Resume a stopped or background" -msgstr "" - -#: builtins.c:1208 -msgid "job. If you specifiy DIGITS, then that job is used. If you specify" -msgstr "" - -#: builtins.c:1209 -msgid "WORD, then the job whose name begins with WORD is used. Following the" -msgstr "" - -#: builtins.c:1210 -msgid "job specification with a `&' places the job in the background." -msgstr "" - -#: builtins.c:1216 -msgid "The EXPRESSION is evaluated according to the rules for arithmetic" -msgstr "" - -#: builtins.c:1217 -msgid "evaluation. Equivalent to \"let EXPRESSION\"." -msgstr "" - -#: builtins.c:1223 -msgid "" -"Returns a status of 0 or 1 depending on the evaluation of the conditional" -msgstr "" - -#: builtins.c:1224 -msgid "" -"expression EXPRESSION. Expressions are composed of the same primaries used" -msgstr "" - -#: builtins.c:1225 -msgid "" -"by the `test' builtin, and may be combined using the following operators" -msgstr "" - -#: builtins.c:1227 -msgid "\t( EXPRESSION )\tReturns the value of EXPRESSION" -msgstr "" - -#: builtins.c:1228 -msgid "\t! EXPRESSION\tTrue if EXPRESSION is false; else false" -msgstr "" - -#: builtins.c:1229 -msgid "\tEXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false" -msgstr "" - -#: builtins.c:1230 -msgid "\tEXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false" -msgstr "" - -#: builtins.c:1232 -msgid "" -"When the `==' and `!=' operators are used, the string to the right of the" -msgstr "" - -#: builtins.c:1233 -msgid "operator is used as a pattern and pattern matching is performed. The" -msgstr "" - -#: builtins.c:1234 -msgid "&& and || operators do not evaluate EXPR2 if EXPR1 is sufficient to" -msgstr "" - -#: builtins.c:1235 -msgid "determine the expression's value." -msgstr "" - -#: builtins.c:1241 -msgid "BASH_VERSION Version information for this Bash." -msgstr "" - -#: builtins.c:1242 -msgid "CDPATH A colon separated list of directories to search" -msgstr "" - -#: builtins.c:1243 -msgid "\t\twhen the argument to `cd' is not found in the current" -msgstr "" - -#: builtins.c:1244 -msgid "\t\tdirectory." -msgstr "" - -#: builtins.c:1245 -msgid "GLOBIGNORE\tA colon-separated list of patterns describing filenames to" -msgstr "" - -#: builtins.c:1246 -msgid "\t\tbe ignored by pathname expansion." -msgstr "" - -#: builtins.c:1248 -msgid "" -"HISTFILE The name of the file where your command history is stored." -msgstr "" - -#: builtins.c:1249 -msgid "HISTFILESIZE The maximum number of lines this file can contain." -msgstr "" - -#: builtins.c:1250 -msgid "HISTSIZE The maximum number of history lines that a running" -msgstr "" - -#: builtins.c:1251 -msgid "\t\tshell can access." -msgstr "" - -#: builtins.c:1253 -msgid "HOME The complete pathname to your login directory." -msgstr "" - -#: builtins.c:1254 -msgid "HOSTNAME\tThe name of the current host." -msgstr "" - -#: builtins.c:1255 -msgid "HOSTTYPE The type of CPU this version of Bash is running under." -msgstr "" - -#: builtins.c:1256 -msgid "IGNOREEOF Controls the action of the shell on receipt of an EOF" -msgstr "" - -#: builtins.c:1257 -msgid "\t\tcharacter as the sole input. If set, then the value" -msgstr "" - -#: builtins.c:1258 -msgid "\t\tof it is the number of EOF characters that can be seen" -msgstr "" - -#: builtins.c:1259 -msgid "\t\tin a row on an empty line before the shell will exit" -msgstr "" - -#: builtins.c:1260 -msgid "\t\t(default 10). When unset, EOF signifies the end of input." -msgstr "" - -#: builtins.c:1261 -msgid "MACHTYPE\tA string describing the current system Bash is running on." -msgstr "" - -#: builtins.c:1262 -msgid "MAILCHECK\tHow often, in seconds, Bash checks for new mail." -msgstr "" - -#: builtins.c:1263 -msgid "MAILPATH\tA colon-separated list of filenames which Bash checks" -msgstr "" - -#: builtins.c:1264 -msgid "\t\tfor new mail." -msgstr "" - -#: builtins.c:1265 -msgid "OSTYPE\t\tThe version of Unix this version of Bash is running on." -msgstr "" - -#: builtins.c:1266 -msgid "PATH A colon-separated list of directories to search when" -msgstr "" - -#: builtins.c:1267 -msgid "\t\tlooking for commands." -msgstr "" - -#: builtins.c:1268 -msgid "PROMPT_COMMAND A command to be executed before the printing of each" -msgstr "" - -#: builtins.c:1269 -msgid "\t\tprimary prompt." -msgstr "" - -#: builtins.c:1270 -msgid "PS1 The primary prompt string." -msgstr "" - -#: builtins.c:1271 -msgid "PS2 The secondary prompt string." -msgstr "" - -#: builtins.c:1272 -msgid "PWD\t\tThe full pathname of the current directory." -msgstr "" - -#: builtins.c:1273 -msgid "SHELLOPTS\tA colon-separated list of enabled shell options." -msgstr "" - -#: builtins.c:1274 -msgid "TERM The name of the current terminal type." -msgstr "" - -#: builtins.c:1275 -msgid "TIMEFORMAT\tThe output format for timing statistics displayed by the" -msgstr "" - -#: builtins.c:1276 -msgid "\t\t`time' reserved word." -msgstr "" - -#: builtins.c:1277 -msgid "auto_resume Non-null means a command word appearing on a line by" -msgstr "" - -#: builtins.c:1278 -msgid "\t\titself is first looked for in the list of currently" -msgstr "" - -#: builtins.c:1279 -msgid "\t\tstopped jobs. If found there, that job is foregrounded." -msgstr "" - -#: builtins.c:1280 -msgid "\t\tA value of `exact' means that the command word must" -msgstr "" - -#: builtins.c:1281 -msgid "\t\texactly match a command in the list of stopped jobs. A" -msgstr "" - -#: builtins.c:1282 -msgid "\t\tvalue of `substring' means that the command word must" -msgstr "" - -#: builtins.c:1283 -msgid "\t\tmatch a substring of the job. Any other value means that" -msgstr "" - -#: builtins.c:1284 -msgid "\t\tthe command must be a prefix of a stopped job." -msgstr "" - -#: builtins.c:1287 -msgid "histchars Characters controlling history expansion and quick" -msgstr "" - -#: builtins.c:1288 -msgid "\t\tsubstitution. The first character is the history" -msgstr "" - -#: builtins.c:1289 -msgid "\t\tsubstitution character, usually `!'. The second is" -msgstr "" - -#: builtins.c:1290 -msgid "\t\tthe `quick substitution' character, usually `^'. The" -msgstr "" - -#: builtins.c:1291 -msgid "\t\tthird is the `history comment' character, usually `#'." -msgstr "" - -#: builtins.c:1293 -msgid "HISTIGNORE\tA colon-separated list of patterns used to decide which" -msgstr "" - -#: builtins.c:1294 -msgid "\t\tcommands should be saved on the history list." -msgstr "" - -#: builtins.c:1306 -msgid "+N\tRotates the stack so that the Nth directory (counting" -msgstr "" - -#: builtins.c:1307 -msgid "\tfrom the left of the list shown by `dirs', starting with" -msgstr "" - -#: builtins.c:1308 builtins.c:1312 -msgid "\tzero) is at the top." -msgstr "" - -#: builtins.c:1310 -msgid "-N\tRotates the stack so that the Nth directory (counting" -msgstr "" - -#: builtins.c:1311 -msgid "\tfrom the right of the list shown by `dirs', starting with" -msgstr "" - -#: builtins.c:1314 -msgid "-n\tsuppress the normal change of directory when adding directories" -msgstr "" - -#: builtins.c:1315 -msgid "\tto the stack, so only the stack is manipulated." -msgstr "" - -#: builtins.c:1317 -msgid "dir\tadds DIR to the directory stack at the top, making it the" -msgstr "" - -#: builtins.c:1318 -msgid "\tnew current working directory." -msgstr "" - -#: builtins.c:1332 -msgid "+N\tremoves the Nth entry counting from the left of the list" -msgstr "" - -#: builtins.c:1333 -msgid "\tshown by `dirs', starting with zero. For example: `popd +0'" -msgstr "" - -#: builtins.c:1334 -msgid "\tremoves the first directory, `popd +1' the second." -msgstr "" - -#: builtins.c:1336 -msgid "-N\tremoves the Nth entry counting from the right of the list" -msgstr "" - -#: builtins.c:1337 -msgid "\tshown by `dirs', starting with zero. For example: `popd -0'" -msgstr "" - -#: builtins.c:1338 -msgid "\tremoves the last directory, `popd -1' the next to last." -msgstr "" - -#: builtins.c:1340 -msgid "-n\tsuppress the normal change of directory when removing directories" -msgstr "" - -#: builtins.c:1341 -msgid "\tfrom the stack, so only the stack is manipulated." -msgstr "" - -#: builtins.c:1363 -msgid "+N\tdisplays the Nth entry counting from the left of the list shown by" -msgstr "" - -#: builtins.c:1364 builtins.c:1367 -msgid "\tdirs when invoked without options, starting with zero." -msgstr "" - -#: builtins.c:1366 -msgid "-N\tdisplays the Nth entry counting from the right of the list shown by" -msgstr "" - -#: builtins.c:1374 -msgid "Toggle the values of variables controlling optional behavior." -msgstr "" - -#: builtins.c:1375 -msgid "The -s flag means to enable (set) each OPTNAME; the -u flag" -msgstr "" - -#: builtins.c:1376 -msgid "unsets each OPTNAME. The -q flag suppresses output; the exit" -msgstr "" - -#: builtins.c:1377 -msgid "status indicates whether each OPTNAME is set or unset. The -o" -msgstr "" - -#: builtins.c:1378 -msgid "option restricts the OPTNAMEs to those defined for use with" -msgstr "" - -#: builtins.c:1379 -msgid "`set -o'. With no options, or with the -p option, a list of all" -msgstr "" - -#: builtins.c:1380 -msgid "settable options is displayed, with an indication of whether or" -msgstr "" - -#: builtins.c:1381 -msgid "not each is set." -msgstr "" - -#: builtins.c:1387 -msgid "printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT" -msgstr "" - -#: builtins.c:1388 -msgid "is a character string which contains three types of objects: plain" -msgstr "" - -#: builtins.c:1389 -msgid "" -"characters, which are simply copied to standard output, character escape" -msgstr "" - -#: builtins.c:1390 -msgid "sequences which are converted and copied to the standard output, and" -msgstr "" - -#: builtins.c:1391 -msgid "" -"format specifications, each of which causes printing of the next successive" -msgstr "" - -#: builtins.c:1392 -msgid "argument. In addition to the standard printf(1) formats, %b means to" -msgstr "" - -#: builtins.c:1393 -msgid "expand backslash escape sequences in the corresponding argument, and %q" -msgstr "" - -#: builtins.c:1394 -msgid "means to quote the argument in a way that can be reused as shell input." -msgstr "" - -#: builtins.c:1401 -msgid "For each NAME, specify how arguments are to be completed." -msgstr "" - -#: builtins.c:1402 -msgid "If the -p option is supplied, or if no options are supplied, existing" -msgstr "" - -#: builtins.c:1403 -msgid "completion specifications are printed in a way that allows them to be" -msgstr "" - -#: builtins.c:1404 -msgid "reused as input. The -r option removes a completion specification for" -msgstr "" - -#: builtins.c:1405 -msgid "each NAME, or, if no NAMEs are supplied, all completion specifications." -msgstr "" - -#: builtins.c:1413 -msgid "Display the possible completions depending on the options. Intended" -msgstr "" - -#: builtins.c:1414 -msgid "" -"to be used from within a shell function generating possible completions." -msgstr "" - -#: builtins.c:1415 -msgid "If the optional WORD argument is supplied, matches against WORD are" -msgstr "" - -#: builtins.c:1416 -msgid "generated." -msgstr "" diff --git a/po.orig/boldquot.sed b/po.orig/boldquot.sed deleted file mode 100644 index 4b937aa51..000000000 --- a/po.orig/boldquot.sed +++ /dev/null @@ -1,10 +0,0 @@ -s/"\([^"]*\)"/“\1”/g -s/`\([^`']*\)'/‘\1’/g -s/ '\([^`']*\)' / ‘\1’ /g -s/ '\([^`']*\)'$/ ‘\1’/g -s/^'\([^`']*\)' /‘\1’ /g -s/“”/""/g -s/“/“/g -s/”/”/g -s/‘/‘/g -s/’/’/g diff --git a/po.orig/builtins.pot b/po.orig/builtins.pot deleted file mode 100644 index e30179c3a..000000000 --- a/po.orig/builtins.pot +++ /dev/null @@ -1,2845 +0,0 @@ -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:244 -msgid "`alias' with no arguments or with the -p option prints the list" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:245 -msgid "of aliases in the form alias NAME=VALUE on standard output." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:246 -msgid "Otherwise, an alias is defined for each NAME whose VALUE is given." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:247 -msgid "A trailing space in VALUE causes the next word to be checked for" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:248 -msgid "alias substitution when the alias is expanded. Alias returns" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:249 -msgid "true unless a NAME is given for which no alias has been defined." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:257 -msgid "" -"Remove NAMEs from the list of defined aliases. If the -a option is given," -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:258 -msgid "then remove all alias definitions." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:266 -msgid "Bind a key sequence to a Readline function or a macro, or set" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:267 -msgid "a Readline variable. The non-option argument syntax is equivalent" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:268 -msgid "to that found in ~/.inputrc, but must be passed as a single argument:" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:269 -msgid "bind '\"\\C-x\\C-r\": re-read-init-file'." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:270 -msgid "bind accepts the following options:" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:271 -msgid "" -" -m keymap Use `keymap' as the keymap for the duration of this" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:272 -msgid " command. Acceptable keymap names are emacs," -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:273 -msgid "" -" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move," -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:274 -msgid " vi-command, and vi-insert." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:275 -msgid " -l List names of functions." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:276 -msgid " -P List function names and bindings." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:277 -msgid " -p List functions and bindings in a form that can be" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:278 -msgid " reused as input." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:279 -msgid " -r keyseq Remove the binding for KEYSEQ." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:280 -msgid " -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:281 -msgid "\t\t\t\tKEYSEQ is entered." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:282 -msgid " -f filename Read key bindings from FILENAME." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:283 -msgid " -q function-name Query about which keys invoke the named function." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:284 -msgid "" -" -u function-name Unbind all keys which are bound to the named function." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:285 -msgid " -V List variable names and values" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:286 -msgid " -v List variable names and values in a form that can" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:287 -msgid " be reused as input." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:288 -msgid "" -" -S List key sequences that invoke macros and their values" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:289 -msgid "" -" -s List key sequences that invoke macros and their values" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:290 -msgid " in a form that can be reused as input." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:297 -msgid "Exit from within a FOR, WHILE or UNTIL loop. If N is specified," -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:298 -msgid "break N levels." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:304 -msgid "Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:305 -msgid "If N is specified, resume at the N-th enclosing loop." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:311 -msgid "Run a shell builtin. This is useful when you wish to rename a" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:312 -msgid "shell builtin to be a function, but need the functionality of the" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:313 -msgid "builtin within the function itself." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:320 -msgid "Returns the context of the current subroutine call." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:321 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:325 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:390 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:392 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:401 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:404 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:408 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:445 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:487 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:491 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:498 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:509 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:513 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:552 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:555 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:559 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:562 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:630 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:637 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:692 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:713 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:718 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:722 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:745 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:835 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:919 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:921 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:943 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:946 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:948 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:950 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:952 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:954 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:957 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:966 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:968 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:973 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:976 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1019 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1024 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1028 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1032 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1034 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1047 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1062 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1226 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1231 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1305 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1309 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1313 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1316 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1319 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1331 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1335 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1339 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1342 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1354 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1362 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1365 -msgid "" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:322 -msgid "Without EXPR, returns returns \"$line $filename\". With EXPR," -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:323 -msgid "returns \"$line $subroutine $filename\"; this extra information" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:324 -msgid "can be used used to provide a stack trace." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:326 -msgid "The value of EXPR indicates how many call frames to go back before the" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:327 -msgid "current one; the top frame is frame 0." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:334 -msgid "Change the current directory to DIR. The variable $HOME is the" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:335 -msgid "default DIR. The variable CDPATH defines the search path for" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:336 -msgid "the directory containing DIR. Alternative directory names in CDPATH" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:337 -msgid "are separated by a colon (:). A null directory name is the same as" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:338 -msgid "the current directory, i.e. `.'. If DIR begins with a slash (/)," -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:339 -msgid "then CDPATH is not used. If the directory is not found, and the" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:340 -msgid "shell option `cdable_vars' is set, then try the word as a variable" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:341 -msgid "name. If that variable has a value, then cd to the value of that" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:342 -msgid "variable. The -P option says to use the physical directory structure" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:343 -msgid "" -"instead of following symbolic links; the -L option forces symbolic links" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:344 -msgid "to be followed." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:350 -msgid "Print the current working directory. With the -P option, pwd prints" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:351 -msgid "the physical directory, without any symbolic links; the -L option" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:352 -msgid "makes pwd follow symbolic links." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:358 -msgid "No effect; the command does nothing. A zero exit code is returned." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:364 -msgid "Return a successful result." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:370 -msgid "Return an unsuccessful result." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:376 -msgid "Runs COMMAND with ARGS ignoring shell functions. If you have a shell" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:377 -msgid "function called `ls', and you wish to call the command `ls', you can" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:378 -msgid "say \"command ls\". If the -p option is given, a default value is used" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:379 -msgid "for PATH that is guaranteed to find all of the standard utilities. If" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:380 -msgid "the -V or -v option is given, a string is printed describing COMMAND." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:381 -msgid "The -V option produces a more verbose description." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:387 -msgid "Declare variables and/or give them attributes. If no NAMEs are" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:388 -msgid "given, then display the values of variables instead. The -p option" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:389 -msgid "will display the attributes and values of each NAME." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:391 -msgid "The flags are:" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:393 -msgid " -a\tto make NAMEs arrays (if supported)" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:394 -msgid " -f\tto select from among function names only" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:395 -msgid "" -" -F\tto display function names (and line number and source file name if" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:396 -msgid "\tdebugging) without definitions" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:397 -msgid " -i\tto make NAMEs have the `integer' attribute" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:398 -msgid " -r\tto make NAMEs readonly" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:399 -msgid " -t\tto make NAMEs have the `trace' attribute" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:400 -msgid " -x\tto make NAMEs export" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:402 -msgid "Variables with the integer attribute have arithmetic evaluation (see" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:403 -msgid "`let') done when the variable is assigned to." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:405 -msgid "When displaying values of variables, -f displays a function's name" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:406 -msgid "and definition. The -F option restricts the display to function" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:407 -msgid "name only." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:409 -msgid "Using `+' instead of `-' turns off the given attribute instead. When" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:410 -msgid "used in a function, makes NAMEs local, as with the `local' command." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:416 -msgid "Obsolete. See `declare'." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:422 -msgid "Create a local variable called NAME, and give it VALUE. LOCAL" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:423 -msgid "can only be used within a function; it makes the variable NAME" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:424 -msgid "have a visible scope restricted to that function and its children." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:431 -msgid "Output the ARGs. If -n is specified, the trailing newline is" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:432 -msgid "suppressed. If the -e option is given, interpretation of the" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:433 -msgid "following backslash-escaped characters is turned on:" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:434 -msgid "\t\\a\talert (bell)" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:435 -msgid "\t\\b\tbackspace" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:436 -msgid "\t\\c\tsuppress trailing newline" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:437 -msgid "\t\\E\tescape character" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:438 -msgid "\t\\f\tform feed" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:439 -msgid "\t\\n\tnew line" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:440 -msgid "\t\\r\tcarriage return" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:441 -msgid "\t\\t\thorizontal tab" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:442 -msgid "\t\\v\tvertical tab" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:443 -msgid "\t\\\\\tbackslash" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:444 -msgid "\t\\num\tthe character whose ASCII code is NUM (octal)." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:446 -msgid "You can explicitly turn off the interpretation of the above characters" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:447 -msgid "with the -E option." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:455 -msgid "" -"Output the ARGs. If -n is specified, the trailing newline is suppressed." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:462 -msgid "Enable and disable builtin shell commands. This allows" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:463 -msgid "you to use a disk command which has the same name as a shell" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:464 -msgid "builtin without specifying a full pathname. If -n is used, the" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:465 -msgid "NAMEs become disabled; otherwise NAMEs are enabled. For example," -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:466 -msgid "to use the `test' found in $PATH instead of the shell builtin" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:467 -msgid "version, type `enable -n test'. On systems supporting dynamic" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:468 -msgid "loading, the -f option may be used to load new builtins from the" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:469 -msgid "shared object FILENAME. The -d option will delete a builtin" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:470 -msgid "previously loaded with -f. If no non-option names are given, or" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:471 -msgid "the -p option is supplied, a list of builtins is printed. The" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:472 -msgid "-a option means to print every builtin with an indication of whether" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:473 -msgid "" -"or not it is enabled. The -s option restricts the output to the POSIX.2" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:474 -msgid "" -"`special' builtins. The -n option displays a list of all disabled builtins." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:480 -msgid "Read ARGs as input to the shell and execute the resulting command(s)." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:486 -msgid "Getopts is used by shell procedures to parse positional parameters." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:488 -msgid "OPTSTRING contains the option letters to be recognized; if a letter" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:489 -msgid "is followed by a colon, the option is expected to have an argument," -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:490 -msgid "which should be separated from it by white space." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:492 -msgid "Each time it is invoked, getopts will place the next option in the" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:493 -msgid "shell variable $name, initializing name if it does not exist, and" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:494 -msgid "the index of the next argument to be processed into the shell" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:495 -msgid "variable OPTIND. OPTIND is initialized to 1 each time the shell or" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:496 -msgid "a shell script is invoked. When an option requires an argument," -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:497 -msgid "getopts places that argument into the shell variable OPTARG." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:499 -msgid "getopts reports errors in one of two ways. If the first character" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:500 -msgid "of OPTSTRING is a colon, getopts uses silent error reporting. In" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:501 -msgid "this mode, no error messages are printed. If an invalid option is" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:502 -msgid "seen, getopts places the option character found into OPTARG. If a" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:503 -msgid "required argument is not found, getopts places a ':' into NAME and" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:504 -msgid "sets OPTARG to the option character found. If getopts is not in" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:505 -msgid "silent mode, and an invalid option is seen, getopts places '?' into" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:506 -msgid "NAME and unsets OPTARG. If a required argument is not found, a '?'" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:507 -msgid "is placed in NAME, OPTARG is unset, and a diagnostic message is" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:508 -msgid "printed." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:510 -msgid "If the shell variable OPTERR has the value 0, getopts disables the" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:511 -msgid "printing of error messages, even if the first character of" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:512 -msgid "OPTSTRING is not a colon. OPTERR has the value 1 by default." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:514 -msgid "Getopts normally parses the positional parameters ($0 - $9), but if" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:515 -msgid "more arguments are given, they are parsed instead." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:521 -msgid "Exec FILE, replacing this shell with the specified program." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:522 -msgid "If FILE is not specified, the redirections take effect in this" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:523 -msgid "shell. If the first argument is `-l', then place a dash in the" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:524 -msgid "zeroth arg passed to FILE, as login does. If the `-c' option" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:525 -msgid "is supplied, FILE is executed with a null environment. The `-a'" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:526 -msgid "option means to make set argv[0] of the executed process to NAME." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:527 -msgid "If the file cannot be executed and the shell is not interactive," -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:528 -msgid "then the shell exits, unless the shell option `execfail' is set." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:534 -msgid "Exit the shell with a status of N. If N is omitted, the exit status" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:535 -msgid "is that of the last command executed." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:541 -msgid "Logout of a login shell." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:548 -msgid "" -"fc is used to list or edit and re-execute commands from the history list." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:549 -msgid "FIRST and LAST can be numbers specifying the range, or FIRST can be a" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:550 -msgid "string, which means the most recent command beginning with that" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:551 -msgid "string." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:553 -msgid "" -" -e ENAME selects which editor to use. Default is FCEDIT, then EDITOR," -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:554 -msgid " then vi." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:556 -msgid " -l means list lines instead of editing." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:557 -msgid " -n means no line numbers listed." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:558 -msgid "" -" -r means reverse the order of the lines (making it newest listed first)." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:560 -msgid "With the `fc -s [pat=rep ...] [command]' format, the command is" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:561 -msgid "re-executed after the substitution OLD=NEW is performed." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:563 -msgid "A useful alias to use with this is r='fc -s', so that typing `r cc'" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:564 -msgid "runs the last command beginning with `cc' and typing `r' re-executes" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:565 -msgid "the last command." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:573 -msgid "Place JOB_SPEC in the foreground, and make it the current job. If" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:574 -msgid "JOB_SPEC is not present, the shell's notion of the current job is" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:575 -msgid "used." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:583 -msgid "Place JOB_SPEC in the background, as if it had been started with" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:584 -msgid "`&'. If JOB_SPEC is not present, the shell's notion of the current" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:585 -msgid "job is used." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:592 -msgid "For each NAME, the full pathname of the command is determined and" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:593 -msgid "remembered. If the -p option is supplied, PATHNAME is used as the" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:594 -msgid "full pathname of NAME, and no path search is performed. The -r" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:595 -msgid "option causes the shell to forget all remembered locations. The -d" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:596 -msgid "option causes the shell to forget the remembered location of each NAME." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:597 -msgid "If the -t option is supplied the full pathname to which each NAME" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:598 -msgid "corresponds is printed. If multiple NAME arguments are supplied with" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:599 -msgid "-t, the NAME is printed before the hashed full pathname. The -l option" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:600 -msgid "causes output to be displayed in a format that may be reused as input." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:601 -msgid "" -"If no arguments are given, information about remembered commands is " -"displayed." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:608 -msgid "Display helpful information about builtin commands. If PATTERN is" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:609 -msgid "specified, gives detailed help on all commands matching PATTERN," -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:610 -msgid "otherwise a list of the builtins is printed. The -s option" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:611 -msgid "restricts the output for each builtin command matching PATTERN to" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:612 -msgid "a short usage synopsis." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:620 -msgid "Display the history list with line numbers. Lines listed with" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:621 -msgid "with a `*' have been modified. Argument of N says to list only" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:622 -msgid "the last N lines. The `-c' option causes the history list to be" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:623 -msgid "cleared by deleting all of the entries. The `-d' option deletes" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:624 -msgid "the history entry at offset OFFSET. The `-w' option writes out the" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:625 -msgid "current history to the history file; `-r' means to read the file and" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:626 -msgid "append the contents to the history list instead. `-a' means" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:627 -msgid "to append history lines from this session to the history file." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:628 -msgid "Argument `-n' means to read all history lines not already read" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:629 -msgid "from the history file and append them to the history list." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:631 -msgid "If FILENAME is given, then that is used as the history file else" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:632 -msgid "if $HISTFILE has a value, that is used, else ~/.bash_history." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:633 -msgid "If the -s option is supplied, the non-option ARGs are appended to" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:634 -msgid "the history list as a single entry. The -p option means to perform" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:635 -msgid "history expansion on each ARG and display the result, without storing" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:636 -msgid "anything in the history list." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:638 -msgid "If the $HISTTIMEFORMAT variable is set and not null, its value is used" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:639 -msgid "as a format string for strftime(3) to print the time stamp associated" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:640 -msgid "" -"with each displayed history entry. No time stamps are printed otherwise." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:648 -msgid "Lists the active jobs. The -l option lists process id's in addition" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:649 -msgid "to the normal information; the -p option lists process id's only." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:650 -msgid "If -n is given, only processes that have changed status since the last" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:651 -msgid "notification are printed. JOBSPEC restricts output to that job. The" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:652 -msgid "-r and -s options restrict output to running and stopped jobs only," -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:653 -msgid "respectively. Without options, the status of all active jobs is" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:654 -msgid "printed. If -x is given, COMMAND is run after all job specifications" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:655 -msgid "" -"that appear in ARGS have been replaced with the process ID of that job's" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:656 -msgid "process group leader." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:664 -msgid "" -"By default, removes each JOBSPEC argument from the table of active jobs." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:665 -msgid "" -"If the -h option is given, the job is not removed from the table, but is" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:666 -msgid "marked so that SIGHUP is not sent to the job if the shell receives a" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:667 -msgid "" -"SIGHUP. The -a option, when JOBSPEC is not supplied, means to remove all" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:668 -msgid "" -"jobs from the job table; the -r option means to remove only running jobs." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:675 -msgid "Send the processes named by PID (or JOB) the signal SIGSPEC. If" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:676 -msgid "SIGSPEC is not present, then SIGTERM is assumed. An argument of `-l'" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:677 -msgid "lists the signal names; if arguments follow `-l' they are assumed to" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:678 -msgid "be signal numbers for which names should be listed. Kill is a shell" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:679 -msgid "builtin for two reasons: it allows job IDs to be used instead of" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:680 -msgid "process IDs, and, if you have reached the limit on processes that" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:681 -msgid "you can create, you don't have to start a process to kill another one." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:687 -msgid "Each ARG is an arithmetic expression to be evaluated. Evaluation" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:688 -msgid "is done in fixed-width integers with no check for overflow, though" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:689 -msgid "division by 0 is trapped and flagged as an error. The following" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:690 -msgid "list of operators is grouped into levels of equal-precedence operators." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:691 -msgid "The levels are listed in order of decreasing precedence." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:693 -msgid "\tid++, id--\tvariable post-increment, post-decrement" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:694 -msgid "\t++id, --id\tvariable pre-increment, pre-decrement" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:695 -msgid "\t-, +\t\tunary minus, plus" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:696 -msgid "\t!, ~\t\tlogical and bitwise negation" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:697 -msgid "\t**\t\texponentiation" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:698 -msgid "\t*, /, %\t\tmultiplication, division, remainder" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:699 -msgid "\t+, -\t\taddition, subtraction" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:700 -msgid "\t<<, >>\t\tleft and right bitwise shifts" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:701 -msgid "\t<=, >=, <, >\tcomparison" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:702 -msgid "\t==, !=\t\tequality, inequality" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:703 -msgid "\t&\t\tbitwise AND" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:704 -msgid "\t^\t\tbitwise XOR" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:705 -msgid "\t|\t\tbitwise OR" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:706 -msgid "\t&&\t\tlogical AND" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:707 -msgid "\t||\t\tlogical OR" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:708 -msgid "\texpr ? expr : expr" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:709 -msgid "\t\t\tconditional operator" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:710 -msgid "\t=, *=, /=, %=," -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:711 -msgid "\t+=, -=, <<=, >>=," -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:712 -msgid "\t&=, ^=, |=\tassignment" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:714 -msgid "Shell variables are allowed as operands. The name of the variable" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:715 -msgid "is replaced by its value (coerced to a fixed-width integer) within" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:716 -msgid "an expression. The variable need not have its integer attribute" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:717 -msgid "turned on to be used in an expression." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:719 -msgid "Operators are evaluated in order of precedence. Sub-expressions in" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:720 -msgid "parentheses are evaluated first and may override the precedence" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:721 -msgid "rules above." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:723 -msgid "If the last ARG evaluates to 0, let returns 1; 0 is returned" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:724 -msgid "otherwise." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:730 -msgid "" -"One line is read from the standard input, or from file descriptor FD if the" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:731 -msgid "" -"-u option is supplied, and the first word is assigned to the first NAME," -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:732 -msgid "" -"the second word to the second NAME, and so on, with leftover words assigned" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:733 -msgid "" -"to the last NAME. Only the characters found in $IFS are recognized as word" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:734 -msgid "" -"delimiters. If no NAMEs are supplied, the line read is stored in the REPLY" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:735 -msgid "variable. If the -r option is given, this signifies `raw' input, and" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:736 -msgid "backslash escaping is disabled. The -d option causes read to continue" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:737 -msgid "" -"until the first character of DELIM is read, rather than newline. If the -p" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:738 -msgid "" -"option is supplied, the string PROMPT is output without a trailing newline" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:739 -msgid "" -"before attempting to read. If -a is supplied, the words read are assigned" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:740 -msgid "" -"to sequential indices of ARRAY, starting at zero. If -e is supplied and" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:741 -msgid "" -"the shell is interactive, readline is used to obtain the line. If -n is" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:742 -msgid "supplied with a non-zero NCHARS argument, read returns after NCHARS" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:743 -msgid "characters have been read. The -s option causes input coming from a" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:744 -msgid "terminal to not be echoed." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:746 -msgid "" -"The -t option causes read to time out and return failure if a complete line" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:747 -msgid "" -"of input is not read within TIMEOUT seconds. If the TMOUT variable is set," -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:748 -msgid "" -"its value is the default timeout. The return code is zero, unless end-of-" -"file" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:749 -msgid "" -"is encountered, read times out, or an invalid file descriptor is supplied as" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:750 -msgid "the argument to -u." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:756 -msgid "Causes a function to exit with the return value specified by N. If N" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:757 -msgid "is omitted, the return status is that of the last command." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:763 -msgid " -a Mark variables which are modified or created for export." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:764 -msgid " -b Notify of job termination immediately." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:765 -msgid " -e Exit immediately if a command exits with a non-zero status." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:766 -msgid " -f Disable file name generation (globbing)." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:767 -msgid " -h Remember the location of commands as they are looked up." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:768 -msgid " -k All assignment arguments are placed in the environment for a" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:769 -msgid " command, not just those that precede the command name." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:770 -msgid " -m Job control is enabled." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:771 -msgid " -n Read commands but do not execute them." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:772 -msgid " -o option-name" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:773 -msgid " Set the variable corresponding to option-name:" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:774 -msgid " allexport same as -a" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:775 -msgid " braceexpand same as -B" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:777 -msgid " emacs use an emacs-style line editing interface" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:779 -msgid " errexit same as -e" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:780 -msgid " errtrace same as -E" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:781 -msgid " functrace same as -T" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:782 -msgid " hashall same as -h" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:784 -msgid " histexpand same as -H" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:787 -msgid " history enable command history" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:789 -msgid " ignoreeof the shell will not exit upon reading EOF" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:790 -msgid " interactive-comments" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:791 -msgid "" -" allow comments to appear in interactive commands" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:792 -msgid " keyword same as -k" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:793 -msgid " monitor same as -m" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:794 -msgid " noclobber same as -C" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:795 -msgid " noexec same as -n" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:796 -msgid " noglob same as -f" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:797 -msgid " nolog currently accepted but ignored" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:798 -msgid " notify same as -b" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:799 -msgid " nounset same as -u" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:800 -msgid " onecmd same as -t" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:801 -msgid " physical same as -P" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:802 -msgid "" -" pipefail the return value of a pipeline is the status of" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:803 -msgid "" -" the last command to exit with a non-zero status," -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:804 -msgid "" -" or zero if no command exited with a non-zero status" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:805 -msgid " posix change the behavior of bash where the default" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:806 -msgid " operation differs from the 1003.2 standard to" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:807 -msgid " match the standard" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:808 -msgid " privileged same as -p" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:809 -msgid " verbose same as -v" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:811 -msgid " vi use a vi-style line editing interface" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:813 -msgid " xtrace same as -x" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:814 -msgid "" -" -p Turned on whenever the real and effective user ids do not match." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:815 -msgid " Disables processing of the $ENV file and importing of shell" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:816 -msgid "" -" functions. Turning this option off causes the effective uid and" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:817 -msgid " gid to be set to the real uid and gid." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:818 -msgid " -t Exit after reading and executing one command." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:819 -msgid " -u Treat unset variables as an error when substituting." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:820 -msgid " -v Print shell input lines as they are read." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:821 -msgid " -x Print commands and their arguments as they are executed." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:823 -msgid " -B the shell will perform brace expansion" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:825 -msgid " -C If set, disallow existing regular files to be overwritten" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:826 -msgid " by redirection of output." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:827 -msgid " -E If set, the ERR trap is inherited by shell functions." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:829 -msgid " -H Enable ! style history substitution. This flag is on" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:830 -msgid " by default." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:832 -msgid " -P If set, do not follow symbolic links when executing commands" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:833 -msgid " such as cd which change the current directory." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:834 -msgid " -T If set, the DEBUG trap is inherited by shell functions." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:836 -msgid "Using + rather than - causes these flags to be turned off. The" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:837 -msgid "flags can also be used upon invocation of the shell. The current" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:838 -msgid "set of flags may be found in $-. The remaining n ARGs are positional" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:839 -msgid "parameters and are assigned, in order, to $1, $2, .. $n. If no" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:840 -msgid "ARGs are given, all shell variables are printed." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:846 -msgid "For each NAME, remove the corresponding variable or function. Given" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:847 -msgid "the `-v', unset will only act on variables. Given the `-f' flag," -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:848 -msgid "unset will only act on functions. With neither flag, unset first" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:849 -msgid "tries to unset a variable, and if that fails, then tries to unset a" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:850 -msgid "function. Some variables cannot be unset; also see readonly." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:856 -msgid "NAMEs are marked for automatic export to the environment of" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:857 -msgid "subsequently executed commands. If the -f option is given," -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:858 -msgid "the NAMEs refer to functions. If no NAMEs are given, or if `-p'" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:859 -msgid "is given, a list of all names that are exported in this shell is" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:860 -msgid "printed. An argument of `-n' says to remove the export property" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:861 -msgid "from subsequent NAMEs. An argument of `--' disables further option" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:862 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:874 -msgid "processing." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:868 -msgid "The given NAMEs are marked readonly and the values of these NAMEs may" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:869 -msgid "not be changed by subsequent assignment. If the -f option is given," -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:870 -msgid "then functions corresponding to the NAMEs are so marked. If no" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:871 -msgid "arguments are given, or if `-p' is given, a list of all readonly names" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:872 -msgid "is printed. The `-a' option means to treat each NAME as" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:873 -msgid "an array variable. An argument of `--' disables further option" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:880 -msgid "The positional parameters from $N+1 ... are renamed to $1 ... If N is" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:881 -msgid "not given, it is assumed to be 1." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:887 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:896 -msgid "Read and execute commands from FILENAME and return. The pathnames" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:888 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:897 -msgid "in $PATH are used to find the directory containing FILENAME. If any" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:889 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:898 -msgid "ARGUMENTS are supplied, they become the positional parameters when" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:890 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:899 -msgid "FILENAME is executed." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:906 -msgid "Suspend the execution of this shell until it receives a SIGCONT" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:907 -msgid "signal. The `-f' if specified says not to complain about this" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:908 -msgid "being a login shell if it is; just suspend anyway." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:915 -msgid "Exits with a status of 0 (true) or 1 (false) depending on" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:916 -msgid "the evaluation of EXPR. Expressions may be unary or binary. Unary" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:917 -msgid "expressions are often used to examine the status of a file. There" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:918 -msgid "are string operators as well, and numeric comparison operators." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:920 -msgid "File operators:" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:922 -msgid " -a FILE True if file exists." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:923 -msgid " -b FILE True if file is block special." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:924 -msgid " -c FILE True if file is character special." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:925 -msgid " -d FILE True if file is a directory." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:926 -msgid " -e FILE True if file exists." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:927 -msgid " -f FILE True if file exists and is a regular file." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:928 -msgid " -g FILE True if file is set-group-id." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:929 -msgid " -h FILE True if file is a symbolic link." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:930 -msgid " -L FILE True if file is a symbolic link." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:931 -msgid " -k FILE True if file has its `sticky' bit set." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:932 -msgid " -p FILE True if file is a named pipe." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:933 -msgid " -r FILE True if file is readable by you." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:934 -msgid " -s FILE True if file exists and is not empty." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:935 -msgid " -S FILE True if file is a socket." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:936 -msgid " -t FD True if FD is opened on a terminal." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:937 -msgid " -u FILE True if the file is set-user-id." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:938 -msgid " -w FILE True if the file is writable by you." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:939 -msgid " -x FILE True if the file is executable by you." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:940 -msgid " -O FILE True if the file is effectively owned by you." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:941 -msgid " -G FILE True if the file is effectively owned by your group." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:942 -msgid "" -" -N FILE True if the file has been modified since it was last read." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:944 -msgid " FILE1 -nt FILE2 True if file1 is newer than file2 (according to" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:945 -msgid " modification date)." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:947 -msgid " FILE1 -ot FILE2 True if file1 is older than file2." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:949 -msgid " FILE1 -ef FILE2 True if file1 is a hard link to file2." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:951 -msgid "String operators:" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:953 -msgid " -z STRING True if string is empty." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:955 -msgid " -n STRING" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:956 -msgid " STRING True if string is not empty." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:958 -msgid " STRING1 = STRING2" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:959 -msgid " True if the strings are equal." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:960 -msgid " STRING1 != STRING2" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:961 -msgid " True if the strings are not equal." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:962 -msgid " STRING1 < STRING2" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:963 -msgid "" -" True if STRING1 sorts before STRING2 lexicographically." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:964 -msgid " STRING1 > STRING2" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:965 -msgid "" -" True if STRING1 sorts after STRING2 lexicographically." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:967 -msgid "Other operators:" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:969 -msgid " -o OPTION True if the shell option OPTION is enabled." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:970 -msgid " ! EXPR True if expr is false." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:971 -msgid " EXPR1 -a EXPR2 True if both expr1 AND expr2 are true." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:972 -msgid " EXPR1 -o EXPR2 True if either expr1 OR expr2 is true." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:974 -msgid " arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne," -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:975 -msgid " -lt, -le, -gt, or -ge." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:977 -msgid "Arithmetic binary operators return true if ARG1 is equal, not-equal," -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:978 -msgid "less-than, less-than-or-equal, greater-than, or greater-than-or-equal" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:979 -msgid "than ARG2." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:985 -msgid "This is a synonym for the \"test\" builtin, but the last" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:986 -msgid "argument must be a literal `]', to match the opening `['." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:992 -msgid "Print the accumulated user and system times for processes run from" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:993 -msgid "the shell." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:999 -msgid "The command ARG is to be read and executed when the shell receives" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1000 -msgid "signal(s) SIGNAL_SPEC. If ARG is absent all specified signals are" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1001 -msgid "reset to their original values. If ARG is the null string each" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1002 -msgid "SIGNAL_SPEC is ignored by the shell and by the commands it invokes." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1003 -msgid "If a SIGNAL_SPEC is EXIT (0) the command ARG is executed on exit from" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1004 -msgid "the shell. If a SIGNAL_SPEC is DEBUG, ARG is executed after every" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1005 -msgid "command. If ARG is `-p' then the trap commands associated with" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1006 -msgid "each SIGNAL_SPEC are displayed. If no arguments are supplied or if" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1007 -msgid "only `-p' is given, trap prints the list of commands associated with" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1008 -msgid "" -"each signal number. Each SIGNAL_SPEC is either a signal name in " -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1009 -msgid "or a signal number. `trap -l' prints a list of signal names and their" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1010 -msgid "corresponding numbers. Note that a signal can be sent to the shell" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1011 -msgid "with \"kill -signal $$\"." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1017 -msgid "For each NAME, indicate how it would be interpreted if used as a" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1018 -msgid "command name." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1020 -msgid "If the -t option is used, `type' outputs a single word which is one of" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1021 -msgid "`alias', `keyword', `function', `builtin', `file' or `', if NAME is an" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1022 -msgid "alias, shell reserved word, shell function, shell builtin, disk file," -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1023 -msgid "or unfound, respectively." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1025 -msgid "If the -p flag is used, `type' either returns the name of the disk" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1026 -msgid "file that would be executed, or nothing if `type -t NAME' would not" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1027 -msgid "return `file'." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1029 -msgid "If the -a flag is used, `type' displays all of the places that contain" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1030 -msgid "an executable named `file'. This includes aliases, builtins, and" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1031 -msgid "functions, if and only if the -p flag is not also used." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1033 -msgid "The -f flag suppresses shell function lookup." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1035 -msgid "The -P flag forces a PATH search for each NAME, even if it is an alias," -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1036 -msgid "builtin, or function, and returns the name of the disk file that would" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1037 -msgid "be executed." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1044 -msgid "Ulimit provides control over the resources available to processes" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1045 -msgid "started by the shell, on systems that allow such control. If an" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1046 -msgid "option is given, it is interpreted as follows:" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1048 -msgid " -S\tuse the `soft' resource limit" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1049 -msgid " -H\tuse the `hard' resource limit" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1050 -msgid " -a\tall current limits are reported" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1051 -msgid " -c\tthe maximum size of core files created" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1052 -msgid " -d\tthe maximum size of a process's data segment" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1053 -msgid " -f\tthe maximum size of files created by the shell" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1054 -msgid " -l\tthe maximum size a process may lock into memory" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1055 -msgid " -m\tthe maximum resident set size" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1056 -msgid " -n\tthe maximum number of open file descriptors" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1057 -msgid " -p\tthe pipe buffer size" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1058 -msgid " -s\tthe maximum stack size" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1059 -msgid " -t\tthe maximum amount of cpu time in seconds" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1060 -msgid " -u\tthe maximum number of user processes" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1061 -msgid " -v\tthe size of virtual memory" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1063 -msgid "If LIMIT is given, it is the new value of the specified resource;" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1064 -msgid "the special LIMIT values `soft', `hard', and `unlimited' stand for" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1065 -msgid "" -"the current soft limit, the current hard limit, and no limit, respectively." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1066 -msgid "Otherwise, the current value of the specified resource is printed." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1067 -msgid "If no option is given, then -f is assumed. Values are in 1024-byte" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1068 -msgid "increments, except for -t, which is in seconds, -p, which is in" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1069 -msgid "increments of 512 bytes, and -u, which is an unscaled number of" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1070 -msgid "processes." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1077 -msgid "The user file-creation mask is set to MODE. If MODE is omitted, or if" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1078 -msgid "`-S' is supplied, the current value of the mask is printed. The `-S'" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1079 -msgid "option makes the output symbolic; otherwise an octal number is output." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1080 -msgid "If `-p' is supplied, and MODE is omitted, the output is in a form" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1081 -msgid "that may be used as input. If MODE begins with a digit, it is" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1082 -msgid "interpreted as an octal number, otherwise it is a symbolic mode string" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1083 -msgid "like that accepted by chmod(1)." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1090 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1102 -msgid "Wait for the specified process and report its termination status. If" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1091 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1103 -msgid "N is not given, all currently active child processes are waited for," -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1092 -msgid "and the return code is zero. N may be a process ID or a job" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1093 -msgid "specification; if a job spec is given, all processes in the job's" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1094 -msgid "pipeline are waited for." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1104 -msgid "and the return code is zero. N is a process ID; if it is not given," -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1105 -msgid "all child processes of the shell are waited for." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1112 -msgid "The `for' loop executes a sequence of commands for each member in a" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1113 -msgid "list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1114 -msgid "assumed. For each element in WORDS, NAME is set to that element, and" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1115 -msgid "the COMMANDS are executed." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1121 -msgid "Equivalent to" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1122 -msgid "\t(( EXP1 ))" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1123 -msgid "\twhile (( EXP2 )); do" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1124 -msgid "\t\tCOMMANDS" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1125 -msgid "\t\t(( EXP3 ))" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1126 -msgid "\tdone" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1127 -msgid "EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1128 -msgid "omitted, it behaves as if it evaluates to 1." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1134 -msgid "The WORDS are expanded, generating a list of words. The" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1135 -msgid "set of expanded words is printed on the standard error, each" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1136 -msgid "preceded by a number. If `in WORDS' is not present, `in \"$@\"'" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1137 -msgid "is assumed. The PS3 prompt is then displayed and a line read" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1138 -msgid "from the standard input. If the line consists of the number" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1139 -msgid "corresponding to one of the displayed words, then NAME is set" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1140 -msgid "to that word. If the line is empty, WORDS and the prompt are" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1141 -msgid "redisplayed. If EOF is read, the command completes. Any other" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1142 -msgid "value read causes NAME to be set to null. The line read is saved" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1143 -msgid "in the variable REPLY. COMMANDS are executed after each selection" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1144 -msgid "until a break command is executed." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1150 -msgid "Execute PIPELINE and print a summary of the real time, user CPU time," -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1151 -msgid "and system CPU time spent executing PIPELINE when it terminates." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1152 -msgid "The return status is the return status of PIPELINE. The `-p' option" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1153 -msgid "prints the timing summary in a slightly different format. This uses" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1154 -msgid "the value of the TIMEFORMAT variable as the output format." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1160 -msgid "Selectively execute COMMANDS based upon WORD matching PATTERN. The" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1161 -msgid "`|' is used to separate multiple patterns." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1167 -msgid "" -"The if COMMANDS are executed. If the exit status is zero, then the then" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1168 -msgid "" -"COMMANDS are executed. Otherwise, each of the elif COMMANDS are executed" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1169 -msgid "" -"in turn, and if the exit status is zero, the corresponding then COMMANDS" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1170 -msgid "" -"are executed and the if command completes. Otherwise, the else COMMANDS" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1171 -msgid "" -"are executed, if present. The exit status is the exit status of the last" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1172 -msgid "command executed, or zero if no condition tested true." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1178 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1185 -msgid "Expand and execute COMMANDS as long as the final command in the" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1179 -msgid "`while' COMMANDS has an exit status of zero." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1186 -msgid "`until' COMMANDS has an exit status which is not zero." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1192 -msgid "Create a simple command invoked by NAME which runs COMMANDS." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1193 -msgid "Arguments on the command line along with NAME are passed to the" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1194 -msgid "function as $0 .. $n." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1200 -msgid "Run a set of commands in a group. This is one way to redirect an" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1201 -msgid "entire set of commands." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1207 -msgid "This is similar to the `fg' command. Resume a stopped or background" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1208 -msgid "job. If you specifiy DIGITS, then that job is used. If you specify" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1209 -msgid "WORD, then the job whose name begins with WORD is used. Following the" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1210 -msgid "job specification with a `&' places the job in the background." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1216 -msgid "The EXPRESSION is evaluated according to the rules for arithmetic" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1217 -msgid "evaluation. Equivalent to \"let EXPRESSION\"." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1223 -msgid "" -"Returns a status of 0 or 1 depending on the evaluation of the conditional" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1224 -msgid "" -"expression EXPRESSION. Expressions are composed of the same primaries used" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1225 -msgid "" -"by the `test' builtin, and may be combined using the following operators" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1227 -msgid "\t( EXPRESSION )\tReturns the value of EXPRESSION" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1228 -msgid "\t! EXPRESSION\tTrue if EXPRESSION is false; else false" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1229 -msgid "\tEXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1230 -msgid "\tEXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1232 -msgid "" -"When the `==' and `!=' operators are used, the string to the right of the" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1233 -msgid "operator is used as a pattern and pattern matching is performed. The" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1234 -msgid "&& and || operators do not evaluate EXPR2 if EXPR1 is sufficient to" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1235 -msgid "determine the expression's value." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1241 -msgid "BASH_VERSION Version information for this Bash." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1242 -msgid "CDPATH A colon separated list of directories to search" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1243 -msgid "\t\twhen the argument to `cd' is not found in the current" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1244 -msgid "\t\tdirectory." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1245 -msgid "GLOBIGNORE\tA colon-separated list of patterns describing filenames to" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1246 -msgid "\t\tbe ignored by pathname expansion." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1248 -msgid "" -"HISTFILE The name of the file where your command history is stored." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1249 -msgid "HISTFILESIZE The maximum number of lines this file can contain." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1250 -msgid "HISTSIZE The maximum number of history lines that a running" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1251 -msgid "\t\tshell can access." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1253 -msgid "HOME The complete pathname to your login directory." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1254 -msgid "HOSTNAME\tThe name of the current host." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1255 -msgid "HOSTTYPE The type of CPU this version of Bash is running under." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1256 -msgid "IGNOREEOF Controls the action of the shell on receipt of an EOF" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1257 -msgid "\t\tcharacter as the sole input. If set, then the value" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1258 -msgid "\t\tof it is the number of EOF characters that can be seen" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1259 -msgid "\t\tin a row on an empty line before the shell will exit" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1260 -msgid "\t\t(default 10). When unset, EOF signifies the end of input." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1261 -msgid "MACHTYPE\tA string describing the current system Bash is running on." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1262 -msgid "MAILCHECK\tHow often, in seconds, Bash checks for new mail." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1263 -msgid "MAILPATH\tA colon-separated list of filenames which Bash checks" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1264 -msgid "\t\tfor new mail." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1265 -msgid "OSTYPE\t\tThe version of Unix this version of Bash is running on." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1266 -msgid "PATH A colon-separated list of directories to search when" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1267 -msgid "\t\tlooking for commands." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1268 -msgid "PROMPT_COMMAND A command to be executed before the printing of each" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1269 -msgid "\t\tprimary prompt." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1270 -msgid "PS1 The primary prompt string." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1271 -msgid "PS2 The secondary prompt string." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1272 -msgid "PWD\t\tThe full pathname of the current directory." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1273 -msgid "SHELLOPTS\tA colon-separated list of enabled shell options." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1274 -msgid "TERM The name of the current terminal type." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1275 -msgid "TIMEFORMAT\tThe output format for timing statistics displayed by the" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1276 -msgid "\t\t`time' reserved word." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1277 -msgid "auto_resume Non-null means a command word appearing on a line by" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1278 -msgid "\t\titself is first looked for in the list of currently" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1279 -msgid "\t\tstopped jobs. If found there, that job is foregrounded." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1280 -msgid "\t\tA value of `exact' means that the command word must" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1281 -msgid "\t\texactly match a command in the list of stopped jobs. A" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1282 -msgid "\t\tvalue of `substring' means that the command word must" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1283 -msgid "\t\tmatch a substring of the job. Any other value means that" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1284 -msgid "\t\tthe command must be a prefix of a stopped job." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1287 -msgid "histchars Characters controlling history expansion and quick" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1288 -msgid "\t\tsubstitution. The first character is the history" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1289 -msgid "\t\tsubstitution character, usually `!'. The second is" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1290 -msgid "\t\tthe `quick substitution' character, usually `^'. The" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1291 -msgid "\t\tthird is the `history comment' character, usually `#'." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1293 -msgid "HISTIGNORE\tA colon-separated list of patterns used to decide which" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1294 -msgid "\t\tcommands should be saved on the history list." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1302 -msgid "Adds a directory to the top of the directory stack, or rotates" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1303 -msgid "the stack, making the new top of the stack the current working" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1304 -msgid "directory. With no arguments, exchanges the top two directories." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1306 -msgid "+N\tRotates the stack so that the Nth directory (counting" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1307 -msgid "\tfrom the left of the list shown by `dirs', starting with" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1308 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1312 -msgid "\tzero) is at the top." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1310 -msgid "-N\tRotates the stack so that the Nth directory (counting" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1311 -msgid "\tfrom the right of the list shown by `dirs', starting with" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1314 -msgid "-n\tsuppress the normal change of directory when adding directories" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1315 -msgid "\tto the stack, so only the stack is manipulated." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1317 -msgid "dir\tadds DIR to the directory stack at the top, making it the" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1318 -msgid "\tnew current working directory." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1320 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1343 -msgid "You can see the directory stack with the `dirs' command." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1328 -msgid "Removes entries from the directory stack. With no arguments," -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1329 -msgid "removes the top directory from the stack, and cd's to the new" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1330 -msgid "top directory." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1332 -msgid "+N\tremoves the Nth entry counting from the left of the list" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1333 -msgid "\tshown by `dirs', starting with zero. For example: `popd +0'" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1334 -msgid "\tremoves the first directory, `popd +1' the second." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1336 -msgid "-N\tremoves the Nth entry counting from the right of the list" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1337 -msgid "\tshown by `dirs', starting with zero. For example: `popd -0'" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1338 -msgid "\tremoves the last directory, `popd -1' the next to last." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1340 -msgid "-n\tsuppress the normal change of directory when removing directories" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1341 -msgid "\tfrom the stack, so only the stack is manipulated." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1351 -msgid "Display the list of currently remembered directories. Directories" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1352 -msgid "find their way onto the list with the `pushd' command; you can get" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1353 -msgid "back up through the list with the `popd' command." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1355 -msgid "The -l flag specifies that `dirs' should not print shorthand versions" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1356 -msgid "of directories which are relative to your home directory. This means" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1357 -msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1358 -msgid "causes `dirs' to print the directory stack with one entry per line," -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1359 -msgid "prepending the directory name with its position in the stack. The -p" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1360 -msgid "flag does the same thing, but the stack position is not prepended." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1361 -msgid "The -c flag clears the directory stack by deleting all of the elements." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1363 -msgid "+N\tdisplays the Nth entry counting from the left of the list shown by" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1364 -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1367 -msgid "\tdirs when invoked without options, starting with zero." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1366 -msgid "-N\tdisplays the Nth entry counting from the right of the list shown by" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1374 -msgid "Toggle the values of variables controlling optional behavior." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1375 -msgid "The -s flag means to enable (set) each OPTNAME; the -u flag" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1376 -msgid "unsets each OPTNAME. The -q flag suppresses output; the exit" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1377 -msgid "status indicates whether each OPTNAME is set or unset. The -o" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1378 -msgid "option restricts the OPTNAMEs to those defined for use with" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1379 -msgid "`set -o'. With no options, or with the -p option, a list of all" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1380 -msgid "settable options is displayed, with an indication of whether or" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1381 -msgid "not each is set." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1387 -msgid "printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1388 -msgid "is a character string which contains three types of objects: plain" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1389 -msgid "" -"characters, which are simply copied to standard output, character escape" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1390 -msgid "sequences which are converted and copied to the standard output, and" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1391 -msgid "" -"format specifications, each of which causes printing of the next successive" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1392 -msgid "argument. In addition to the standard printf(1) formats, %b means to" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1393 -msgid "expand backslash escape sequences in the corresponding argument, and %q" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1394 -msgid "means to quote the argument in a way that can be reused as shell input." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1401 -msgid "For each NAME, specify how arguments are to be completed." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1402 -msgid "If the -p option is supplied, or if no options are supplied, existing" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1403 -msgid "completion specifications are printed in a way that allows them to be" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1404 -msgid "reused as input. The -r option removes a completion specification for" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1405 -msgid "each NAME, or, if no NAMEs are supplied, all completion specifications." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1413 -msgid "Display the possible completions depending on the options. Intended" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1414 -msgid "" -"to be used from within a shell function generating possible completions." -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1415 -msgid "If the optional WORD argument is supplied, matches against WORD are" -msgstr "" - -#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1416 -msgid "generated." -msgstr "" diff --git a/po.orig/en@boldquot.gmo b/po.orig/en@boldquot.gmo deleted file mode 100644 index 6a9c77ba25ca19e810fecf4cbdf2859e979a677f..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 120143 zc-pLe2b@$z^8Z^n1E^=tr#=zbMP`;@Izd#z5|kvnfSB0XnYX(mvop)QnGJ{_f>|*K zOqg@dSuu-Z&gsnI%$|CNJN;MHxB9()vjgh={(L@5&Fj~py1Tlny1KgF+Z+7lbcg;u z+ud>gM)2IN9cSa!==U&3{h%_PjFL$Hxpc&;FAP*Bls%8od|9`#c_HP z+dgqaL-!gn_P?fj;cjH_YxdR@FjwO zC%Aqc{Sn-Y;D!VbAUK5atwXu13GP7fU4pwXUQ-=sAi)V!QGVW3q~EUatEnhgISu$8 zI1TtLAh;gElc%Bo7fl2HcM@ES;HT5j{`Umq1ba+(oIwP4nU3*H6WoB{kqVa(+>GEg z)6t(t2=*mdu`klA_C>qH32sGjAA-XP<`mvYa3g~MBDfC0HD>_7O=jS^at6xnq|dc8 zFwO~rJMuit0KON`06w>C`Q%jdm-e(dV zOz`>rFy5=}kMg_jkLMZtW4uow$Rzcs!oM7V`4~ZPV}icIV+j70;L-zt&vgWQ6TFY$ zID+pJ>`yR$pyQ0@`U#FFc)@{q{{_J+9{+S6sY@i5=d65N*H2OjdT-iUf@2v!qZ+=%@5He%ksYs5HrZ^At9(S&k`HX+|V zO=$05P3Xs_&EOxCnlT>7D}1^c^txW!aW?1n(wL{2X|#Jx8u{)>qn)1#jv@H>gF!Ec z9gOr#4+b5+PjCXaH;Z@-L66`lf|t!g{?7=;xV;SF%=4bXd>@)Y{!0i}68tcO_Sb0v zeeBkPb)Rhkot)c(_MUISJg=U`xbB=q`8iqSyC@6#e>Dp{d*tvuCWrPqa;WFd9Ps=i zhjll&72}v`1>P68V!b`yigox&EAZQLHrD@MvoZer&c=E_li-$22eUDckIqKB>*mqk zo_X+(LLTe(lsw))nFrqg$)o+jKGtE{$NZh{YrlQa%jyM;PgMc)yk7zRI;DVqyih>- zb&7c2RiR(RxLsQWzkRC+zVMyGo^60`8`|Bu4eQo#gPgjz4fOR1!MzEt-443gw;gz2 z(2n$1+JWzO9pD$!J1~!jb)cWubpVeKG<~B^jMs=xtf%7?KHrJ)+bP)9iro*&+E)Z`;!T7&2nQd`2D4GG0%6+#kjmqum{0!=0Xns zqUq}#3fNoW&_glrQx3(vdWV9qE<6jnL1beZ3nFl;}od>x# zaURykEQP1c!@S(7@R@m_!w=`79~;d_y*tc@oZD+Y#w|G?c+H;=e9oJX_HNYY7w1Dh zeWLk(nveQ7Jq+^`KMciKhVlRLFpTF03()_;3&3CY zBDe+9{{qx^qQZ+b->nOP*NO$e=iLS1-@h#Y-Mfb)|A@npKJ{?)yX|oF_k_dI?v>@?Ul&=>8u^V!ie~3i*>qVLhFH6!_D}M}g1vJsRs^*3o#rPT{|fMm>K&2KdZB z2JJm`4C-0ySgfPEW3m1hAB%Ck=~(ccCyqtAp2wm7iN}GjoqQbhxCf5|9#1P==Xl70 z@yDb6}0h6-pS~9)hVbaeG10s zx>L~ZC#Qfes!m1z-A@G_E;<$EPCFIlUOE-!wm1##*PVv^XPgFlee*Po>sJbQI34;^ z`{}^*L4~WG0XX&y^z*ngpqDN`1N8XH8R+M)X8@0yGtth}Gm(DInJD+(nZR$`vw%;- zS>TtK==1Amq1@k=&>ZvoCBW;(C8+0ng}a@N`CE84@OtWOlw0>4)H7A#ndcz?Yv-U{ z_gu_h;#|~w{<$ds-nq!%=RAyC(|M}rpND*poCmt^aX$Jn>U`u|cs|}gem>@J?WL$^ z>{6s3yA{^fXIc?F(Z zt^l4lUIBjm?G=zG8(j&y+T}{%H|9#n&10{`IG%eY^n*9AL_Hf`g>jgE75L2IS79A5 z*XRFU1vyi5HQM*D#{AuRHRj>_tI?0)*MJW$yax5&a}C;euEo5LycXrBTnlssW0 z_ge7rEv{3(cOAxWzCJ&!aINb>XHy7Hsvy33J^FF?4aooP4H*AjZbZAq8`0h!Hv+$3 zZv_9?^Cr@fm@nRhb}zpP{eR>pjL+9Mq1?cmQE%JLX#eh;k>2eVUEjB0evZ2Zt*9xk$=jq=--lCAxEFT6>{#QTQMKM-U_-{?>6ky2HXZccj|4(Kj${|ckykY`^#@b z{$;mezTdeG@~qqKptEgm$G8u@9sFkg?T`z{-wwPlz8!k`r?&&&_3r?l``m%~J?jq8 z)1!A_pSi}J7~i@(u|AHw6XSHpo#_AjcOrk^yU?$uyDj-3L6Lx)1oRen0v@{(d~4s_?b@F%R23fc8f{0R8@$2b2yT!2EPuruK+s zYL8fk_I6r^ao&9y+G|{f`M6-2@||V6?_P#=Hta#nf9r#g=Vv^K^?TQYnE&MuVjkar zP{&F04Sh)Y;zPh|=|dQgj~>E24R{!QX1|9)H;W$zpSkv7%+u!&W8Sxa1bWrJj{xtE zMrF;*5l~kTaPQ?%bvt|tnn1`S3d=PKl2p$-#JfVd_R6l z_k$~tuWALxyKx2R{L&S`^Wzo3|N9l7=bfJhpRIcuc%Az+>V4;FtgF~FSbw7w&VB~@ z&wmDV_0cnGCwm6v)_fN9S@$gZ)BG&f>+#QGojmg_#((qYbie)_^zAv%A>Zi=UwsaE zZ}~jz69+zz`8efywDa2Y7>7PD0I#|iFis0zz`DQU1=!PGdjakI;|0jI?Ow$CJ?KTu z*EugjKYQav%=0%dV*GY~33^}QCD>W7c?tWp+h0QYcV1Hc@MY9r|1#F&B`+iWR)s&l zjCmaT3f?bx1?`>k3i$ICub{nmUqSoZyoz$ES3z%=zp8RU;lS6B-ufEGB9)^A^_M@VB4`HoXNs;I_Ab&uedi4nKMe{p<5K=-}YD@&1;#!5^2sjd6P6ZSaH5 z|AG9w{sZ(jPoE$C2ijfh9oRL-zXLwk@ecHYo8AE*`0^dBw{_nIo$vTA({R_b|V|zK8i)_kE22 zzVCzHo8Cu%7rhUC{^a*DPM5q7d>(rr<=6fI>v*dVfbSk3U|jb90Oc?I0C-&Y0s8y3 zzK?x~b&>xN>*2l+QSWCTV*L#K2>HB^Fwa+ig#Lf^5!TTzA44uQehj+0@nf{}F_Y>#^tAC33?xz^113m@4G%39NQ;g@wp8_A}pGdFyC-6MtpP-MM{t5iP z`6uRgm(MT`9iKt2o&6coFa8YqKKKmyZ~r;yH2=BEx6gt1x1VEPcKiZ(?ezubcj^}y z_rw=U&tG6Z?)?IGj%UAsd~v>n{M!CY^z)!E!CyMQ1pZ6E1bzJDOURcEzCwS-ex>@~ zS6F9vdl>`2 z&%Z&xcm5Xhe8{&LpBuhKdp~@u>*!zLTl4;f_jmsb?N@vUd`5hS_lJK6JnsJv<52NE z>goSI(zD+q{|(<`JipfW|M?#CxW^9|-+4cP&My1`>OWYQPy7e-udis_i)A4G5sSrN45kcC^Hh+a5|Aj{vG1X<5IlOV6RrwKCsSFBzkdf^TPd0r1vcpO2dpF0S${_!0_<^!9p z0X(bM0G_RDU>vSn1O0ez4dA!cniZlqB-TX!CW6eru3QuEA6ygTuzC-`@jWnZr}O|m z&-FmP{~^e7Y@43w&mIa}dIJA*2=aPeL6GHlx3w@oTM*=Ry&plQqf6GpeB42h*W=@w z@7uM|&fv8xgpW;K8|^P%8}oVR+UWm(*2Z|a>r@CIIe;Lq^NZKPIJ`q}Chcdp{wvDQ zTem{i&6Vo{uLlV7x_fn9l>2a9j7zWeDun)0>!F>T!c*77eBDlv`RSMIq5RhCSBRYM zzdriot&e;~g3Ld!Ss(4aw?6Rwd42S2=M5@k9ppB^cr4febba~;z~fnh%%?Zlu)>){ za5O>I|IQ#dndRz+n77R~0z68)F`CAjtgXy^TTlzbV{c6VOecP0*j+HvzrR(ew*9LA!SmWc_6MCg{&63b)_1 zLiFkkLDt(BYzq8N)aMH}MY-$r`Ke7Y&aZC@y83ui;QP1DfX~3qP=4fQXt!=N&}V8h ztg}U%f$s0w4CNl&4D|i-W}utDZI1Pq+#KV5#^xx$d~?v_KM68_+kT4*XDZK^!bi5i zd~CTT*5P=C4O@agbZiNHjv~nX_{=Rq|Mw7N{ciQYq5Z)GSx@c!8{R)kkoDa4w!(Pr zx)st7*$U(R$X4Jh61utVXw3LkLM?guXL+i2Sg(Hp02i}&pc&rx{4!uJ)f(F^m^zZag93Xf8F zwZdn5fj|GN7shF~?U24u;pN+bKRv0>J$qvvRQJaE%lF27UrCVlt$TYT|37-8-mUw9 zFE{l;{xkYu-d6O%IKSBk{^^GSugV(RZuPQ;WOqj(#2$ zNBJk?$oH=}+U-{jJol@{^I6qs?}=*E({lju+L<(Vy*y;5jt}`EM8k zdj9ti@Qw9{B46E5JTD%K_Maoj`sfsvOC7@>)nCZ+Is+>?e{=?yX$je56GwD9>{m( z9;pA4JwPXS>GMDLKtG*5F`gUliS!A30^j7GsOPXfG5#m-iSfL8PxSxEJ;7hzC&>Ey zI>S+4mBOLJk#FK~;MF)B_{IyMqQ0t;n1`_=k)9ig{-2=m;*sFbcWS=J zM}p6NH4@`9U=;8hKMM2QJPPd`Itu*jxKZE-&x`^eTC)c0V`2^Tu48Mk&K{`&KU-%s z^6xzwbiZgc*6Wj_k$=rG;6EeBfIl5S27KzUy`jhXdjpU8dqZB`w>QS8$9S|q zZanzw;_>L;vhis5xADj~b^`d&(GxH}&rd-5W)o3v--)RIxQQ5tyW>;4)nUD4)bx1!msNvemhPDp7Rwx zsBpDu=;zpJ&`Xb+26{Yg8v1$nG~m%~I@;M_I@0%@j&e(<1HZSY1D|d71;0$}3;BNL zz9{!0LAE>gp8>q)%s@T&5uCz!?1%Z=cR%F2a6gp$dOy^=^ZtMx`y>Bd`=i};4#50P zJV4jQ0qEB=2O$3j2V&gn4g{ZDav<{EbRg*dhXc`%K?fmU>p`H)TMxqgtu_<&44;W| z3uj{8KBmtv&jkH#QIC1tw;uZJS@n=J_thg`&jk40#02o0sqmr%%72&uy>8b4JX#dq z)Brj9?*`~Yy^>fblalEFVM)}pOyOTrC^sgB@jE_+^ygEcgN;43SMMR;`5ySp`yS-N zZyxa2x)JiTxe@(8w-Mv?b|dQDstMzlY(oC?o6yfs2=2pn&SpH%YX+VVHiI8`PeY#c zNrSG&rh(tSX~@lU(iq2U)6fsTNGpFi7|+cIgU>8I80+|Becoag^n!+2X#b>Hn7{XC zVIH>5pdSZkzz46%V4gqBp#7a%bf43L{vFiu}T`4G(0+H)~ZHFJ?ZcP{Af z{<-Lvb124tvqLdX(+)*{&OH?MuQ(KX+#2)H{`&L4#}1r_dahRZxx)B-j9+#>_|VPs zF>YVa$2kA>Fu>`DVVzuX80h(*hhZM87gUJdJi7q&-@X9!aLfYW_r?P7yKN80b3x%< zhwFZ0A=>Y=5dAuMA?Edpg_zH;7J~0|Uj(|^Xc5}$wFu+fe-ZjUa}oIel0~TRvPIw* zpDn^V+xZC0fBFdB4yjg(w|{md=w#2M z@P5`&;6GO%1wOO&Ku!zbK3!3%ND(Snz?E?aa(a5 z=6i$VL8tp44|=@fc#Qu)jt5|wrl(D&au5$&yg62^DmlhBX$laO!8Nf_@}P6Geg->nM2JO%kHPX&GCPK6$O^r$az1oup2~_+NJ##`($9pl@$^I`o5`Pe=YEP6ytPpAP#(&oeL|dz^uG zjywb7@cbE&pA~0foT|^nx}SO`>}f}yiFS@Z6LRg%GqIjGJqz?%cNX-s(+D2G{O>G` z-x^Dx_th+co%PTq;CDwaLHQe(0M9R%VB7|st^235k$$AYC(g$Fu6+*PPdNweCC|Zl zcAkUwZaN2a_Vqa`x6TEGLD!gPzx1ihfL8s^=9;F=BGZ&)#78ijIW?qE%S6&4Ec-uu7r^hb>Kltm#6;3nbeKF|m%!?ss z|8X(!8+Zxq8nZ6}pF8gocMmty>4mjRBt z40L_KW#Es+%P{{}Tn2i)`7+f1{biuHO)kf}8+JM7cP7COmS2}+{6D=M^#0@J=%atg<*OkCy`jyawmRyPVFI|asvE@}* z4^3BLyiU6c^7O;2kZ<>^G0%&xM*knb8hEUC4d!W&Ym~08K|9Y~gLXE&7V>J+wV=O? zuEl=&vujnKz7FFw{5sIfc!kGbhw*&sI`s2HP2c`{;CV2?2A<#Rf#1*9V}AF%0sMKv z4UlWs-vD~M;|Ang?MC3g_l=;_Q*T85Pu~c7dy%~IX@0-!j`8Q*}m)s2eAGjIx;oJiGvcoOtPx=md*z@zFejKjfq0q@i9 zLi+o6fzJBejq#j)H`+P$ZqUyIcVm3lx(9r>`W}>FhF5#TlF5#amK zBN+du2{y9+@+k1@cogg6_D3<^-#&_Q-r+Hfi~ktfIpZ;ufB!L*>-)H#4?d1|iVE+0 z9Q|M83E(;53E*?w6Tt74ComtIFUNXHE(iZ>TMoW^#B%iW!sTi&S&n(^`y}Xj!jr&v z{*&P6cRh*x-#rQZ{{9r!+aXUO|8-A6FMQ`ItmCy-0FGJ#zHsOYJ%?HWK2Y&A@Z9ui z;6LMOjKi5vqaSxYjrmyp8R!kuoVn>9~-Z5&U3*3is!IiUw;mI(z?$Bj~$-JIL?0_bo9jYn2)!f$9nwYdCcRc zFQA?2FQDIZUO@Xdzku<2`vugy?TZ+Pnis)G7QBdc{`iY%XSJ6qoC+uW_wNe$ZHy<# z>tJGc%1eKh-NHO6o?m*tQ~VETY?xm3-8g#wJCz+uFvI+i;3-Vkl>a-cp;z_yyl(L0 ze2U-~^f#COrc#+33Dy!!5WJS)KHC01e1F@*rB&gLEMuw8AL-qh`u=r#UTU?u8~vWm zJk{#&U6i*~^MB{S2j^NX^A*9r=8*&w?f?T9AW{^3VPq2 z(uZ_MITFiGBmLdWyoBDJLVwTE-;2B#O57s$$qBehEp3n0@?>Fr3ME+gLdJ^jZRL6<*&g%wW75=xN8~g}~ z4LI9&V}BLLX`tWVGp$kH_q#b||GmjJa>{op<(bC%nc~~p9ezTN_^xy<_o6i~Q|LXh zC*eot-`bQ$s-E*3!OiJ!8vXt+!S%J=-w0ktZJeid??KOR@H(OAwJ5!X{tl+JgLDk` zCU^UoejR!_jMAXsH?+BjEe1vr@u9MR8Jbqfw1C+KJ{q0N7duaJ*==nIU|5Z&pjdcbThI>tId)hS!?bwUpkkOMfrv^9X{M)ANzmn0!rXThQMT z+z+bb1Wji-yA|dAuhzRB{a!h;bZ#O?(7do<4Avxv#g=#ueGgZly)xt&7$YYT4$ZYHcC5$ z^0pJaq5}Snf6+D;QTkK7Mws`|-^TR3l;BRx`{{2Yk0Hwwf@djiyw7`7e}7Kt?`T~Q zQ`%i@3xpeib1cgc-lKJc&nW+!&wCX!9+bacaeRV)-_PZ>KPOW2B;lN$t_^bD3YWtY#co-{t;Rzz6hx9h;x6@~rC@HT{SR+=bYVdA6oK%kq)S zvutKrrDJh3!R>VpCt5Ps#$I^QN(><(Yv zE$MfE`n?$L6V5WtI+uR$K6G3Lr{AX# zELdxC7y5k&y?=z@Z%o_tcLP0-BDj!c6~VVzpSH?8MZfQ$cNY-chTvhWHxTTgyj27b zC%C!;e|VvJ%6Gf=^Ege*@|vW4otnNT{r*AwbX0dSpF0!i-I4Uyu5C}SaJZb(SEs*| zDBr2f;|c!Ccx!$2-Qo8u^GIoNGfxd{@z*3 z(DudImHDaz|La%ixeq;WP4B;_-@DQ8PuVU{@OswWSihj(=Mh||yIil7eZdTE_drT} zh2AgXxuNo((cilCcc9`sz8m`x6V0<;syG}&&urUSP=UJ$-8FBe)!*4XXOx~ZeWB-v zN_4u@>HUTD_awbrp>!(DS<8LMyn^{uH~3%+&$syh85Ou= z(@EvB^mh@{GN)^v@sxHf+lZJ>D{w#5{9C4d+?C)+%|Dgk9X!7*=jrzW1XHa0(cdka z=NzizVP0qS?mt@BbG+{}G{!zZ^zK)BoP&U3X`{Y*Kf+jN}|;;r$`i*TTHd$SU6Zaz5563D)ymY5oSr-=e|4R^Sey`PZ*I?zV`o zP4CWTK2w4F8;w-|%kms}tAoy)J+_U(bwsRxF3#>NgQGJUo z9Nwkpqxqb%B1$8b^n5$(NQ^)0ew>Hrl*g$X?gV^6@9yf3dm;R9n+n`Td4l&x+QwAg zYtipxSeItm#cPj#``X@ZVcsHPHC4BWLxNa1aGCk!>xLM zR5-{=JD%-0R4&6jm-mqL?qO@)yu|u4rS+%xcPcKucyC0%&!fLN4(@uy==aXto|bLW zHZInB*lzU-+c=EeB6ynSok71}WBE<=PT*=JbnyazSs?S^&Ghu1b8s7SGJF^J*1nsT{@f6-*Bzp zRk)7k-}?a}jb^tYS#Wir75n&(v> z7hH99#!=cayhql2o6z%p^!yI}9V~-ZNVj+?H&-mU?TK_Doo#X(b9pzNZ7mjtxQSvR z7tiFH=ygx02mRZ-W=3tzK5p7~y==kDd#P$pPUf;HDx1qDGH$Nb%O?uCJf&Avxi$Mv z-ofqHj~`NAW1^TTxPu1vt9IS#&0f|mW__;^b89AzcKviyHr<%^e7Df-QRReEBe38W zhP!QvOwr@CdaomqEL6HJULwnx69p-e%(b*6s8o9{pK@D@et}AjoHSv=@QI^p>1RE6 zv(n9bzL#(Fkc}&D@LXy*M;&n+I^EVpp*fpqq4qmksdnlR=Semv^36NlxJh>13wU zZAlc8&2A#-UK(Y&3=am?(Ar8>9-M3N376qil4mdLwNuG-hHIh{2{)f>=VlXG*K27l zaGP0=5Td*uderP?GH!dC{_{H0Ja*}V?`0Z!q8rnBYAln>&7y`t8xb6m#eANKA=62v zIF}(I(|<<7bi*$;_=P;@pn_ZpAT=5?CGxuvp92L(oi^Jj}K4U~=2m}r8T zQ9?*k2YHx1FG~em^XZlZ4RC8dN1bLg&`r*jNG3gBP%9Zin$E^tkw%))@nWc#-pNSN za5d%mE$Ci)lP(mQ@VSa_!=kWm`Q+Th(%gba+wl=p<-ByvB3~4`RZmplT_Q&ZkWK^@c>b3Yy~b&23l7 z1;h0j%<&&uqwQwdB=Su~Zp1C*-1=myl99;f3OXA~b4qJYk8PQ=OsT1@9XDxWkGecH zoo=*}WVR9+-y7SsG^7jdY08lGni4#sPLICC6f}`|2R-)< zOCVub%sq(y<__zT@R@D32u4+Q^Zj~E@e0L!)(<&?&}@*yQRX;EnB(@_^NMfHWvQmL z;<0_q9T0Q-(ApuUnQqMx0{kN8rqXR`Uw-91TI58G#B2NaPp4vTJf2R`Oytvv2I5dO z&GB?LNx7)nm^`LDeWVhUy+@Bk3XD6(bXDNFmB#y1|Kjww+ivvV?z<0*IX&Wie3w>r zJVzX!Gm$)q$K3usdK9y~$Xe3bqEC%vibUgaqUTYPI~hzmKTTp@*jkv08b~Ijvu!!_ zi`Y}9vmaHu+iu(#sW1Vh%tr)nANsYuYE?H(zd6+0rc00 z@g7D$wjD;}JDcb=UFeJvEt%g=51x@hZr{E#HG>06Y9Map;vJ(PFNs2lSyF~5O(ECZ zxg|AtY2jyho6Bnzys)~|a6nBD&rc>=y>NL^;sHGx63JP9CgC^JQ=&&A33@VYgT zbB;;BcI3EmGmYqXy7?jEjyAp)EpjU)*myO_9C1c@9Yx@^y~ z3Q*6jR+iLkl>{~ZPemy`Ig4KBgx13(9${J{>DFQk!V( zxv1c(#{?7Qx}#}bkfPJln(>Ah6b4rQA4DfXuF_#?T_VI`GNs<2S`@95*y%9%AHhZacdOGgP z{&CTEBWryg%>;?&geY8T*0z~Dw*_LK(K=b z4&0%7a8L(fw2Er-GB3>fvbliivofjcmUNA5E*qCjRAZsI3j70lGxg9|a8)a*C|16v z24+u1pV}wAUAGctGiocWh>}{^T9EZN%j;}Ow7R?<@P+l0uuZP4DR~z+0~OQf7O#*n zze$_#h`DWP{)_XfT1ic!t_!=iHQGPck3W`++Sd-pM7Ys&I?H5QHh(-rye6I@O*q~} zzgUVld1Z4N$yZx9W!%IugJ|XDiHZ}AEL4y-nD}l-I+<(ACt90%&15?NL`}L~`QNI- zT41eICzCaRKUIQt(Uq5K$1g|AGf=ZV>tPFb5JT;L#jm2y- z$Q0zMi{xo0?S;Bt(pGac4+&Az>oCvQE_rw(0_3u?Kn-s&yQIh}l0CggVp_S0wZWB% z!cA)?k>atU?PRoukm1G+OO9k9{vi99XxC;rQK}$ihL%h;PfH|EHkZug8hBG{ z=NVa&$LsKtZb?1ak~~dRPidaUk~}1=0M zqy1`&=1E%*vbvc&|KXM05w2OQiH;!8sI<>3$7hQOn?Ec&Oz)bB(?~7Mcp?(gEzGL) zwJe>Wj#{svds@{?lQ|+Izm+Y3l)qrMhjA91LxN(Y%;~^Y+i65-qEX5Qu#v5h5xEt} zDPFS&v;CqVyAu(OwB1R1DKBDK;6}sZ!l8Jh!1fTL4?&RFg`!9;Hj;p)aaN-vsXx%L zis=-OLr_suT2v4*Es2^7nj<3BoSY+U*DtcM%XgEc`H*mGwkgY~=$2|8=sZNgX?^@3 z_de+M|GLYGmj2T_ooMkttbc=hta|sN>dl|t!E`D2XLd1|%m2$x=Koeh+|=-AcQjI{ z?EZycz;xC{-;s^7F`FT0d_))FNt*>xPDNJ<&E&{FGPH)Lh}Fn;h9s>ooy~hqgkN5m zjIXPSrX}B=PZtWF)=(3%r@J*%rm#JumGMevi3Q7Uf`$?ph3gxo$GD@%jjt)E$O&iT zLkqLSY5ZtbP+4cLn0MK(s{<4t+oR}vY5^s6UXBeYPm-5GOS+($T(<^_$hIyxv{6#J z70t&@(AwA#aMqS3LQjtukqS&sQp}Hq5M$S{@!5alCwNr zu<^Pm35}{5F?GzJAtJW4WddF#SYQK?_gE;ZW)x4j?u0~sRv-s`W%Zmhm;gQnp&>8m z!3lN%rk#~{O4f|Qhg76crl~YFV75P$eN|)Ckje28LaUcd zn~h97DF(onL`S-%*g`ZjM>MD;@3pX2wF{bimGy^a#Aq9-vTY=cB2ww|o{1*XYZ7A? z%KXl(mxzZrDLyr<)>~u31riZsgufCKLQuyao0P_~{fP`0Q&_+}wN#*jp-MSwZ1S?k z08_;pd;=RqO*6lT4zx8M4V%4c>84c19!D!4IGg_mt~Sechtq-!k5Yn@AS}Dq3`v^c0LaU>rSm!D<0X|am8`U3W{W)U z^~95tvpOsJB!N4x&1bsKWI&db-08}SA$>dN(#V*7X1pa*jF?tB#VE0Q$aQEY*WHU2 zEU6-ed@h4SbDn)O-q}bc;n8NUl{ls#pYr@PFC#)}8y(mzO{vkNx|*;kO*T88 zPC~-S4#Sp8ZCezUGDjUp>xY>{! zwFz>Dx6-mN6p3u?McC%Llk;g_c0#^l^pt&aluKDkPy6rU!RlyN>gX^ng=`Qm0_nWX zuB=9NF{XkFeplO)0$rP)qf0niQoSg+Tu5y=Y$VMBhmDcLOjhp)@d38{3J)_QC37Vu z^$-(fCr#0!dWeaVHgaY0D_If7rn~JhW66yq?^ZUoeBRw7sWc6Q<79?|>2WyCV{?l~ zJfDc31-HvDMFSUlihHwT#2;aXC%IoUarlH9qQVR@B%{l*wS|b9SU*uFRWM3Dn5dS~ zBWp&Dt5dHZ{yAw1YRah7gKU^Vi|MRiV4h8_s{KZWf|xV1W^*v^VEv(}5)QF4OI8_67q@KsH9be78>U2!$DLsMKF z1GP`lqm6Q+LEH{ytr0f9nRzkAh)_4hq+9utL1VsdrXep~CPE4@og!8rSaX4)bQKPa zQlJ0-ks=E#olvpKmP}`{%YaPHGLn2ugpmk0lMV1j%dKow+WzEPC^Jo5O-D%wuvc{; z`!KXaM9iAQ!yY5qa_ZKOtr zaQfitup|lIm6c?6#{`^!#yprseUg2WLzpNMnRH5(Vuz3WO;U;O&h7wCAKx728jEgQI^l9M)!N7JslO7z?1m{& zZyJi}3<;0YWIcxpk~8T99|E%%T_3;FB=bQWrB?Ov`+C< zfFz}tC-s6o@H*^lFaYSJ2dOENDCJT~Q_6K}lc7=_A-6EQ+2U!Zn9j<)E^VaAQ$tqi z3o%r6mVYOk&;n_0(n`6vUDDK=>xD+&QUsZ0mll)#M3;mi0ecU!n=>Bc6e_9McM$dE z(_Wj{7fTOVK&e<^LjrZXkYh7{UTGORPNZU-Fz`eZFD4a|J?)|{x}3khSEc0U_2oi) z7iAZX8H;dWCwKYOQfaR_=W}0YWpnMI)O04}H6?;=cs%a*NunNA3Pk_rbGuwNO2&ro zBti`(l3v1($}Am|Q%E6Ll#y4^3?oT~^>s<=iURxHr;{aVw$-6)30iA38Y{<@_s`6g z%H)XH2PKJFNgo!lOjez|zSw^f-rPY3wiOxkst#>S8t0_RTqeg`_0|M#H}E?+Ig4gWew;+J8)voDNdDJ{K&OZzb9GJS#aO3c~bk2?Gha*34oDoW~x zlLao=c~XDUdCjZyqiH@Gv*=?L?`<09foowQLCx{3=LHF~^n=A78Hyk^(yu)8%ydBf z;iJW7F!_3*ys~VVu}-&sKqV7|eTWQ}6JA%aR^D#zKzUhQguEjoA{WFzNS=P`0N95&j{Qm>`B?rTQssr)= zb?oDRV(eFb{?66>QQW)KLWTe5(U1SB(O+c;{>1Q?=|aMA9lc?aV;7t(uO8l4DtpwU z9@gDc>F^|jHYIG;a^hLbX`c61v?U^WqrMuHF&qIgYw}eI%PS#GJmSw*AwBL|iMWjX zUorW!m6XQ?mY=wBk?{kzsjQTTI$z9YjZxaZJta1gm=o8NS23uieasA>hlSV8bT`t- zg23Fl)2mQ%qYyZ>OV&vi-q+fiNqg$D8hU_;3m%JmQO&(zql~wVLd+SE^4bPe6_TxU zi>cOr16c1GAg-7q1B~q_aIn!$2Gje10;#{@y(y?2;W&!QvKwmwr8?*C&hYRe22@9) z$7#dIPpz>%j>O+Yx`2&yve`@OEjy}!ve5`(N2f+ekhJU!_#|UkWn+>it1=d@-p*ET zvOe!7lao zLaY-2KBmJgS3AQS;5t@aO}|sAh$d!chls|k=kT4nx3D%3=Hv`FYD9fJTNy5O)(QlV z@CGH@Kt&N!^^X4!iu>lqr4jIA=uBjC#sx`<~R70aUF z9@rxJ1Qcc|893IaMg*RAv4F#R2~s)tnlz$za?Qw4ISUvp_APuMkHa{*3h9g-HFm{3oS z-UsO70IHfe&fq8FQs+cxOR;ejyl322#fKP zMh+hz7WdP<%djp1!+^xSW737Okl3;x3}Cf0%1dS#D{Gl%Qv--dq%A%p4sDWp@s&84 zv5kAqC_O2lwcg5X$R=1AZjG1?F8WF(L^O3ZQ~3BesG{_?Gp5Zx^WZMaBGzLI@h7y4 zce!lLv@Hf2FJ;popVC@Pm2O-cz$RNV~fer&3)T~VdjYbU>WLBN^PA~I(|6)PvxdVpwxXRUz$A!!ja#3p8u{Bua5(;u<@twvMTzRLG))cPjv{Utm%W(o1jH~GI0<3&q+M(|Q-&eJ3)wi|b2UO~YCsQJvU2?3LI_pK z$C2<6GY2B3xZ!<@iw0jw6oQqMh=kBkS1rD7PZf+GH(^|zRoV(K;)?BYCegJH6xkHiRoB`5SOZtw^nxD%ubjzs-}yS(cO01IL;tK+lV^OfwE$R6I+`3Ot{fJwmPG<&NsYjk-M{ z@kZU6Q&X(UOv3>*w@AGjG;r{a@rKTVOo`k<;ze6GZbA)7@(IK1LU921FxMRZu>CkD zKAo5-~RwnkQ z1p9xPtO2n{Z7A$>%a>i66L!RyfuUxfGFSIl`J|ynB$C5JAP2^1|ZlM$UkG zo$=zcYS_Qo@|RfPMAQbC1>JP265L2b#yI08E*Kp7A^xQ8YG=amkz-kmk@VK%6H6ts zvGF@;x7X4|jIn3SgyG}Hj~rVwa_=5vId)ZJ0SwAG%f?Vh3}zCT$%=W!McH(*3gscx z%RpdOWzIx1td_;gzAK9u49)3G%94J(U^spnjCU~yCMBXqIn4HXeu>(2YZ#obMQA5D zlcOfx$~`KbU@uPn%A4R@9FdJ#bW%NZj7iOQjHh*ivTEW};z3Bos+~#WM@^nSD$s&x5Y$~%d980PCti7o zKX7A!Gvm09<#HcJgokrQ_G}@aa4FUvvwGn^Sb`|z2 z{vCzMIs>38^b~<|vY^3&fLd9i36{n&Vz%{vDjgh;Fdk9UW?Y~z!sOqwvc zZl-a5lS+bkCAL_yjy_~0^ky}Ww==nRkXyRVh(@kcCQ3-x4(^f_{IFc+>7zjB<@dT> zuOUwsyHO}xU=ItuBw`X+M1t`(CsMd-C|6mHy{>!(VbDCNyW(T0wiin($y_>cvWHws z7F%$k6}BHaZGyaD6A+kw$be~;Lca~GSowWo*PU)GRPo8me`0QHyBeZ=M|^mp3288u z;1aILZQE{xZHv!Q+QRFNRerx})M951bm)jjFru6Z(^L^`W{VLKTM4*zcpzg&CjE=oa;L@_g3CxP=f@k{+d)9turG_{MLGi@SC-E2A zu8g4z-$_)^mA&>$>}+CS>te(80+VTI+6e-bI(B3}mP2ABjjjs6*gzCpV7|eodTPBW zSbK%YRXEw2;o`7bOI1;APjup-O5IQrSyO}UzGD^Aqdqy9?aUQvJ+V6(*C2~F!NmjP zJ`9dTowW$oA!m#wcUgrJxF*?=Yr~E>>#_u0g=(bgK*TxAuXbqPIdvjqPvSi&qJ*T92#S@*3&IV$co^kP3TV^H_ELd5~bn623=j+ z6nn6|+KAabY{tZwssFtkevl=!E7q1dp%qI$EF+>87$bjl+ZlK))oPs9P=lx~`mLt7 zdKoReE}#>~z8e{yDzP86$*CQ6cjTmrb&gC*iTElflguSGF@04#p+!K%nOa6*sld@` zxQ!-k1EQbp9&!m5CY24nO;@#dEzNi?0zP-}iU{tShd53u-*AhcyrlJIJ+ zrxEo8N{?T{BjoZf-`v$bA9AY}r6v(XtS|wLvC?qgj&>f+a;E_LvX5Fc&Oxy1HBwU* zG0uJ%Gh#kGY}ix8i;^E@1H*v&M~D*5LYL3Gc%K zXZvOV#C9>GibQxCCpGYjH;2%CP=iA@T-4@K54fc)KxGA7u%0Tb6lrHTiij+8jBiVi zfR6OWHA@qxuB#c(?1!Sd1TI%tEYmDFse*@9R{aop6b-=bvY!mxD~;JiZ-{`Pf=yye zqEl*F+4+2^c35X)j5%)&t-#p)Ln_M9n#lkYJ@2)5HWJe^A)17>$#G!8XXcXS>j*)# z3+_Zud0YOlL)4t!6Z;QxtE;Q^J}5Xe4Qy|unv*`MMrkbUMxje0VQG#pm4%9FR~?u5 zSyWcu;l<@PfViq9{8`47Nlmla7cF-&0E=DEsVj{f9GtxQa_ZH>N6f6AP#5)x$!*Gs z!ftIixEeXC_M*YUWypN5n zi6@J=^1|?7Pll;b8Bo1st?nt8)7bVbp|)08)?D<}#hB5;gu5G`RmlS<6|J<6pr5b{ z+Fj^5Ty`^V)%N{@I6$~tzOpdZ>A)=~&7MDn|ZySR_^bf)6^0SU{tbSlJKZkCvRme>?% zl-r0Gh;$L>Pjgj$D(+L@T8J~%Pc(T$dJtOsmmIzx=J6Ry3<6^Pl><&|1 zuReY+2^QsHoJeTGVz#4X>9O#+{w@iYW^)NGZn+5hhL=MM6f~eh zW24F(l&|k!Y2Pxgk5{_b<8XwtLLdMFe;<=szr)~63xn90eX+T65|+VE!tz=PcUdIh zJ%?qc#qHVB3^S6fp$4ys?R`?e=+kQd7qcU4rfM5@rYF*cVC6*oN5l#ZEkK5lPk`)T zI2y@Cv}*ahgsOpXE$Ff;Vyq*Dhe82gs)PoQDr6dm4Xc!P>$e?NY54#$uf!2X7%Mc; zEG(a8ConeDi@T<~Kke^_Q74#|h{}{W4y;sVG*-f8q&%-176P&0bi%-1y~V)Q+t{>w znGL*TcV^HgkWbf1k;$Z!X|`dDC^MuHcx^;B%(PJ3tm{sGPz@M=SEV!{9Mu_v_!KkD zCe#S;-ZR5AW3<XxRJn$*BWlL(pf#)lB)t*J|@@SSzG6y!BVH+DuyJPRuGg3dLnJtI2j}e4ccK; z_H$EW-3h<+5*|=n4(QcRJ?nV!T%~173&J**MLT9~DcD9*ui>*Qjg$-y=dz}w7U!}` z1{z6N(5aVAd1a`)H*3fiOIr`lS(#uEOR`?#qOZCbHL98CRtByYq8`GmWuZM0g4v*lI|ZDkM78w_05g9b-s?T((>x&4+~&*;QRji%A76LW-;)h`!e9 zrx`a{;*syVgdZp|MWp*%MHSECbM{Dcn;lI%NC>#dVr(kv7#t3hW1TP2Yuo|gI*sRJYov{)dLaA9H7y55VO`!q1q0^iN zyH!K_$=S5rG>zWZ3F1K`JTmGiF?F(uwB2JTBXK#>+p*zCX2P5_rsgVauv7y18Ki_a zh%$0)l5y(~Bncw{H_V3`_(Hv?^7~hYm5LX7;BaBZfyIHc$hyX=LH$(Epq138A+WwV zWqrKhGh{r`jEh4=gal?G96=>~bwEp)!$pzT^s|wdNYxJg!uxk(=8<(%NVK%FP|PLM zU@(CtK5)lXgC*0d*xO=(zzw1-Qyo3Joz4)GZoNJD=9En4MAs3?Lt51HgWi@9mP6L&iMf@4YO)67t!d8aW1rs=A z7HziWg;C*yudg`993orab{PVnD`xa@3B!a#QCooMTH&tWv2VSavv;Eb;A?)>kvw7O zgiZ`w>2=J&w<6f&I)T1odFaP1%Y1n^M!34jYL?3ajvnpRvt6t*RD$3h(5deG4Pt~W z`o?L@9&=^Cj^0_2p)k6qT90s2Op90oFjY%d;cE3jwNit7MK069x|CAIGAt7gw;ipa z%j@7SipesRXOBG|{OE>3Tp~?W8CAk$GhFHv)F^g7c0>{<1UL@SHZ0{tg3W}1TBL-S zd{eokuz!iSV#3W7@gX@6m5BOd*A~7HgKDz1on$~HpRk8Masuwt-j+>L4F~f{H$ttL zY~t$yUDjeE(HK4Dvl``QrC9~DKU8Uub5(Upw3}$38*@SY&ELtzL2pWPt!h{TzksM~ z7-m;)E3>$=OBnZO#NLb;U)gX>o2*3E%N6}hXHX)Nss$}#m)l3-X|E{-_E_>5WvS*R zUq`NwH&(hPa9H4dVCQJTIfSef1YS&J^XFDTBWj3EM5J1jB1%SC z^Aop#AOgf7M3To$9pUZu2G2Sk4xH=7w4W##_S5A{O4gS~WeXAmOtd(fKJ&9k8jARV)!4&gh2jvNj{3=f~c+>)vcj0O^fiY6!s ziEZ@o((iX=jn3)G0UZK4U1X_nZbJW!mwBY zACh$j_A|&?S+t$V6?9ChxZucz9>`9)@G8@9)iT67jAHF542xr1qgEP0EP8t_yvjN; zSMbbjB2|!rFVkkDo@7qf&!=Q<*{O6Y8jl*+EhX71?MLlwG$VoOMX$Hpn}NW0UnjyG z?+ah&s0aKdPf|cUl`q>mNo+QL*L@C%$Hv158V1$%`~;pUzvc!?1f;@;)MK6l-WaVbv>Km5Vh5lnnoR^uqA>;9jLM;$36u7ZRwZh-m0%&|UeU($BW zH*A@M4U9e^yl_G$gn11ge>Le%Qa#r*Urja&p`%f*B*K*}MOLfK0ik0#>*Vq=<#6Su zE`gKq@+_tr_1NBPa#$W*g)&63l9h%-eW@d|Y2qv1r4_T05x0W^1_Ikf*4+)y)y=y* zd@7LlO1%;ZPYH<^e#0r?aiMiggeCp^VtMC@DMZZEzI6Z+EhqMC7Qxn!s7S>aO6 zcbX$yEwH=Fg!Y;31cv|mewB{-@GZVV#fI7{|dw(ogNBdx(I*ofO!>}|yhpi=YGdnbru+%*cE zNCiZ^WwDyeD#s|bhZOzh&>%8Y+)r8VHIbkazc9Hw63mjI6goqI=@=g#>+A}*(5fAr zgUiR;Gk&-O77tDPJJOb^Tp5Kq-3oV*0R_iF!72Mw^2~tDhYN-{yi!DznCqoYMaoHH z7IWHY!uFbWjq*m@iwt!|y|Nu+K#TB{FanBxCk(oyeMca0xK^L&bQ?`~-V;?xf`}mc zfX2PyH!1zfOJJGon!T6}EdS**i(fz7&DgZtT+HHY2)=$KR!UcTFVpj%z-_Rdy^sX9OP89uD!N^L)I zar3gh0+3Btm}3P?sO1Y^mgi4!M^bixL$P-F5Z_pNLlk_Gjqg=;xhohI_J_$^_j{4ZM62s`q*_st^GB9OF zHs5@RCH9UyU#(&~Wh_lh@{u7svYofO29)Khh)pMFIbGkez%xN-G~!FpVce^Tg_gjA zTqFo;F^o7!h=w-}eG^68a8qCH@y3RrPVv!9jvf33s(LP22$bBIb@Nmm5+%fF49N#SGW;NHOUzC@tu;;#U+u2O{yFTg&!`%5tj<&@SZA%`eNNl zCJJUfj%u6XkO7gKCd@1**Y05Madik>=JOaARj{tugqfL5Dp6i7e=V4O6EK{ zR}i1#GLzg-j}Dy3S(k~E61x2Bx9eCFu`YaDXgaGH8SCUO5bML5R@^ z%0`Vet$40cPRJZJoY=QPS*F;*uQhB2Gza7C7Jf2adsg4KGE@yT)<)?)R4E=_aMOA^ z-BIJljH|1)W5L*MmgMhrBw}fx5Xy%YSsEy}%XgV?y}>4`k+~9%K#6j&$e)0lL%M)H z;D|cUqZQ|EZOjdR#&dZM5a~9Ffi15&I6j}15ae?*=~>367<{dp@Tb!1yT2@kHncGHg!U|#!@Lt7fXZHiYTczC#CeYcJJsy?%96AFGG82)bd zI*4I6sdxAR9S-hwlyh1*hcI4z_Nx>j@9J1-C#OEYV46i6n!l!j^MuqTraX zkpyS>el()6L-bQWtg@_T67kDO8ovyDP(XM!jv**P?qkrthwnAQU5M>=%%Dln#g!Xe zxL}JOF2cBcmSOI~@I$pz@+pGoV^sR`OKE6`q9m%D^*MzgDF{2H%7QTQ`gljBqkB#h z39O;h-t>pAJJyBu#;zCEB^-VNs;Ydj(+bL>N@Tz-xV1sZVI5Tt!67AU=7LiwZ|so8 zZg77&^brit3ymbv3m3Ll>kuVG;*kWZlG&+>Imb_nMb&(%M9s3|+vSK_B>s?Ayo46@ zHD$eG7=m!%dV_r|SnZSqrwC6J^Ij$)QEE(Zx@JUy39a_xkqN&(mKj-%HD*51VjLOx z+U%sMb!PhzPFLLoPA&=16>|cOEnUF%B7BJvJ~)v`OEgz-#)vwi$$?>s3wO!aXQO9` zQVDm2MifzMS&QIHm@!u!m_?`>A85Xr=>#WvR6^-uDEa=#=9{A)t#Ju&|*$y>V+6tJ5hoRcQUqC6MhcP(Qley?8C51 zQU8D_f;OL_ZR4ccar;&e=8B40jRnP~0~4iydKnI8fQ_ifM*Hcqc?nt$%T_zq{aD!v zSzdIp;4*FuH)LaO@4+!OSLzv;1Ir#?Pb-a41cRILELo}IA}A;IX14xj2H3VVq! zduy(Brs!2eNUFguAuA$uZP%+Y?C_M!^SQho`3fo-S3>z`s?PR%Rh8;^UCWci<4<$j z9`<2o^h&qN0rlAWcURRr(7GKx;4n^ZCCwM>8$MBP%;8*|Yv8%7_sG#bz6Fp9MAhF?99^NH{lDV7T2KvXMqA_191M5`&l z4`Vx&u_Uwc%@R~528G727BS>!_!1yZ3C>LPljVf15x~s!ozRURRzESq2a#Ly%;Yu3 zA}+@wn1mH{)rq<)WQf)|2yBok_$gtbI1V=-n$9FG{CFPx$*cuA;i;st zehS6emtrQ3A2n=Z&Ge{PbVPNKF{Enooi~o)E!&Sjc>EOP|J@U)Am^VrgbI&(aoQLZ zb?iNx_MnW*q-2Yn_j6EPjrbP5wrO977@qBf6r}P^><68nskqZV%=#i3F3%+Vz$G-b zN6#)r1ZY;a)D=zi^3mfaj+!}q{P;;D?NT_XTS+_oQZgI;!cxe~ha6?&yKz9W;_N#1 zw|v;+BjjWDnHzuKLk5RKNt#cZdOZ5HGr$)EVMlR(FG6C;Ia0!{98w7jg^8%;z_k#q zq-nk8Y44bouQ2dYPsD2tr+j>&OuzQUf!QL07mhAMOy(kA$-zHg%nD;^vNgr}PFY!@ z9|Qm?xe4DT)DT-k)D)+8s+`ixzgEPm@FMU~?CMBLOiK*awSx;;?Ob~D2TP=#>^Zw zdc5dCDkuBkJEo#0cCuf)BcHzLV(yeH=VGVB#x$A4HSXXWIhB?JhVS^qZ)eJJlMD)> zUt~rTEF1}^8^#)iizBPZa-$&{Cjx)PZSj(X9;`i4_38!arX5?&0ZFx)iMN@vh@ zd&dKla*H0!S)qo*$SsZ)E!Ch}eh|>{rZ9j$LV9oo`aK)9PT29PW2^oq7;8dN$8GEM zFnWDQKD7aNTAEh#LB?og3z#Jm)=h~9`My*TGa1RW*)Nz+UT6*QM5^kO>L(v6Z6-wm zE1+O*$P98KU(c*hrnu9rpZb+%Kdz?md}nZL##Q5%dVQCiv-f7M!TLW<1|c;^W(gmD z=S__X{fd>K6r*l7k>hroXR~=%5y6K^Xbs>#gLXIFSim>m94!7STG^H_T!c?28pJ3m z-=GR2L!cNwTBFW!<~*dal2Ny^vU18jDCn0v6X|RaU4}R|6=z+EudPFa3BPJ;uIZ>T zhtDka6e(N!?Nb^3G7GwL4~Qry!bvr}t5Rm3)zCW%k906EyGLXp1C1@DoRl z9X_Sja$6L|)`(oF#K_}VF=fNHysn(TY?KX0FSjFDjs1Ynk(LdJ@W-;TT5O%r&hp^l z-lg=)D$aU|e3=rG{QETzaqFvCMEC2GJhaj(Uh=a17m)%l#As#>Vd$=;E(=HAKWNBr zCk!o!udTA9WU@KOn-_6BB|bA)eiq#Nc>@~K{Mk8)$ES9=qYjFJZWF%ZVYVBw9@TcDWyuAi5+Ig)=A)uL@j_$L8B1n z8M89_h$_66h_^zu>vp`_S;dARG()Y_1SQ4GM~-vMha!0k#mbg-AHSTNeV0qjQbB#Z ztum%poJ1}os9jPv%Yntld`Sq-sw^9LreaRyz>3Ic}Pu~M2@h0=6&Bh;s;(Ql=`O}O_kJR@=1WbYBRABoh!O$euJ zU|e>rE^(!G@v=UE)MjrS{qes`))CHoqJ@A;2Pr_p(UQl9) zL>ow0-+YitOC9d4kG#Ux;2>^M%Ik=D$l8(}R1^ zkuPA_U%wDRX2PMH6ZBjIlT+aSYF+#dE2?&EpXzcSq8U{)V(OS!mru{A_Z)wg*9ii8 z(HP+qJnD5>&kKYPYW}_I9`r*ne`IZBY2T(!4+uSbqzCunY*G6(0q%$zN7lM!W zdN4M~5n*_x!&e-`$>(EFKk(PFzV4)32A(AL8K?{nSjAib)s}cs)EZiHWGY%J%(IYc^lN`5!ECMItmVG*C>5!q$mAz#D_r@8 zPnj}&Mhx~wxvWw!u~v8)cv0s#+VKR=yk=`VZ$PyO`%zs9CQC7q2D;>kSi?mgyuuf;c)joZgj1l44bcNNQ@I| z+|;F?i?*ypLrcsUWxfUjPYV4sv2~+AY#8e$bTSR8&}^A`e=DI(15XYoVnC$&*>a>N zAsCg^Ow@<4H{WG27o5#9wp??0vWU$6U_Tr!;>bsQb(JLC$d|?JfEKy`SKGHP$8lU~ z=D&?*#5}?LDR~JIkh+=xWk<|{qCFG{idaJchXCc#N-|vNt_Et@=!UwwNx-3S_%YTI zu{U>YT;H#8Kf6;I@rrYkB01#?F(@awj4MoDZ$Wc?rc@J>!7JmQLN!6;iM-RU z=GRXx0&(6FpBmadFxz{PG53k%#f=6&H|b8GfzbeVK+K&w#_;_k)Q*iVJc)%Mc z;rB?UBo?L7F~`!w08};t$gLMskET6OUr8HaLO|X{TF(n^+(>%B#f$KoO4LyXU$wFa z&Qm7;U|UQgYixOK@p~u2B)2`!gCk+nr=NGJ(GhJhtmnko{-=5I;gO0A;h1c&>zUGt z+49AFF(M=TGrrjwP9XTiu4c%Y8 z!&7tF=N>-%l^id!KYjMd1roqkqc9+Pfi4q&V4s+sb66Yre7a5yWF)>E5f?c2u9Q^4 zfkz^J<*vLoIEGH1<$mjMrLfbrdV9?khAG$0+GNRW%9jI{w*&{ z+ZnQU6GPG$gUx(C+x1Quro@86U+5Y0!`Q~pnH=$wv zrex-U8{6%JnVlcci)lTs zUHv}*Dz%5VA&MAS&PHX-bS!;^dt-5N z@piOyRjQ4m-W|_}1UF^(0#rK==X3FqKn(lb>D zC-5yD=&SGMkICIge+Ex6I#X~A#?=+`Ubt5@pcAV3NbgH})xnG%!C<)kHvXsH26Wh* z^EOKEG4CUnvvVz_zu`zb^6@((G!Y7k-Y1Taq<4&wgKFFm92&#=T0Z3pX8Jdr)zAKd z1OJT7Y)WcY3xe@Z%QH?a_dbP%Mh?Q-1b=@T&)@^k`q>}h|9*bfizO7Hx9%^$(ev_l ziF^#V2(l1w(L(&$XSj+m|4JqI@mW86+|SlvJ~DxnwKf?3n@PA)^3IFf6zkSvZy?l+h-gD(p zhrK87XP@_a90$0lrpp@Xs+KTUa+nuHhnx>>0N`JTxV~O4PPhlye>`CbSjQXC>6c&P z72%ziV_|3E%%6M{LMp%|=*I94;eUFO6FBtX*k|y6kKzB;@V=kHKR$T|?-vW@DvamB zdMf`8J^UhD*{7e2xN-4O?^z^ds5f7^F(a6u0{M=SC0W>hrI&xpYCKO3faA z*zE~{Pb5g_{qRH2*iqoGqDLiT+4?E0iZEh+IOU(w!-2nsJ&g~vO9Og8jC)kgGDhl; z-Vf6rZaMN3tkJzBTq$B9&yRNY_N?Oc;O#frI@Jtpz#8zwyf-Z7Fv!ldG!>35dgrrw z^=C|qO%T}#hu-%P_Cynh4*W6Btp7ZG6MCZ(tR%2B&o(SUBg2PLwIdjh#FUMy?Awz zU(k(YQYfV)(PPe?U>2a5R+p^53QtyzK8I-wc4qEo`3%frKh5!PH_!27ua;m9Jr5b> z{mdoK}QXgl9k}cYkl16>uWi+v#m?%8CEfUh~*% zMDE@3t8p-x*ZU{1-aiG`D)jJ*8-%7Zf;VXUbDSeMMSlJ{Za(n$zdUGo=~iTlD;6Tu z|K&l*R{h5?BH8uHtBlA9m!33ZaCJ|SFI^#stJ@l8OAzC(+ItK9yup(QV_eK`=%zu8 zsipMQq60a^sHoMQwJ@p+(N6E~sNdaF7eQ%f!^qJ2oQlS2-a54!Dc-p#hN~_`zvcR( z`ttWhxhVAC;DKEAv-cJLUyd_!MNdYxx}p~Nrsud@E4aQqFeiWDZ!U7^Y@Z|hO^%78 z{EQhg^0TtDrS7a;=eY$l56Oo(v(3kzz`A}_4QFTb;_{rs0{7@iT&$1lDwgfZ$3zR` zUS|-ZbLCkaVH8to1PjYX+6>D&xV{Je6H$dMFOoK=$iOY!fw9e3p*7I-k0loi>fpPc zNC+N@^H|*i-u)OYkfaOPYj7@Q$*r{75FdEjW;ba=$pvj>ZH|*R$N_~}__Uw%v<+5Z z$WzBQuUc);CE}ao*t)I_>dhsyh~f|>Z2hvDIHz2oxeKPm6Y6Sofzux1f}87-oHS73 z;q=kog>+Pau>?~lZF7;dna+fwAZfGHXoH!etkKW3(FSYpnr+67Hn3UQs;99AN0ou~ z%^bpMoVTdP*Ui398*MmYmbO_YZNTswUW}UkERr^sWl7q+PTN$MCFZJavyie6bL5K5 zN+(swL`zW8j%GDD=K4aY44>;nMf8yXdl)tSKwR;T0w(Qd4nE(c#2S8g&zDIXl`>AB z>wVg$a({5-7*^*y&+Mx>XWb>Ptj!Ch3XGL*Y8^k^J@_^<1V&O+tp>F|j-=Sy?Atao zGa3ImZk*e88c}f5iyQc3zMc#TRiw5ni6oVPJlNCxU$(NMG z;zXKcu~6I3LD)(#f7rrWRt#d%j?Su4n)Ku`he>vBi7n!F2?-9beyFj2H?mrANj;5X zp6@I9^CNvLe(ZmS7nSz(i#(~ct2^7}ysF&n9f{fVi#()OA0O)_@wfl~;VJ#Id(P9I z@9QzqNuB-?{=lKXmOVv|zJ~p{W&Txba~9|-+d?sQz|D7Jh5$(=$z7r%8?J~vTcR*9 zE@GP!WV>(PFqZ~_4q%C|q}U^c&DCJ!34!CW|W~z zJmvhT`Pvard(&$_y6wfyhVM$5`1x@XpTUI@#EGqSbQiUN5rrp-n`PNI#r&P) zUyX%~_AxMHMA>UjGO_2O*IE5gT)HXkPD!8v%|2N6iTBNE2v=YbkC0zR-7aW;)4SsG zbwM@D8N(iHpI%iL%L^)6X9}BnDRWpJL0aF~zvHD$t}*JohGp&_)#$6ihb+%17{}+_ z^3@yLPhMhe0A|(VJKacbc8i>aQ_HJgW6sD2h7Jj&2@dQSC}jnBRB;?u|4blU=S(#{t=1@mcD- zPD=U?2u+Y~7fH9p1y&K$)Vf?Ujx91D%L%fgaqLbbB#|1GRUpfV7L~JJzG#QhUJ{}c zM-zX9LiZ6}qL(WMAbkz1>y@_HFTzMU)DZVTr+UIRK(vdn{8diA%?QDz2`?L0ruRK& z=j3%3mVm{wm?V?%eU`l@xh+T1D774Z#d5~bhg6x)8(v3DwsDhQj3DqQFi!Q(xCh6&4F=3mWIcuCLiCRAQ@Qs`* ziCR9>-(2VYHD-jyl|Ol=(d6Xtmz_tu+x|8=3ZDV)@iqSMlMJz@R;i09V3PcO&6YW9 zyp=!oVSVIO0N4OTp&<0>YS&@JXEqlkA$0IU5Mj{E%bnd9d&h#7!hasV;ht2&l^k^* zi>|grVo3BVa;+Mqn#yTu3ZYl-9kL4=qYEPmaxqcfV_@_Rq0SS0^4~r83>|^ zcQNx4Mcg?7mf5~DSsMP2_Gf%7eSGf4Xgct$s&O-nZjIiNaBi!~5*5U0gmpf=+}1dC zZqNpiY?}V}wzkXgFLo6U!8l1>in%W5ju4=tcX@g95Je4aAWZ?@_Uy}##t>G)*W%~j)J*tZS5Kk{qdrma|$oV^{4 z@McG^cK7#lWzOU9P$Y~$rvMR757>c9c7L9vM%ES^dQyx&eaDg-lk&+Ro;h8tJQJ5h zso9~kV7VJ&=>`YQV;8g4UCbtDj#h^%yqf@kq$TAoOT)gW zl7zKdlg=7>eqR+C9)@0#DVzTli;Losq++poSn_3dnCN^*4q3RS(M)ZE$-|OKtn?6( zQRqO!YDoOz1Nt>#uwxdHJHSr zJ{|N@N`KADM~OO&Hc6Cr>ENmwxc2wfdVAJFXD7O&nTWr`&RWjF93fT!-;9F?G5{i} z9}zdTkAh`2yOv9OAs{#OVsmu~<)MgRr2TXAB1q~>L9pfz6y&<@{*9bg(|GRswRKD) z#AOU5H*XM^^5$vef3yy4+p=%XH7{j~sd!W=uCc`SJ;f=TNuh0#LViH))jY>Cx(N)v zG9FDk=IjT4XezKG^kE8r#`ZGbex*48JQL@d5FV1D%olEJB{6wE|A-t!QgBHJs>!50 zE6jz@^K5O%{fH@%bx92J?;>Xtt()X{Q;DTLjkG0`e;QAw|4GQm{UKcvTZh`WfVB?Q zuyM>sEZS#qRod!%6%moH7D=3u4oMN8qo<5gAJ%|siX==cuU2INh;dzu@n-xQrn8mA zh5EZ^!GAWOo1sR*18PX#7|y@9ZjCg5niT$x+O=H&p9E!s+nlC=!AZ3$oy%N z5a*>RmW#Mq_+_?9KQ3?BZ-{ey_KG;{)8|^>;i% z(dKWWFdwl28A;}igq$Itx&nhpQzEz%r+{(I;ZZCraYzc3oV;%r^u+B>2>$X*@8rIn zbl(d{kc`;Bwk6cb38+LB#hP688pT%nA(w2fvYlv|w=4G(FC~#ZRVo2B4gz@6ovd)v zkwdKzoUn=nRq9Ohuf%N?9*@fRkJlH&%b%B{%Z}3LC+1=*ZaHtk*q^@s?$|Et`a3)Ly~i5lwks zQ!1zM{8R*K2Jmmxgm)I2eksSU)sTrNlQ&axE0Z63tv4y zdUf*c?wcdY>q#BAXGxM!9-RIa%$Gs`-YSqI5N7 zktgsTJI@I_Jd>QvMpE<80=Y)E-qY*sfQxMp!p;pqL+p^55RW~6^Wm#QUfXau?948& zd5c=#*}yvgUuQ2-O6_PiUVOm&eTk-^6guurhl2-!I0Q&%1u0}4E|irFA|)SAG)xZA z$^mz=f4K8}Kb~G!=!v-EYz{u*)8WwNKqE1j>kAx&7v*q*cjcz+bo3a-0V@u1UN|n1 zHcw`FA(;qd17=yIIAA#d+~Ay-PLy!Is;!F_2O?7sx||9=GEHJhix4)_pWZ40_libt z{9zWz?Q_11E>bs`Dk_~KYlQ5FB(1d|+4z8^u6-(i>T5;i7p!;F#Wq`;O0ah(;BD-x zj&db_R2NmP1YcDP2e~zkaFcuBth8t|(Kv`K(F_wLj%?d@bZ=#{Y=O#&lrv{D>}cxDL0sh*3iQWSCnZPXCjJ*z%DbOb1~%gdhhk_{@%fE zlwF~^eHK5FHGzN#_`rQmdGEY_%YO#S!KZY7FAv}Jvp>ATG%k$tw+F|2`=r$+^Pj8> zZER;yP2)y#;}3+v6Zb8s&gY5YH;QyGk=?;s$2Vz z#RTmxh3z_)F#V32txB1)Uhcg)I;KwdpTj>SR;_tUafy}kk|MvfZSZN*x(F|;iId{o z4lh+?g4ZkM>(0Q)Cs3oZPI#%XY8++JnjJV@pA;Z(>m#&xdh|rO+w4UBd%TGhoFpce zh^OFNNzY{7d}opBXmjLaC45o~r!i5o3oi9Z z;CG2cCj8$H2Q7Js6hlWRuVLFMtFvCR==PK2Xm+DCIbyc!c7DPrrYw-Yf zqoUL?PFF>ZZYz3$E-{tK7&J|w=;;Z?rWb5ZMTHV-SRyXK4wyN(sdT6`zzMr=+`tqB z{WP?96Z~a4U0;aTd^TsoSN)ZryA_U4Ww9(m=`zM+dhdG|lzsn$0) zlEtjarcCJt**gQc$GDZav88jLLLx&2Er z10LLcV6x8{J!@JImpHfUc?l<+vk%g@D>HQn7a&5#Zbo$#zwT`c!0Ui!hyb47cKMk z!^}%TWTkPpOhrrkK_%xhVbe{Nxw6}&>7eRqN@&gl_+ifQ zxe_Xrfi&_Wys`7BQ0waH;Av*EZ9h%+B2|AnXYK0e%!)zVk+SvZ)ER`s{THwQ@WL#p zD3UGfaiVSpvyj=@X3Pko6y>6f#6O2bXj@2R@q;tLZhJm$C8fDwo8cHG6VBOSZ>QDO zt%ezn(8E*Y^IKp5{HQd5*@(k5#!_}TjU4V2==8;*Of@3>yyzt1Z%qIIqRLqt=+MHI zslcwP^D;HAD(d2WEl+b7$v`c%Ly>7WZ_tJBFp5Dz>#9yfk!?j6LMD!f>vlQtUHI93 zi{a%(VZxzgDWD~8Mow{}X;C&grEod>MQ3MDuqmV=QVWvicMOtpyq(3ePZWShofx-^ z->zJ0CDEKk?Y!4VTUpaxNtp>VRlItA^rY34*U7HNe|W)TzT0PRmu$bL_*2|-IIb2E z8U3i|eqM~YR8qCXDDKzYK_o@&i#GH-ii0(FEBcm!ivf7Q8ZIxmIG1Bcl+EIO1Vc%@ z8N`JdMT5yUj$N#-u@-Lhg{Q{uXO|yTM>r7Hn5`utp2@t9OcMWL_oqh2yjY&OUT+Mz z7vI$E?*zHbjB~Vr%GRu33vYyCF1&Kbgtv}OnY;`<^qOZyTl4IVCKaYEgJ8Wi(mKW* z?>r1Vn>-~8PgaZ4p?VtkrkUHpyMU|0QIH{x{^sB6W7Q>`Q3 z$&8pbc$P#_@@~!wC#i}df4KUR?wVyTqZfq-xd>XKu42G`D6To-C6Je5sy%q9kUL3I ziIn(7l4V$A&$$O?QO46PNx*?i(iJ0O6Ut#W>ThWzn3S|qFcV-Hcheh8CNT{XAXq&J z;IqDZ`&v!M!X^#fvZkmsHW01jnEO-pn$Ylm9ldTkzvMuC+lmY4yIExzPtm;wqu`s= zZ*2&ct4lvo!|R9&6S!Er71=!{STAwwkbU12RTQq&qcZBX$g;$sad?#1doQwe7_RWD z*wGg#ojeIIe@96uKVC+8dH!@;i`tsRSmjYi2Do669bDZ+O;5c7zeyN6>PR?wqcw4~ ztS|LxrGPG$GRQ|{{fCN09V-?UhR5AGJU9;Yff`#`*Zve$`>wGJF-8_>YfFThI2|iu z>?pQ~<*6>tAp^?wVFVIunuT}pOztzXV~UOfx&H7YOHY#-Atu2%4OgpxJO`=N2Tev^^Sn zN?3@DRmkEaa%-`!B(&0I>rfJFo{d~P2%gG0)jqI&U2~7Z}&= z5Q(OFX`;z}uSFHr5ouz|5^)?$RG>?JdAK|3szY0x!Uz0rW8+Jz%5nDz$L)}z`ckRw z!3801iPcF-U9fU9Jj*uy$pT0%U(}$V8h(i?7Vwujm>0!0^|A^V5X}^qlfyelx6%=% z<3Fe)l0@b^kvy~agot;vAj`u!MS(L1xByMDY{J+*@F5=1uiZ%&GK(G_e7=_a}P8OCrNAq?>`7OjJDmzp+}WwsSk7El%bM&>Shhxt&n3^J4@)(|S(28NrR z2&fM{Q`|5dHyNOvS}$haNOcQM8+cqvb7f~UGWMObg56NMyiAGY>GjoRBlAq{)FP!= z+>|H`;ejy~qO>sO#GaYlsgk!0V!40NY)N~9Yd%JZ4Ni1gELFbQ0c+%3ciP~AE6l^_ zIFX;-p-(M-mPtKHI)W$8@^|*}=Kcb=^lk5pW0wB$A3P_IDqH_-!+4mu4u2KJd1WEP z5u6^>o1=v^VdaMZ`0IaDB(|)D9_H_AhH`w{@;ur_4Ld1<-DMfnMawwXBf+S+ z29XDz^pFh5e>^+GFmJkEL~}%t_>;;KtSFczTy-#w-H3o`4BMbQ2@MaJ5Arm6Tcmq7 zqwGX85t3T84?4Q`gY(voS}>Xi;VqYHz^4Ab8pUU$iX8P5DJBA6=sm1WwDS=-Rw)7A zir5#6e7!~a#qA#4-1m(n^pDy1`VUx;9^BG|ZHb&BPS`x~Nd9kMqV{(p{VKJNl0&@Q z(tUrNJEzO$AYcohLX+?#y$M>6KTmYMatE!fb}t3?Jc-9N@gc|CuFGlUuL<{X zY*sfliXqg6{fIM60;pLH>q-o<^t$7BtDd7cHI2{JjU26YM=PxsTlwIzDd!eYv2HdO zG`ZEzu4>KAh^7c6d)Dksd*5!}fXDzv&8V2e&~xbf>vO@=6sbdNX6hTUBJyGC;sflvEs}$)R~F6O=(cHL2wxThIFPwPgwjAZ0kjFC3OP= zuMHa9Wn0U^d{yMEnBG*D*{2S0n_r^QNA~+=UE#ga5}0U7MKL2y<7o&2Bb{_ic0xY8 zZ$7`1H|sY7KmF9M?X$oij%>I$^z$02@C135=Ed=*Cnp4+KQa4*3TSF4NpxB>p&s~eiPluD`s8mLWx^JVK}xEi;q>B7;O8B&`$ zmlv^&8b_6ca3oNnd3<5nJzytNjnKUpPh%)ELMCqQ1bO~W%cLVNeZf-eVtP%80!aX^9I*PV1NiNIIe=UG`@AdW~3C zGrTp6cqHm6CSFdj70-~ZZ*LI3f~v98IyU2cX9{%gqY;)T`Qs9Sbp*4M3i2pa6*Fw-|>&Ovk`HP3bP;?g>&1!H*kdZNYxnzEOH#p43MCGd%V82 zA+{RKwzX4>6o*c{Bje<{5Sj|>NwzBsVRCwvN-jaa)%AxV?S z#f^D3tazcaER#XjCFqW0o8rWMGXRWj9WE)YWKmfl%Lk3p$loa(CzgppDA0+ZR`I_B zB0!laJ6e%y-?7$?WJU{7b-WG~=38FEJ2J1u>zcvnZ6T zWuq0LdYsJFbXf-UR(N^Gt&KL#;5-;g_{f3jlqLfG^m8QvH_rbOJqt-LBnYj3i&{E)qY0K9Q;ZqGdIZj4KpnWUqmYn4MdBnngVGtJ*^sso z;y+UQrzMMBmfQ)MTE4gVdnCohtP<=WNjq9X)(9C=pBD&gn4O|*wNM{vGr~ZzJ?$2n zlryWlsTxu%o6?=#sZ(otQ=h~>l|J)$X8gIgv_cZ9W~-ZCi{WKb$RvMVVhO;l&Yz(r z1T^wJHX z<6B>FzKv!Llc*Nc`3G)61sr&fQ!uX43!umvzFi%7w7qsj6%)gyGaQLmV^R-TM94bm zYk!eV;Bkup+IHS&;L zR^r&}XyKdgJ9aSEI1L1vU{kvjA;E~aM)+!!re=jW4nCYw;Hxjt)CrubeOpqpnn`_A zIiHw4+Z$`*zGcM5OgKs|IM#TzJQ;T>Kb+Y7EhDX+ty?rNdAZsOs~EBpdIt(x@fQ{Byq_y&qzLji%X=Q0FGe4LuO0D!01I*OCrztu!wB?(oem|D6 zOcs?SaGY`O&aTtgCVVLi9SQY>cSx*eMm~zdVQ5c4rV>;t2BW5wz3G!MWQXToFeEEH z6eqah6XRC*H2T8xZW0bFtwHlvdxV$t)EGYq7C_QA^pDL!5IlVs-GVSqaPD8+RK`RR zK_s%J*tBy%0^De69nuYmpp@Af7)a0@GpYRP8w>{x!KY$i-*L zr=aBomJ9dGRhzYaIkcTUu|iPoZe0B~)4!NLT6~-npwf z!B2pnbXHR;KZdKgoB`2;RO8vjnCXte&|Pvt4!M#z#LIG&wBc(}v6#6!Sj42WIL6!x z7IC3LJTJp|=raNw7@8A%yf|@rH&nkJpKLlL2`z8K-}AK~ePLPT$miHsNFu%wr;4S! zbPEZ_gx+R@q}_$tv2m-OO=X4Yj^`}v^JYNjDZ#{XFFk|JkFc3k?`2<)ZZ(30c)?Qa zoXb;kMd=_gu471u*E)LYgr3Hf$gpS?uFE2$nat?j+9=O?l#g7>ofa<@LfH;D%V-b5&DN;90XF^}imI_*WtkV}`n0UUrg?09DGaC%DhtokkD&I;Ix-q$o7w~l) z1hw=Cmi8$!3xgw2Il@9thm^BAX!2U0^87-;iAJ^Kt<|*m;*}^6Q?*LhIl@xU7?czQ zxXk}t3_rxEXhFjn5wgBs3`v@_X4x0r$3oX>QZVHUps_&KPG)RV&Bg}pU23d@9Rn+x zD{5lSz-S74nu3udjOs!e#x&8f&xr?QI^^0g4qpeUmq8;5Z)jQaUOO^*awuz{*D_GWt??U@G+$@!dN?4%mfw@MiAETNJDhje*bg{Mr zDJ^ouu0&)8%Ot_7o>$Z1oO2m7K0tVDT7zIzJv0Uy%F6S*? zfG{RnuoXXM%XDfXOWiP4mZ{c&r{V1tMRko#`v%^ULIi z;LwqA2TjE!rKVzEV;WM(k~RvS5Q<%a*>GV-bl+8!OL0pB_r;mCU>GjP#|ZAP9Z&v< zF`G5=-?-8pdZKr*R)+@Vd4rK$k5URO3MX<(Pd4pXe~$EjXmQbp;!q^AVNZ}QB&iz1 z#p3nR7g}4(IoPQSB5=6Sd{8`_usoQ^sIJOU{-GKz&J_Vr8-$5C25IosC9gB7A1BV-ZW?({-ci)p8IOe|(cJen_>3MYb#>zf&;wIe%ALQY_68 z9Zj@W9I3;KTMjq8F_)=K$aS2`yK?kP?;Y5UKD=3S{=hQJXJg6&1_{{sif`O&Jej^w z>99qiz)9O@^eG#-$7ntX7f-Y9oVtnyt;9owgTi~0^(QWQ$_RoAa7h>7$jDml2X@R_+ z?trxmlj@zuJ1OtVLvMHv3+(#V#vtfKtQO^k*hp4_BBg1A!QiRGL$nKJ;|YqF{`W>T z1n0LgRn~`442Sae#7zmhy5;YFbjy9G<0R9d+PehAIAqg;8ja;B*We zpc*Rh!>~@8VO-5PC2kV)>!c*l7fHp)CKtqIG4GSs#Kj*5p&`MN{+U`2_#@rewmbrv zo=!%_4jE0F7(2At=sI$x<3RjpWjZ{)_CbyayK+Pt<2I27$$%7Wc9Y<-Basq=*j6dL z+7`EPsp4&)Bt~Du-Cx`tr=>2e|1W3-W;F;NhgB>7bAAT$VcVitE^P6}e!QXsc2j9(uWV*nG zl$dRl8#ENY(_Afehz|vCm)W_aMHCCdt**cW;QMY$CD?kb9uJmDbwrwlBHWp)S^jOD z5$%vyNOSUW2}jR-Hb?z322mQLq{^CGy};-WeXtME>O(1!GM4jfu{A1rcH*4!W>{~B zRrH7A12R_=l}hupQ3JMUaYY5QBov<{r|6FBIn^4@alC*%fbDq%03o=^{OtYrn?D-- zK-~b%gDz(2D@ftsLXRMDXeNt@99}9y5oSK2rP;5jj(M3y>q-W2^zOWc7UegC=tJ>$ zh!k=uo+G_kzea&8eR#C@pMxjZ(Q+yrcow_!mE*aC;OhCw zJ9LQ2zL5v?xuU| z#K!zo5gLPwbSuoN$@LxMKRuiWaV zny6wP);aTsPi;qUYvpaZ%D}M$TX19N*(!aIwJEJ z%ygTga`K2q0Bw2o1Pg=VQ*oY(WKHO9b>qj)BgC>1j-pah!&t56xLF8CEf?N1p^hWA z4k@%`0`mlkwylxi`qjC$P}4>r-!M2XFWH@#Vip>np?zu||_=B>Lj4!~GY} z4tD>LZm)q%7J7%!Eo*P0N&>lCcTD+N`&+Yq*76>SznFIC46mIUyuT_>&;gsJW(ht6 ziOYozGcDitB{$Ef*Swp;`DciipP$IRgWu_tA-Qm?s0|i8`rU)pDfB10Q=C)KP1%ge3 zHBQhZ`hIQnBaYgxGsJL1+N}v2qepvRpS*avPj;57 zp5B=@#j;GQbiAIK{uGzVI@GXMpHS+LUKTvo5*I0(bVOwyxt$r-3|pmsCsY5bBY#8J zM6?`*#<^2w`MNBpt-0aSAaVENs(6|t37vC@5Uc3N!UhU9pw<>fP;!D;P+&4nH-V68 z!LAhcI32#(G(DM?Tt=Yi$qccPNT=Rz_As}Q{)Hq=9p!suy9$n}T5q-cCGdlvMX?j6 zEW!>%drYD(UQeKZv#ujrT4@o0%j%}3VjIsr!b=x8a|o-Lu&s5;{5wPGuiK%i6; zG_Vj4ajijr1U?Mh;GgM>5%!RR5lXwwGeky@z@-vMgx?36p>w$@7MFs#!8J4T8mjSv z^*jSF9P6+uIBaCH_7|rVcTHcVW70P`*J-AQWOWw$akZ@d>Y^GywF`$q zyGM0!4Af^7?go>KqwEwm#eiNXb*F4z{h+Be&xG2is2UY|*A9oz@MSUH6%7$Ip=wlb zI^{gAqSm02502qWnRW0AXj4~Aff9~kc}mS3p3{|k1KHZjJRL)-kxO;dP@7v7TTMXp z=x>6{Mzs|OJFlL0w!&8-cdN^BFo^1YCx->k0kSI7|QX__T`Bq{L2@R5%s3K0L;Vbp7~r zJiBt|=yZ9{w4^*GsmvNb7m+gif+s-@7!cPJA&f0<537f-rfM3O%Jb+s#R|@2NmMi} zgjIHqch+GOiNWs73@6ngp@l)X!MTayxRs$eI=!3mGpOJ&x`Sx^IWCK?5|0~;`-4L? z=kINw<5E7d8JMJWNC5$hXsIHd2SmsH3BP7PBne5l$9&1R-lEHg_dX~G+RY&0aKbu| z^iwfVfBo@BKk2QW!Tw8;iKnZD-D*e#L01u&hrUzaFVZ;#?)x%;;Nm{ zCQL_we*@aD1Cxuk=2E@|jo#w_29Mh1fWL zgyo}fdO>u7CXmw!jdRQ;Fn8Oiyh_m7{^OoTqV7=xuNur5I$)8x#{CZ)_wSM&$$fL7 zTpQLzOTqbdU7@_J8&sB*m|owE+zSiSelUS*cPPS~Ypi|~lYCN+7eqzLK8JA#BuYwN zMTs_9mCsN_#q1P^nL)2zp?vIU5InZOOZ4o;?pJTW?zd#l1fhvC@xcfY;T^H`n;?6Y zxeBIFGhv2PCqZFb!i)>b3|m3&6?x$<{vxGUswn5Aucdsxttt^3IsG#0Qa>x20S%0F z28NGv@tinU%fxDlv$mld#3>o>z}C^MRreTIT`G^736ZmdeUT~&2N+oc*U0g0;wGjsMC|ZCR zS9ImHhKLqG_RJ4)OQrE2(d;quu=nyvvihpvL|jC0aqWv$PJI;ZX(NQwp+d$en*|jq ztYXZFH^K8Lf}rE*)X)L?`9ytfh@X%IWZ_yEWs~q32jC>6wgyk48bC@Kpwrty$MM6# zz^^S9ke(7qcwS~tktJ%Fo=9dUQ_)z^z4yR%(Ne`rhP=!-3XcVm=JP=iH6MR! ziDB>-{nV;J0;`x58S@)C-u39*aFgytC>T0myTm-0C&U)KiH~Q8Hl0pifGE6?69$!} zxSGYC^h=Aai^14zpisy}OjTNXcnOj84<>fxy`(ku;LeVu2V6i2udD<-W$=||+2-@W2zhI^zpLHlGWYLa>)@H5g)4GLv*{yYa%HBW`NGke!XX-(#Z*AZu$WUfvcMEf u|7M(wG;>s|l#1)Qsy{LVqHBO-dVZ$%J#>W$GFtLQtbXRD{#Jw}!v6#AmDlnB diff --git a/po.orig/en@boldquot.header b/po.orig/en@boldquot.header deleted file mode 100644 index fedb6a06d..000000000 --- a/po.orig/en@boldquot.header +++ /dev/null @@ -1,25 +0,0 @@ -# All this catalog "translates" are quotation characters. -# The msgids must be ASCII and therefore cannot contain real quotation -# characters, only substitutes like grave accent (0x60), apostrophe (0x27) -# and double quote (0x22). These substitutes look strange; see -# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html -# -# This catalog translates grave accent (0x60) and apostrophe (0x27) to -# left single quotation mark (U+2018) and right single quotation mark (U+2019). -# It also translates pairs of apostrophe (0x27) to -# left single quotation mark (U+2018) and right single quotation mark (U+2019) -# and pairs of quotation mark (0x22) to -# left double quotation mark (U+201C) and right double quotation mark (U+201D). -# -# When output to an UTF-8 terminal, the quotation characters appear perfectly. -# When output to an ISO-8859-1 terminal, the single quotation marks are -# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to -# grave/acute accent (by libiconv), and the double quotation marks are -# transliterated to 0x22. -# When output to an ASCII terminal, the single quotation marks are -# transliterated to apostrophes, and the double quotation marks are -# transliterated to 0x22. -# -# This catalog furthermore displays the text between the quotation marks in -# bold face, assuming the VT100/XTerm escape sequences. -# diff --git a/po.orig/en@boldquot.po b/po.orig/en@boldquot.po deleted file mode 100644 index 652c51b0c..000000000 --- a/po.orig/en@boldquot.po +++ /dev/null @@ -1,4349 +0,0 @@ -# English translations for GNU bash package. -# Copyright (C) 2004 Free Software Foundation, Inc. -# This file is distributed under the same license as the GNU bash package. -# Automatically generated, 2004. -# -# All this catalog "translates" are quotation characters. -# The msgids must be ASCII and therefore cannot contain real quotation -# characters, only substitutes like grave accent (0x60), apostrophe (0x27) -# and double quote (0x22). These substitutes look strange; see -# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html -# -# This catalog translates grave accent (0x60) and apostrophe (0x27) to -# left single quotation mark (U+2018) and right single quotation mark (U+2019). -# It also translates pairs of apostrophe (0x27) to -# left single quotation mark (U+2018) and right single quotation mark (U+2019) -# and pairs of quotation mark (0x22) to -# left double quotation mark (U+201C) and right double quotation mark (U+201D). -# -# When output to an UTF-8 terminal, the quotation characters appear perfectly. -# When output to an ISO-8859-1 terminal, the single quotation marks are -# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to -# grave/acute accent (by libiconv), and the double quotation marks are -# transliterated to 0x22. -# When output to an ASCII terminal, the single quotation marks are -# transliterated to apostrophes, and the double quotation marks are -# transliterated to 0x22. -# -# This catalog furthermore displays the text between the quotation marks in -# bold face, assuming the VT100/XTerm escape sequences. -# -#: builtins/caller.def:128 builtins/caller.def:132 builtins/pushd.def:655 -#: builtins/pushd.def:663 builtins/pushd.def:666 builtins/pushd.def:676 -#: builtins/pushd.def:680 builtins/pushd.def:684 builtins/pushd.def:687 -#: builtins/pushd.def:690 builtins/pushd.def:699 builtins/pushd.def:703 -#: builtins/pushd.def:707 builtins/pushd.def:710 builtins.c:321 builtins.c:325 -#: builtins.c:390 builtins.c:392 builtins.c:401 builtins.c:404 builtins.c:408 -#: builtins.c:445 builtins.c:487 builtins.c:491 builtins.c:498 builtins.c:509 -#: builtins.c:513 builtins.c:552 builtins.c:555 builtins.c:559 builtins.c:562 -#: builtins.c:630 builtins.c:637 builtins.c:692 builtins.c:713 builtins.c:718 -#: builtins.c:722 builtins.c:745 builtins.c:835 builtins.c:919 builtins.c:921 -#: builtins.c:943 builtins.c:946 builtins.c:948 builtins.c:950 builtins.c:952 -#: builtins.c:954 builtins.c:957 builtins.c:966 builtins.c:968 builtins.c:973 -#: builtins.c:976 builtins.c:1019 builtins.c:1024 builtins.c:1028 -#: builtins.c:1032 builtins.c:1034 builtins.c:1047 builtins.c:1062 -#: builtins.c:1226 builtins.c:1231 builtins.c:1305 builtins.c:1309 -#: builtins.c:1313 builtins.c:1316 builtins.c:1319 builtins.c:1331 -#: builtins.c:1335 builtins.c:1339 builtins.c:1342 builtins.c:1354 -#: builtins.c:1362 builtins.c:1365 -msgid "" -msgstr "" -"Project-Id-Version: GNU bash 3.0-rc1\n" -"POT-Creation-Date: 2003-12-22 15:34-0500\n" -"PO-Revision-Date: 2003-12-22 15:34-0500\n" -"Last-Translator: Automatically generated\n" -"Language-Team: none\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Report-Msgid-Bugs-To: bug-bash@gnu.org\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: arrayfunc.c:45 -msgid "bad array subscript" -msgstr "bad array subscript" - -#: arrayfunc.c:306 -#, c-format -msgid "%s: cannot assign to non-numeric index" -msgstr "%s: cannot assign to non-numeric index" - -#: bashhist.c:321 -#, c-format -msgid "%s: cannot create: %s" -msgstr "%s: cannot create: %s" - -#: bashline.c:2791 -msgid "bash_execute_unix_command: cannot find keymap for command" -msgstr "bash_execute_unix_command: cannot find keymap for command" - -#: bashline.c:2840 -#, c-format -msgid "%s: first non-whitespace character is not `\"'" -msgstr "%s: first non-whitespace character is not ‘\"’" - -#: bashline.c:2869 -#, c-format -msgid "no closing `%c' in %s" -msgstr "no closing ‘%c’ in %s" - -#: bashline.c:2903 -#, c-format -msgid "%s: missing colon separator" -msgstr "%s: missing colon separator" - -#: builtins/alias.def:123 -#, c-format -msgid "`%s': invalid alias name" -msgstr "‘%s’: invalid alias name" - -#: builtins/bind.def:194 -#, c-format -msgid "`%s': invalid keymap name" -msgstr "‘%s’: invalid keymap name" - -#: builtins/bind.def:233 -#, c-format -msgid "%s: cannot read: %s" -msgstr "%s: cannot read: %s" - -#: builtins/bind.def:248 -#, c-format -msgid "`%s': cannot unbind" -msgstr "‘%s’: cannot unbind" - -#: builtins/bind.def:283 -#, c-format -msgid "`%s': unknown function name" -msgstr "‘%s’: unknown function name" - -#: builtins/bind.def:291 -#, c-format -msgid "%s is not bound to any keys.\n" -msgstr "%s is not bound to any keys.\n" - -#: builtins/bind.def:295 -#, c-format -msgid "%s can be invoked via " -msgstr "%s can be invoked via " - -#: builtins/break.def:128 -msgid "only meaningful in a `for', `while', or `until' loop" -msgstr "only meaningful in a ‘for’, ‘while’, or ‘until’ loop" - -#: builtins/caller.def:127 builtins.c:320 -msgid "Returns the context of the current subroutine call." -msgstr "Returns the context of the current subroutine call." - -#: builtins/caller.def:129 builtins.c:322 -msgid "Without EXPR, returns returns \"$line $filename\". With EXPR," -msgstr "Without EXPR, returns returns “$line $filename”. With EXPR," - -#: builtins/caller.def:130 builtins.c:323 -msgid "returns \"$line $subroutine $filename\"; this extra information" -msgstr "returns “$line $subroutine $filename”; this extra information" - -#: builtins/caller.def:131 builtins.c:324 -msgid "can be used used to provide a stack trace." -msgstr "can be used used to provide a stack trace." - -#: builtins/caller.def:133 builtins.c:326 -msgid "The value of EXPR indicates how many call frames to go back before the" -msgstr "The value of EXPR indicates how many call frames to go back before the" - -#: builtins/caller.def:134 builtins.c:327 -msgid "current one; the top frame is frame 0." -msgstr "current one; the top frame is frame 0." - -#: builtins/cd.def:188 -msgid "HOME not set" -msgstr "HOME not set" - -#: builtins/cd.def:200 -msgid "OLDPWD not set" -msgstr "OLDPWD not set" - -#: builtins/cd.def:357 -#, c-format -msgid "write error: %s" -msgstr "write error: %s" - -#: builtins/common.c:133 test.c:921 -msgid "too many arguments" -msgstr "too many arguments" - -#: builtins/common.c:157 shell.c:465 shell.c:737 -#, c-format -msgid "%s: option requires an argument" -msgstr "%s: option requires an argument" - -#: builtins/common.c:164 -#, c-format -msgid "%s: numeric argument required" -msgstr "%s: numeric argument required" - -#: builtins/common.c:171 -#, c-format -msgid "%s: not found" -msgstr "%s: not found" - -#: builtins/common.c:180 shell.c:750 -#, c-format -msgid "%s: invalid option" -msgstr "%s: invalid option" - -#: builtins/common.c:187 -#, c-format -msgid "%s: invalid option name" -msgstr "%s: invalid option name" - -#: builtins/common.c:194 general.c:229 general.c:234 -#, c-format -msgid "`%s': not a valid identifier" -msgstr "‘%s’: not a valid identifier" - -#: builtins/common.c:201 -#, c-format -msgid "%s: invalid number" -msgstr "%s: invalid number" - -#: builtins/common.c:208 -#, c-format -msgid "%s: invalid signal specification" -msgstr "%s: invalid signal specification" - -#: builtins/common.c:215 -#, c-format -msgid "`%s': not a pid or valid job spec" -msgstr "‘%s’: not a pid or valid job spec" - -#: builtins/common.c:222 error.c:453 -#, c-format -msgid "%s: readonly variable" -msgstr "%s: readonly variable" - -#: builtins/common.c:230 -#, c-format -msgid "%s: %s out of range" -msgstr "%s: %s out of range" - -#: builtins/common.c:230 builtins/common.c:232 -msgid "argument" -msgstr "argument" - -#: builtins/common.c:232 -#, c-format -msgid "%s out of range" -msgstr "%s out of range" - -#: builtins/common.c:240 -#, c-format -msgid "%s: no such job" -msgstr "%s: no such job" - -#: builtins/common.c:248 -#, c-format -msgid "%s: no job control" -msgstr "%s: no job control" - -#: builtins/common.c:250 -msgid "no job control" -msgstr "no job control" - -#: builtins/common.c:260 -#, c-format -msgid "%s: restricted" -msgstr "%s: restricted" - -#: builtins/common.c:262 -msgid "restricted" -msgstr "restricted" - -#: builtins/common.c:270 -#, c-format -msgid "%s: not a shell builtin" -msgstr "%s: not a shell builtin" - -#: builtins/common.c:486 -#, c-format -msgid "%s: error retrieving current directory: %s: %s\n" -msgstr "%s: error retrieving current directory: %s: %s\n" - -#: builtins/common.c:553 builtins/common.c:555 -#, c-format -msgid "%s: ambiguous job spec" -msgstr "%s: ambiguous job spec" - -#: builtins/complete.def:251 -#, c-format -msgid "%s: invalid action name" -msgstr "%s: invalid action name" - -#: builtins/complete.def:381 builtins/complete.def:524 -#, c-format -msgid "%s: no completion specification" -msgstr "%s: no completion specification" - -#: builtins/complete.def:571 -msgid "warning: -F option may not work as you expect" -msgstr "warning: -F option may not work as you expect" - -#: builtins/complete.def:573 -msgid "warning: -C option may not work as you expect" -msgstr "warning: -C option may not work as you expect" - -#: builtins/declare.def:105 -msgid "can only be used in a function" -msgstr "can only be used in a function" - -#: builtins/declare.def:295 -msgid "cannot use `-f' to make functions" -msgstr "cannot use ‘-f’ to make functions" - -#: builtins/declare.def:307 execute_cmd.c:3949 -#, c-format -msgid "%s: readonly function" -msgstr "%s: readonly function" - -#: builtins/declare.def:389 -#, c-format -msgid "%s: cannot destroy array variables in this way" -msgstr "%s: cannot destroy array variables in this way" - -#: builtins/enable.def:128 builtins/enable.def:136 -msgid "dynamic loading not available" -msgstr "dynamic loading not available" - -#: builtins/enable.def:303 -#, c-format -msgid "cannot open shared object %s: %s" -msgstr "cannot open shared object %s: %s" - -#: builtins/enable.def:326 -#, c-format -msgid "cannot find %s in shared object %s: %s" -msgstr "cannot find %s in shared object %s: %s" - -#: builtins/enable.def:450 -#, c-format -msgid "%s: not dynamically loaded" -msgstr "%s: not dynamically loaded" - -#: builtins/enable.def:465 -#, c-format -msgid "%s: cannot delete: %s" -msgstr "%s: cannot delete: %s" - -#: builtins/evalfile.c:128 execute_cmd.c:3821 shell.c:1395 -#, c-format -msgid "%s: is a directory" -msgstr "%s: is a directory" - -#: builtins/evalfile.c:133 -#, c-format -msgid "%s: not a regular file" -msgstr "%s: not a regular file" - -#: builtins/evalfile.c:141 -#, c-format -msgid "%s: file is too large" -msgstr "%s: file is too large" - -#: builtins/exec.def:205 -#, c-format -msgid "%s: cannot execute: %s" -msgstr "%s: cannot execute: %s" - -#: builtins/exit.def:83 -msgid "not login shell: use `exit'" -msgstr "not login shell: use ‘exit’" - -#: builtins/exit.def:111 -msgid "There are stopped jobs.\n" -msgstr "There are stopped jobs.\n" - -#: builtins/fc.def:252 -msgid "no command found" -msgstr "no command found" - -#: builtins/fc.def:317 -msgid "history specification" -msgstr "history specification" - -#: builtins/fc.def:338 -#, c-format -msgid "%s: cannot open temp file: %s" -msgstr "%s: cannot open temp file: %s" - -#: builtins/fg_bg.def:133 -#, c-format -msgid "job %d started without job control" -msgstr "job %d started without job control" - -#: builtins/getopt.c:109 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: illegal option -- %c\n" - -#: builtins/getopt.c:110 -#, c-format -msgid "%s: option requires an argument -- %c\n" -msgstr "%s: option requires an argument -- %c\n" - -#: builtins/hash.def:83 -msgid "hashing disabled" -msgstr "hashing disabled" - -#: builtins/hash.def:128 -#, c-format -msgid "%s: hash table empty\n" -msgstr "%s: hash table empty\n" - -#: builtins/help.def:108 -msgid "Shell commands matching keywords `" -msgstr "Shell commands matching keywords `" - -#: builtins/help.def:110 -msgid "Shell commands matching keyword `" -msgstr "Shell commands matching keyword `" - -#: builtins/help.def:138 -#, c-format -msgid "" -"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." -msgstr "" -"no help topics match ‘%s’. Try ‘help help’ or ‘man -k %s’ " -"or ‘info %s’." - -#: builtins/help.def:164 -#, c-format -msgid "%s: cannot open: %s" -msgstr "%s: cannot open: %s" - -#: builtins/help.def:182 -msgid "" -"These shell commands are defined internally. Type `help' to see this list.\n" -"Type `help name' to find out more about the function `name'.\n" -"Use `info bash' to find out more about the shell in general.\n" -"Use `man -k' or `info' to find out more about commands not in this list.\n" -"\n" -"A star (*) next to a name means that the command is disabled.\n" -"\n" -msgstr "" -"These shell commands are defined internally. Type ‘help’ to see this " -"list.\n" -"Type ‘help name’ to find out more about the function ‘name’.\n" -"Use ‘info bash’ to find out more about the shell in general.\n" -"Use ‘man -k’ or ‘info’ to find out more about commands not in " -"this list.\n" -"\n" -"A star (*) next to a name means that the command is disabled.\n" -"\n" - -#: builtins/history.def:148 -msgid "cannot use more than one of -anrw" -msgstr "cannot use more than one of -anrw" - -#: builtins/history.def:180 -msgid "history position" -msgstr "history position" - -#: builtins/history.def:390 -#, c-format -msgid "%s: history expansion failed" -msgstr "%s: history expansion failed" - -#: builtins/jobs.def:99 -msgid "no other options allowed with `-x'" -msgstr "no other options allowed with ‘-x’" - -#: builtins/kill.def:187 -#, c-format -msgid "%s: arguments must be process or job IDs" -msgstr "%s: arguments must be process or job IDs" - -#: builtins/kill.def:248 -msgid "Unknown error" -msgstr "Unknown error" - -#: builtins/let.def:94 builtins/let.def:119 expr.c:496 expr.c:511 -msgid "expression expected" -msgstr "expression expected" - -#: builtins/printf.def:249 -#, c-format -msgid "`%s': missing format character" -msgstr "‘%s’: missing format character" - -#: builtins/printf.def:408 -#, c-format -msgid "`%c': invalid format character" -msgstr "‘%c’: invalid format character" - -#: builtins/printf.def:601 -msgid "missing hex digit for \\x" -msgstr "missing hex digit for \\x" - -#: builtins/pushd.def:168 -msgid "no other directory" -msgstr "no other directory" - -#: builtins/pushd.def:435 -msgid "" -msgstr "" - -#: builtins/pushd.def:652 builtins.c:1351 -msgid "Display the list of currently remembered directories. Directories" -msgstr "Display the list of currently remembered directories. Directories" - -#: builtins/pushd.def:653 builtins.c:1352 -msgid "find their way onto the list with the `pushd' command; you can get" -msgstr "" -"find their way onto the list with the ‘pushd’ command; you can get" - -#: builtins/pushd.def:654 builtins.c:1353 -msgid "back up through the list with the `popd' command." -msgstr "back up through the list with the ‘popd’ command." - -#: builtins/pushd.def:656 builtins.c:1355 -msgid "The -l flag specifies that `dirs' should not print shorthand versions" -msgstr "" -"The -l flag specifies that ‘dirs’ should not print shorthand versions" - -#: builtins/pushd.def:657 builtins.c:1356 -msgid "of directories which are relative to your home directory. This means" -msgstr "of directories which are relative to your home directory. This means" - -#: builtins/pushd.def:658 builtins.c:1357 -msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" -msgstr "" -"that ‘~/bin’ might be displayed as ‘/homes/bfox/bin’. The -v " -"flag" - -#: builtins/pushd.def:659 builtins.c:1358 -msgid "causes `dirs' to print the directory stack with one entry per line," -msgstr "" -"causes ‘dirs’ to print the directory stack with one entry per line," - -#: builtins/pushd.def:660 builtins.c:1359 -msgid "prepending the directory name with its position in the stack. The -p" -msgstr "prepending the directory name with its position in the stack. The -p" - -#: builtins/pushd.def:661 builtins.c:1360 -msgid "flag does the same thing, but the stack position is not prepended." -msgstr "flag does the same thing, but the stack position is not prepended." - -#: builtins/pushd.def:662 builtins.c:1361 -msgid "The -c flag clears the directory stack by deleting all of the elements." -msgstr "" -"The -c flag clears the directory stack by deleting all of the elements." - -#: builtins/pushd.def:664 -msgid "+N displays the Nth entry counting from the left of the list shown by" -msgstr "" -"+N displays the Nth entry counting from the left of the list shown by" - -#: builtins/pushd.def:665 builtins/pushd.def:668 -msgid " dirs when invoked without options, starting with zero." -msgstr " dirs when invoked without options, starting with zero." - -#: builtins/pushd.def:667 -msgid "" -"-N displays the Nth entry counting from the right of the list shown by" -msgstr "" -"-N displays the Nth entry counting from the right of the list shown by" - -#: builtins/pushd.def:673 builtins.c:1302 -msgid "Adds a directory to the top of the directory stack, or rotates" -msgstr "Adds a directory to the top of the directory stack, or rotates" - -#: builtins/pushd.def:674 builtins.c:1303 -msgid "the stack, making the new top of the stack the current working" -msgstr "the stack, making the new top of the stack the current working" - -#: builtins/pushd.def:675 builtins.c:1304 -msgid "directory. With no arguments, exchanges the top two directories." -msgstr "directory. With no arguments, exchanges the top two directories." - -#: builtins/pushd.def:677 -msgid "+N Rotates the stack so that the Nth directory (counting" -msgstr "+N Rotates the stack so that the Nth directory (counting" - -#: builtins/pushd.def:678 -msgid " from the left of the list shown by `dirs', starting with" -msgstr " from the left of the list shown by ‘dirs’, starting with" - -#: builtins/pushd.def:679 builtins/pushd.def:683 -msgid " zero) is at the top." -msgstr " zero) is at the top." - -#: builtins/pushd.def:681 -msgid "-N Rotates the stack so that the Nth directory (counting" -msgstr "-N Rotates the stack so that the Nth directory (counting" - -#: builtins/pushd.def:682 -msgid " from the right of the list shown by `dirs', starting with" -msgstr " from the right of the list shown by ‘dirs’, starting with" - -#: builtins/pushd.def:685 -msgid "-n suppress the normal change of directory when adding directories" -msgstr "-n suppress the normal change of directory when adding directories" - -#: builtins/pushd.def:686 -msgid " to the stack, so only the stack is manipulated." -msgstr " to the stack, so only the stack is manipulated." - -#: builtins/pushd.def:688 -msgid "dir adds DIR to the directory stack at the top, making it the" -msgstr "dir adds DIR to the directory stack at the top, making it the" - -#: builtins/pushd.def:689 -msgid " new current working directory." -msgstr " new current working directory." - -#: builtins/pushd.def:691 builtins/pushd.def:711 builtins.c:1320 -#: builtins.c:1343 -msgid "You can see the directory stack with the `dirs' command." -msgstr "You can see the directory stack with the ‘dirs’ command." - -#: builtins/pushd.def:696 builtins.c:1328 -msgid "Removes entries from the directory stack. With no arguments," -msgstr "Removes entries from the directory stack. With no arguments," - -#: builtins/pushd.def:697 builtins.c:1329 -msgid "removes the top directory from the stack, and cd's to the new" -msgstr "removes the top directory from the stack, and cd's to the new" - -#: builtins/pushd.def:698 builtins.c:1330 -msgid "top directory." -msgstr "top directory." - -#: builtins/pushd.def:700 -msgid "+N removes the Nth entry counting from the left of the list" -msgstr "+N removes the Nth entry counting from the left of the list" - -#: builtins/pushd.def:701 -msgid " shown by `dirs', starting with zero. For example: `popd +0'" -msgstr "" -" shown by ‘dirs’, starting with zero. For example: ‘popd +0’" - -#: builtins/pushd.def:702 -msgid " removes the first directory, `popd +1' the second." -msgstr " removes the first directory, ‘popd +1’ the second." - -#: builtins/pushd.def:704 -msgid "-N removes the Nth entry counting from the right of the list" -msgstr "-N removes the Nth entry counting from the right of the list" - -#: builtins/pushd.def:705 -msgid " shown by `dirs', starting with zero. For example: `popd -0'" -msgstr "" -" shown by ‘dirs’, starting with zero. For example: ‘popd -0’" - -#: builtins/pushd.def:706 -msgid " removes the last directory, `popd -1' the next to last." -msgstr " removes the last directory, ‘popd -1’ the next to last." - -#: builtins/pushd.def:708 -msgid "-n suppress the normal change of directory when removing directories" -msgstr "-n suppress the normal change of directory when removing directories" - -#: builtins/pushd.def:709 -msgid " from the stack, so only the stack is manipulated." -msgstr " from the stack, so only the stack is manipulated." - -#: builtins/read.def:207 -#, c-format -msgid "%s: invalid timeout specification" -msgstr "%s: invalid timeout specification" - -#: builtins/read.def:230 -#, c-format -msgid "%s: invalid file descriptor specification" -msgstr "%s: invalid file descriptor specification" - -#: builtins/read.def:237 -#, c-format -msgid "%d: invalid file descriptor: %s" -msgstr "%d: invalid file descriptor: %s" - -#: builtins/read.def:463 -#, c-format -msgid "read error: %d: %s" -msgstr "read error: %d: %s" - -#: builtins/return.def:63 -msgid "can only `return' from a function or sourced script" -msgstr "can only ‘return’ from a function or sourced script" - -#: builtins/set.def:743 -msgid "cannot simultaneously unset a function and a variable" -msgstr "cannot simultaneously unset a function and a variable" - -#: builtins/set.def:780 -#, c-format -msgid "%s: cannot unset" -msgstr "%s: cannot unset" - -#: builtins/set.def:787 -#, c-format -msgid "%s: cannot unset: readonly %s" -msgstr "%s: cannot unset: readonly %s" - -#: builtins/set.def:798 -#, c-format -msgid "%s: not an array variable" -msgstr "%s: not an array variable" - -#: builtins/setattr.def:165 -#, c-format -msgid "%s: not a function" -msgstr "%s: not a function" - -#: builtins/shift.def:66 builtins/shift.def:72 -msgid "shift count" -msgstr "shift count" - -#: builtins/shopt.def:226 -msgid "cannot set and unset shell options simultaneously" -msgstr "cannot set and unset shell options simultaneously" - -#: builtins/shopt.def:291 -#, c-format -msgid "%s: invalid shell option name" -msgstr "%s: invalid shell option name" - -#: builtins/source.def:117 -msgid "filename argument required" -msgstr "filename argument required" - -#: builtins/source.def:137 -#, c-format -msgid "%s: file not found" -msgstr "%s: file not found" - -#: builtins/suspend.def:93 -msgid "cannot suspend" -msgstr "cannot suspend" - -#: builtins/suspend.def:103 -msgid "cannot suspend a login shell" -msgstr "cannot suspend a login shell" - -#: builtins/type.def:231 -#, c-format -msgid "%s is aliased to `%s'\n" -msgstr "%s is aliased to ‘%s’\n" - -#: builtins/type.def:252 -#, c-format -msgid "%s is a shell keyword\n" -msgstr "%s is a shell keyword\n" - -#: builtins/type.def:272 -#, c-format -msgid "%s is a function\n" -msgstr "%s is a function\n" - -#: builtins/type.def:297 -#, c-format -msgid "%s is a shell builtin\n" -msgstr "%s is a shell builtin\n" - -#: builtins/type.def:318 -#, c-format -msgid "%s is %s\n" -msgstr "%s is %s\n" - -#: builtins/type.def:338 -#, c-format -msgid "%s is hashed (%s)\n" -msgstr "%s is hashed (%s)\n" - -#: builtins/ulimit.def:332 -#, c-format -msgid "%s: invalid limit argument" -msgstr "%s: invalid limit argument" - -#: builtins/ulimit.def:358 -#, c-format -msgid "`%c': bad command" -msgstr "‘%c’: bad command" - -#: builtins/ulimit.def:387 -#, c-format -msgid "%s: cannot get limit: %s" -msgstr "%s: cannot get limit: %s" - -#: builtins/ulimit.def:425 -#, c-format -msgid "%s: cannot modify limit: %s" -msgstr "%s: cannot modify limit: %s" - -#: builtins/umask.def:112 -msgid "octal number" -msgstr "octal number" - -#: builtins/umask.def:226 -#, c-format -msgid "`%c': invalid symbolic mode operator" -msgstr "‘%c’: invalid symbolic mode operator" - -#: builtins/umask.def:279 -#, c-format -msgid "`%c': invalid symbolic mode character" -msgstr "‘%c’: invalid symbolic mode character" - -#: error.c:165 -#, c-format -msgid "last command: %s\n" -msgstr "last command: %s\n" - -#: error.c:173 -msgid "Aborting..." -msgstr "Aborting..." - -#: error.c:260 -#, c-format -msgid "%s: warning: " -msgstr "%s: warning: " - -#: error.c:405 -msgid "unknown command error" -msgstr "unknown command error" - -#: error.c:406 -msgid "bad command type" -msgstr "bad command type" - -#: error.c:407 -msgid "bad connector" -msgstr "bad connector" - -#: error.c:408 -msgid "bad jump" -msgstr "bad jump" - -#: error.c:446 -#, c-format -msgid "%s: unbound variable" -msgstr "%s: unbound variable" - -#: eval.c:175 -msgid "timed out waiting for input: auto-logout\n" -msgstr "timed out waiting for input: auto-logout\n" - -#: execute_cmd.c:466 -#, c-format -msgid "cannot redirect standard input from /dev/null: %s" -msgstr "cannot redirect standard input from /dev/null: %s" - -#: execute_cmd.c:1036 -#, c-format -msgid "TIMEFORMAT: `%c': invalid format character" -msgstr "TIMEFORMAT: ‘%c’: invalid format character" - -#: execute_cmd.c:3521 -#, c-format -msgid "%s: restricted: cannot specify `/' in command names" -msgstr "%s: restricted: cannot specify ‘/’ in command names" - -#: execute_cmd.c:3609 -#, c-format -msgid "%s: command not found" -msgstr "%s: command not found" - -#: execute_cmd.c:3839 -#, c-format -msgid "%s: %s: bad interpreter" -msgstr "%s: %s: bad interpreter" - -#: execute_cmd.c:3876 -#, c-format -msgid "%s: cannot execute binary file" -msgstr "%s: cannot execute binary file" - -#: execute_cmd.c:3988 -#, c-format -msgid "cannot duplicate fd %d to fd %d" -msgstr "cannot duplicate fd %d to fd %d" - -#: expr.c:239 -msgid "expression recursion level exceeded" -msgstr "expression recursion level exceeded" - -#: expr.c:263 -msgid "recursion stack underflow" -msgstr "recursion stack underflow" - -#: expr.c:374 -msgid "syntax error in expression" -msgstr "syntax error in expression" - -#: expr.c:414 -msgid "attempted assignment to non-variable" -msgstr "attempted assignment to non-variable" - -#: expr.c:435 expr.c:440 expr.c:750 -msgid "division by 0" -msgstr "division by 0" - -#: expr.c:466 -msgid "bug: bad expassign token" -msgstr "bug: bad expassign token" - -#: expr.c:508 -msgid "`:' expected for conditional expression" -msgstr "‘:’ expected for conditional expression" - -#: expr.c:775 -msgid "exponent less than 0" -msgstr "exponent less than 0" - -#: expr.c:819 -msgid "identifier expected after pre-increment or pre-decrement" -msgstr "identifier expected after pre-increment or pre-decrement" - -#: expr.c:847 -msgid "missing `)'" -msgstr "missing ‘)’" - -#: expr.c:871 -msgid "syntax error: operand expected" -msgstr "syntax error: operand expected" - -#: expr.c:1146 -msgid "invalid number" -msgstr "invalid number" - -#: expr.c:1150 -msgid "invalid arithmetic base" -msgstr "invalid arithmetic base" - -#: expr.c:1170 -msgid "value too great for base" -msgstr "value too great for base" - -#: general.c:60 -msgid "getcwd: cannot access parent directories" -msgstr "getcwd: cannot access parent directories" - -#: input.c:231 -#, c-format -msgid "cannot allocate new file descriptor for bash input from fd %d" -msgstr "cannot allocate new file descriptor for bash input from fd %d" - -#: input.c:239 -#, c-format -msgid "save_bash_input: buffer already exists for new fd %d" -msgstr "save_bash_input: buffer already exists for new fd %d" - -#: jobs.c:693 -#, c-format -msgid "deleting stopped job %d with process group %ld" -msgstr "deleting stopped job %d with process group %ld" - -#: jobs.c:1001 -#, c-format -msgid "describe_pid: %ld: no such pid" -msgstr "describe_pid: %ld: no such pid" - -#: jobs.c:1632 nojobs.c:648 -#, c-format -msgid "wait: pid %ld is not a child of this shell" -msgstr "wait: pid %ld is not a child of this shell" - -#: jobs.c:1815 -#, c-format -msgid "wait_for: No record of process %ld" -msgstr "wait_for: No record of process %ld" - -#: jobs.c:2062 -#, c-format -msgid "wait_for_job: job %d is stopped" -msgstr "wait_for_job: job %d is stopped" - -#: jobs.c:2284 -#, c-format -msgid "%s: job has terminated" -msgstr "%s: job has terminated" - -#: jobs.c:2293 -#, c-format -msgid "%s: job %d already in background" -msgstr "%s: job %d already in background" - -#: jobs.c:3037 -msgid "no job control in this shell" -msgstr "no job control in this shell" - -#: lib/malloc/malloc.c:298 -#, c-format -msgid "malloc: failed assertion: %s\n" -msgstr "malloc: failed assertion: %s\n" - -#: lib/malloc/malloc.c:314 -#, c-format -msgid "" -"\r\n" -"malloc: %s:%d: assertion botched\r\n" -msgstr "" -"\r\n" -"malloc: %s:%d: assertion botched\r\n" - -#: lib/malloc/malloc.c:740 -msgid "malloc: block on free list clobbered" -msgstr "malloc: block on free list clobbered" - -#: lib/malloc/malloc.c:817 -msgid "free: called with already freed block argument" -msgstr "free: called with already freed block argument" - -#: lib/malloc/malloc.c:820 -msgid "free: called with unallocated block argument" -msgstr "free: called with unallocated block argument" - -#: lib/malloc/malloc.c:839 -msgid "free: underflow detected; mh_nbytes out of range" -msgstr "free: underflow detected; mh_nbytes out of range" - -#: lib/malloc/malloc.c:845 -msgid "free: start and end chunk sizes differ" -msgstr "free: start and end chunk sizes differ" - -#: lib/malloc/malloc.c:942 -msgid "realloc: called with unallocated block argument" -msgstr "realloc: called with unallocated block argument" - -#: lib/malloc/malloc.c:957 -msgid "realloc: underflow detected; mh_nbytes out of range" -msgstr "realloc: underflow detected; mh_nbytes out of range" - -#: lib/malloc/malloc.c:963 -msgid "realloc: start and end chunk sizes differ" -msgstr "realloc: start and end chunk sizes differ" - -#: lib/malloc/table.c:175 -msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" -msgstr "register_alloc: alloc table is full with FIND_ALLOC?\n" - -#: lib/malloc/table.c:182 -#, c-format -msgid "register_alloc: %p already in table as allocated?\n" -msgstr "register_alloc: %p already in table as allocated?\n" - -#: lib/malloc/table.c:218 -#, c-format -msgid "register_free: %p already in table as free?\n" -msgstr "register_free: %p already in table as free?\n" - -#: lib/malloc/watch.c:46 -msgid "allocated" -msgstr "allocated" - -#: lib/malloc/watch.c:48 -msgid "freed" -msgstr "freed" - -#: lib/malloc/watch.c:50 -msgid "requesting resize" -msgstr "requesting resize" - -#: lib/malloc/watch.c:52 -msgid "just resized" -msgstr "just resized" - -#: lib/malloc/watch.c:54 -msgid "bug: unknown operation" -msgstr "bug: unknown operation" - -#: lib/malloc/watch.c:56 -#, c-format -msgid "malloc: watch alert: %p %s " -msgstr "malloc: watch alert: %p %s " - -#: lib/sh/fmtulong.c:101 -msgid "invalid base" -msgstr "invalid base" - -#: lib/sh/netopen.c:158 -#, c-format -msgid "%s: host unknown" -msgstr "%s: host unknown" - -#: lib/sh/netopen.c:165 -#, c-format -msgid "%s: invalid service" -msgstr "%s: invalid service" - -#: lib/sh/netopen.c:296 -#, c-format -msgid "%s: bad network path specification" -msgstr "%s: bad network path specification" - -#: lib/sh/netopen.c:336 -msgid "network operations not supported" -msgstr "network operations not supported" - -#: mailcheck.c:382 -msgid "You have mail in $_" -msgstr "You have mail in $_" - -#: mailcheck.c:407 -msgid "You have new mail in $_" -msgstr "You have new mail in $_" - -#: mailcheck.c:423 -#, c-format -msgid "The mail in %s has been read\n" -msgstr "The mail in %s has been read\n" - -#: make_cmd.c:318 -msgid "syntax error: arithmetic expression required" -msgstr "syntax error: arithmetic expression required" - -#: make_cmd.c:320 -msgid "syntax error: `;' unexpected" -msgstr "syntax error: ‘;’ unexpected" - -#: make_cmd.c:321 -#, c-format -msgid "syntax error: `((%s))'" -msgstr "syntax error: ‘((%s))’" - -#: make_cmd.c:560 -#, c-format -msgid "make_here_document: bad instruction type %d" -msgstr "make_here_document: bad instruction type %d" - -#: make_cmd.c:730 -#, c-format -msgid "make_redirection: redirection instruction `%d' out of range" -msgstr "make_redirection: redirection instruction ‘%d’ out of range" - -#: parse.y:2726 -#, c-format -msgid "unexpected EOF while looking for matching `%c'" -msgstr "unexpected EOF while looking for matching ‘%c’" - -#: parse.y:3011 -msgid "unexpected EOF while looking for `]]'" -msgstr "unexpected EOF while looking for ‘]]’" - -#: parse.y:3016 -#, c-format -msgid "syntax error in conditional expression: unexpected token `%s'" -msgstr "syntax error in conditional expression: unexpected token ‘%s’" - -#: parse.y:3020 -msgid "syntax error in conditional expression" -msgstr "syntax error in conditional expression" - -#: parse.y:3098 -#, c-format -msgid "unexpected token `%s', expected `)'" -msgstr "unexpected token ‘%s’, expected ‘)’" - -#: parse.y:3102 -msgid "expected `)'" -msgstr "expected ‘)’" - -#: parse.y:3130 -#, c-format -msgid "unexpected argument `%s' to conditional unary operator" -msgstr "unexpected argument ‘%s’ to conditional unary operator" - -#: parse.y:3134 -msgid "unexpected argument to conditional unary operator" -msgstr "unexpected argument to conditional unary operator" - -#: parse.y:3171 -#, c-format -msgid "unexpected token `%s', conditional binary operator expected" -msgstr "unexpected token ‘%s’, conditional binary operator expected" - -#: parse.y:3175 -msgid "conditional binary operator expected" -msgstr "conditional binary operator expected" - -#: parse.y:3191 -#, c-format -msgid "unexpected argument `%s' to conditional binary operator" -msgstr "unexpected argument ‘%s’ to conditional binary operator" - -#: parse.y:3195 -msgid "unexpected argument to conditional binary operator" -msgstr "unexpected argument to conditional binary operator" - -#: parse.y:3206 -#, c-format -msgid "unexpected token `%c' in conditional command" -msgstr "unexpected token ‘%c’ in conditional command" - -#: parse.y:3209 -#, c-format -msgid "unexpected token `%s' in conditional command" -msgstr "unexpected token ‘%s’ in conditional command" - -#: parse.y:3213 -#, c-format -msgid "unexpected token %d in conditional command" -msgstr "unexpected token %d in conditional command" - -#: parse.y:4400 -#, c-format -msgid "syntax error near unexpected token `%s'" -msgstr "syntax error near unexpected token ‘%s’" - -#: parse.y:4418 -#, c-format -msgid "syntax error near `%s'" -msgstr "syntax error near ‘%s’" - -#: parse.y:4428 -msgid "syntax error: unexpected end of file" -msgstr "syntax error: unexpected end of file" - -#: parse.y:4428 -msgid "syntax error" -msgstr "syntax error" - -#: parse.y:4490 -#, c-format -msgid "Use \"%s\" to leave the shell.\n" -msgstr "Use “%s” to leave the shell.\n" - -#: parse.y:4649 -msgid "unexpected EOF while looking for matching `)'" -msgstr "unexpected EOF while looking for matching ‘)’" - -#: pcomplete.c:988 -#, c-format -msgid "completion: function `%s' not found" -msgstr "completion: function ‘%s’ not found" - -#: pcomplib.c:179 -#, c-format -msgid "progcomp_insert: %s: NULL COMPSPEC" -msgstr "progcomp_insert: %s: NULL COMPSPEC" - -#: print_cmd.c:260 -#, c-format -msgid "print_command: bad connector `%d'" -msgstr "print_command: bad connector ‘%d’" - -#: print_cmd.c:1172 -#, c-format -msgid "cprintf: `%c': invalid format character" -msgstr "cprintf: ‘%c’: invalid format character" - -#: redir.c:99 -msgid "file descriptor out of range" -msgstr "file descriptor out of range" - -#: redir.c:141 -#, c-format -msgid "%s: ambiguous redirect" -msgstr "%s: ambiguous redirect" - -#: redir.c:145 -#, c-format -msgid "%s: cannot overwrite existing file" -msgstr "%s: cannot overwrite existing file" - -#: redir.c:150 -#, c-format -msgid "%s: restricted: cannot redirect output" -msgstr "%s: restricted: cannot redirect output" - -#: redir.c:155 -#, c-format -msgid "cannot create temp file for here document: %s" -msgstr "cannot create temp file for here document: %s" - -#: redir.c:509 -msgid "/dev/(tcp|udp)/host/port not supported without networking" -msgstr "/dev/(tcp|udp)/host/port not supported without networking" - -#: redir.c:949 -msgid "redirection error: cannot duplicate fd" -msgstr "redirection error: cannot duplicate fd" - -#: shell.c:302 -msgid "could not find /tmp, please create!" -msgstr "could not find /tmp, please create!" - -#: shell.c:306 -msgid "/tmp must be a valid directory name" -msgstr "/tmp must be a valid directory name" - -#: shell.c:839 -#, c-format -msgid "%c%c: invalid option" -msgstr "%c%c: invalid option" - -#: shell.c:1590 -msgid "I have no name!" -msgstr "I have no name!" - -#: shell.c:1725 -#, c-format -msgid "" -"Usage:\t%s [GNU long option] [option] ...\n" -"\t%s [GNU long option] [option] script-file ...\n" -msgstr "" -"Usage:\t%s [GNU long option] [option] ...\n" -"\t%s [GNU long option] [option] script-file ...\n" - -#: shell.c:1727 -msgid "GNU long options:\n" -msgstr "GNU long options:\n" - -#: shell.c:1731 -msgid "Shell options:\n" -msgstr "Shell options:\n" - -#: shell.c:1732 -msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" -msgstr "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" - -#: shell.c:1747 -#, c-format -msgid "\t-%s or -o option\n" -msgstr "\t-%s or -o option\n" - -#: shell.c:1753 -#, c-format -msgid "Type `%s -c \"help set\"' for more information about shell options.\n" -msgstr "" -"Type ‘%s -c “help set”’ for more information about shell " -"options.\n" - -#: shell.c:1754 -#, c-format -msgid "Type `%s -c help' for more information about shell builtin commands.\n" -msgstr "" -"Type ‘%s -c help’ for more information about shell builtin commands.\n" - -#: shell.c:1755 -msgid "Use the `bashbug' command to report bugs.\n" -msgstr "Use the ‘bashbug’ command to report bugs.\n" - -#: sig.c:485 -#, c-format -msgid "sigprocmask: %d: invalid operation" -msgstr "sigprocmask: %d: invalid operation" - -#: subst.c:1011 -#, c-format -msgid "bad substitution: no closing `%s' in %s" -msgstr "bad substitution: no closing ‘%s’ in %s" - -#: subst.c:2020 -#, c-format -msgid "%s: cannot assign list to array member" -msgstr "%s: cannot assign list to array member" - -#: subst.c:3516 subst.c:3532 -msgid "cannot make pipe for process substitution" -msgstr "cannot make pipe for process substitution" - -#: subst.c:3563 -msgid "cannot make child for process substitution" -msgstr "cannot make child for process substitution" - -#: subst.c:3608 -#, c-format -msgid "cannot open named pipe %s for reading" -msgstr "cannot open named pipe %s for reading" - -#: subst.c:3610 -#, c-format -msgid "cannot open named pipe %s for writing" -msgstr "cannot open named pipe %s for writing" - -#: subst.c:3618 -#, c-format -msgid "cannout reset nodelay mode for fd %d" -msgstr "cannout reset nodelay mode for fd %d" - -#: subst.c:3628 -#, c-format -msgid "cannot duplicate named pipe %s as fd %d" -msgstr "cannot duplicate named pipe %s as fd %d" - -#: subst.c:3803 -msgid "cannot make pipe for command substitution" -msgstr "cannot make pipe for command substitution" - -#: subst.c:3832 -msgid "cannot make child for command substitution" -msgstr "cannot make child for command substitution" - -#: subst.c:3849 -msgid "command_substitute: cannot duplicate pipe as fd 1" -msgstr "command_substitute: cannot duplicate pipe as fd 1" - -#: subst.c:4284 -#, c-format -msgid "%s: parameter null or not set" -msgstr "%s: parameter null or not set" - -#: subst.c:4529 -#, c-format -msgid "%s: substring expression < 0" -msgstr "%s: substring expression < 0" - -#: subst.c:5209 -#, c-format -msgid "%s: bad substitution" -msgstr "%s: bad substitution" - -#: subst.c:5283 -#, c-format -msgid "$%s: cannot assign in this way" -msgstr "$%s: cannot assign in this way" - -#: subst.c:6652 -#, c-format -msgid "no match: %s" -msgstr "no match: %s" - -#: test.c:154 -msgid "argument expected" -msgstr "argument expected" - -#: test.c:163 -#, c-format -msgid "%s: integer expression expected" -msgstr "%s: integer expression expected" - -#: test.c:361 -msgid "`)' expected" -msgstr "‘)’ expected" - -#: test.c:363 -#, c-format -msgid "`)' expected, found %s" -msgstr "‘)’ expected, found %s" - -#: test.c:378 test.c:787 test.c:790 -#, c-format -msgid "%s: unary operator expected" -msgstr "%s: unary operator expected" - -#: test.c:543 test.c:830 -#, c-format -msgid "%s: binary operator expected" -msgstr "%s: binary operator expected" - -#: test.c:905 -msgid "missing `]'" -msgstr "missing ‘]’" - -#: trap.c:194 -msgid "invalid signal number" -msgstr "invalid signal number" - -#: trap.c:309 -#, c-format -msgid "run_pending_traps: bad value in trap_list[%d]: %p" -msgstr "run_pending_traps: bad value in trap_list[%d]: %p" - -#: trap.c:313 -#, c-format -msgid "" -"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" -msgstr "" -"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" - -#: trap.c:349 -#, c-format -msgid "trap_handler: bad signal %d" -msgstr "trap_handler: bad signal %d" - -#: variables.c:310 -#, c-format -msgid "error importing function definition for `%s'" -msgstr "error importing function definition for ‘%s’" - -#: variables.c:670 -#, c-format -msgid "shell level (%d) too high, resetting to 1" -msgstr "shell level (%d) too high, resetting to 1" - -#: variables.c:1610 -msgid "make_local_variable: no function context at current scope" -msgstr "make_local_variable: no function context at current scope" - -#: variables.c:2709 -msgid "all_local_variables: no function context at current scope" -msgstr "all_local_variables: no function context at current scope" - -#: variables.c:2923 variables.c:2932 -#, c-format -msgid "invalid character %d in exportstr for %s" -msgstr "invalid character %d in exportstr for %s" - -#: variables.c:2938 -#, c-format -msgid "no `=' in exportstr for %s" -msgstr "no ‘=’ in exportstr for %s" - -#: variables.c:3363 -msgid "pop_var_context: head of shell_variables not a function context" -msgstr "pop_var_context: head of shell_variables not a function context" - -#: variables.c:3376 -msgid "pop_var_context: no global_variables context" -msgstr "pop_var_context: no global_variables context" - -#: variables.c:3442 -msgid "pop_scope: head of shell_variables not a temporary environment scope" -msgstr "pop_scope: head of shell_variables not a temporary environment scope" - -#: version.c:82 -msgid "Copyright (C) 2004 Free Software Foundation, Inc.\n" -msgstr "Copyright (C) 2004 Free Software Foundation, Inc.\n" - -#: xmalloc.c:93 -#, c-format -msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" -msgstr "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" - -#: xmalloc.c:95 -#, c-format -msgid "xmalloc: cannot allocate %lu bytes" -msgstr "xmalloc: cannot allocate %lu bytes" - -#: xmalloc.c:115 -#, c-format -msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" - -#: xmalloc.c:117 -#, c-format -msgid "xrealloc: cannot allocate %lu bytes" -msgstr "xrealloc: cannot allocate %lu bytes" - -#: xmalloc.c:151 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" -msgstr "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" - -#: xmalloc.c:153 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes" -msgstr "xmalloc: %s:%d: cannot allocate %lu bytes" - -#: xmalloc.c:175 -#, c-format -msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" - -#: xmalloc.c:177 -#, c-format -msgid "xrealloc: %s:%d: cannot allocate %lu bytes" -msgstr "xrealloc: %s:%d: cannot allocate %lu bytes" - -#: builtins.c:244 -msgid "`alias' with no arguments or with the -p option prints the list" -msgstr "‘alias’ with no arguments or with the -p option prints the list" - -#: builtins.c:245 -msgid "of aliases in the form alias NAME=VALUE on standard output." -msgstr "of aliases in the form alias NAME=VALUE on standard output." - -#: builtins.c:246 -msgid "Otherwise, an alias is defined for each NAME whose VALUE is given." -msgstr "Otherwise, an alias is defined for each NAME whose VALUE is given." - -#: builtins.c:247 -msgid "A trailing space in VALUE causes the next word to be checked for" -msgstr "A trailing space in VALUE causes the next word to be checked for" - -#: builtins.c:248 -msgid "alias substitution when the alias is expanded. Alias returns" -msgstr "alias substitution when the alias is expanded. Alias returns" - -#: builtins.c:249 -msgid "true unless a NAME is given for which no alias has been defined." -msgstr "true unless a NAME is given for which no alias has been defined." - -#: builtins.c:257 -msgid "" -"Remove NAMEs from the list of defined aliases. If the -a option is given," -msgstr "" -"Remove NAMEs from the list of defined aliases. If the -a option is given," - -#: builtins.c:258 -msgid "then remove all alias definitions." -msgstr "then remove all alias definitions." - -#: builtins.c:266 -msgid "Bind a key sequence to a Readline function or a macro, or set" -msgstr "Bind a key sequence to a Readline function or a macro, or set" - -#: builtins.c:267 -msgid "a Readline variable. The non-option argument syntax is equivalent" -msgstr "a Readline variable. The non-option argument syntax is equivalent" - -#: builtins.c:268 -msgid "to that found in ~/.inputrc, but must be passed as a single argument:" -msgstr "to that found in ~/.inputrc, but must be passed as a single argument:" - -#: builtins.c:269 -msgid "bind '\"\\C-x\\C-r\": re-read-init-file'." -msgstr "bind '“\\C-x\\C-r”: re-read-init-file'." - -#: builtins.c:270 -msgid "bind accepts the following options:" -msgstr "bind accepts the following options:" - -#: builtins.c:271 -msgid "" -" -m keymap Use `keymap' as the keymap for the duration of this" -msgstr "" -" -m keymap Use ‘keymap’ as the keymap for the duration of " -"this" - -#: builtins.c:272 -msgid " command. Acceptable keymap names are emacs," -msgstr " command. Acceptable keymap names are emacs," - -#: builtins.c:273 -msgid "" -" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move," -msgstr "" -" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move," - -#: builtins.c:274 -msgid " vi-command, and vi-insert." -msgstr " vi-command, and vi-insert." - -#: builtins.c:275 -msgid " -l List names of functions." -msgstr " -l List names of functions." - -#: builtins.c:276 -msgid " -P List function names and bindings." -msgstr " -P List function names and bindings." - -#: builtins.c:277 -msgid " -p List functions and bindings in a form that can be" -msgstr " -p List functions and bindings in a form that can be" - -#: builtins.c:278 -msgid " reused as input." -msgstr " reused as input." - -#: builtins.c:279 -msgid " -r keyseq Remove the binding for KEYSEQ." -msgstr " -r keyseq Remove the binding for KEYSEQ." - -#: builtins.c:280 -msgid " -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when" -msgstr " -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when" - -#: builtins.c:281 -msgid "\t\t\t\tKEYSEQ is entered." -msgstr "\t\t\t\tKEYSEQ is entered." - -#: builtins.c:282 -msgid " -f filename Read key bindings from FILENAME." -msgstr " -f filename Read key bindings from FILENAME." - -#: builtins.c:283 -msgid " -q function-name Query about which keys invoke the named function." -msgstr " -q function-name Query about which keys invoke the named function." - -#: builtins.c:284 -msgid "" -" -u function-name Unbind all keys which are bound to the named function." -msgstr "" -" -u function-name Unbind all keys which are bound to the named function." - -#: builtins.c:285 -msgid " -V List variable names and values" -msgstr " -V List variable names and values" - -#: builtins.c:286 -msgid " -v List variable names and values in a form that can" -msgstr " -v List variable names and values in a form that can" - -#: builtins.c:287 -msgid " be reused as input." -msgstr " be reused as input." - -#: builtins.c:288 -msgid "" -" -S List key sequences that invoke macros and their values" -msgstr "" -" -S List key sequences that invoke macros and their values" - -#: builtins.c:289 -msgid "" -" -s List key sequences that invoke macros and their values" -msgstr "" -" -s List key sequences that invoke macros and their values" - -#: builtins.c:290 -msgid " in a form that can be reused as input." -msgstr " in a form that can be reused as input." - -#: builtins.c:297 -msgid "Exit from within a FOR, WHILE or UNTIL loop. If N is specified," -msgstr "Exit from within a FOR, WHILE or UNTIL loop. If N is specified," - -#: builtins.c:298 -msgid "break N levels." -msgstr "break N levels." - -#: builtins.c:304 -msgid "Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop." -msgstr "Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop." - -#: builtins.c:305 -msgid "If N is specified, resume at the N-th enclosing loop." -msgstr "If N is specified, resume at the N-th enclosing loop." - -#: builtins.c:311 -msgid "Run a shell builtin. This is useful when you wish to rename a" -msgstr "Run a shell builtin. This is useful when you wish to rename a" - -#: builtins.c:312 -msgid "shell builtin to be a function, but need the functionality of the" -msgstr "shell builtin to be a function, but need the functionality of the" - -#: builtins.c:313 -msgid "builtin within the function itself." -msgstr "builtin within the function itself." - -#: builtins.c:334 -msgid "Change the current directory to DIR. The variable $HOME is the" -msgstr "Change the current directory to DIR. The variable $HOME is the" - -#: builtins.c:335 -msgid "default DIR. The variable CDPATH defines the search path for" -msgstr "default DIR. The variable CDPATH defines the search path for" - -#: builtins.c:336 -msgid "the directory containing DIR. Alternative directory names in CDPATH" -msgstr "the directory containing DIR. Alternative directory names in CDPATH" - -#: builtins.c:337 -msgid "are separated by a colon (:). A null directory name is the same as" -msgstr "are separated by a colon (:). A null directory name is the same as" - -#: builtins.c:338 -msgid "the current directory, i.e. `.'. If DIR begins with a slash (/)," -msgstr "" -"the current directory, i.e. ‘.’. If DIR begins with a slash (/)," - -#: builtins.c:339 -msgid "then CDPATH is not used. If the directory is not found, and the" -msgstr "then CDPATH is not used. If the directory is not found, and the" - -#: builtins.c:340 -msgid "shell option `cdable_vars' is set, then try the word as a variable" -msgstr "" -"shell option ‘cdable_vars’ is set, then try the word as a variable" - -#: builtins.c:341 -msgid "name. If that variable has a value, then cd to the value of that" -msgstr "name. If that variable has a value, then cd to the value of that" - -#: builtins.c:342 -msgid "variable. The -P option says to use the physical directory structure" -msgstr "variable. The -P option says to use the physical directory structure" - -#: builtins.c:343 -msgid "" -"instead of following symbolic links; the -L option forces symbolic links" -msgstr "" -"instead of following symbolic links; the -L option forces symbolic links" - -#: builtins.c:344 -msgid "to be followed." -msgstr "to be followed." - -#: builtins.c:350 -msgid "Print the current working directory. With the -P option, pwd prints" -msgstr "Print the current working directory. With the -P option, pwd prints" - -#: builtins.c:351 -msgid "the physical directory, without any symbolic links; the -L option" -msgstr "the physical directory, without any symbolic links; the -L option" - -#: builtins.c:352 -msgid "makes pwd follow symbolic links." -msgstr "makes pwd follow symbolic links." - -#: builtins.c:358 -msgid "No effect; the command does nothing. A zero exit code is returned." -msgstr "No effect; the command does nothing. A zero exit code is returned." - -#: builtins.c:364 -msgid "Return a successful result." -msgstr "Return a successful result." - -#: builtins.c:370 -msgid "Return an unsuccessful result." -msgstr "Return an unsuccessful result." - -#: builtins.c:376 -msgid "Runs COMMAND with ARGS ignoring shell functions. If you have a shell" -msgstr "Runs COMMAND with ARGS ignoring shell functions. If you have a shell" - -#: builtins.c:377 -msgid "function called `ls', and you wish to call the command `ls', you can" -msgstr "" -"function called ‘ls’, and you wish to call the command ‘ls’, you " -"can" - -#: builtins.c:378 -msgid "say \"command ls\". If the -p option is given, a default value is used" -msgstr "" -"say “command ls”. If the -p option is given, a default value is used" - -#: builtins.c:379 -msgid "for PATH that is guaranteed to find all of the standard utilities. If" -msgstr "for PATH that is guaranteed to find all of the standard utilities. If" - -#: builtins.c:380 -msgid "the -V or -v option is given, a string is printed describing COMMAND." -msgstr "the -V or -v option is given, a string is printed describing COMMAND." - -#: builtins.c:381 -msgid "The -V option produces a more verbose description." -msgstr "The -V option produces a more verbose description." - -#: builtins.c:387 -msgid "Declare variables and/or give them attributes. If no NAMEs are" -msgstr "Declare variables and/or give them attributes. If no NAMEs are" - -#: builtins.c:388 -msgid "given, then display the values of variables instead. The -p option" -msgstr "given, then display the values of variables instead. The -p option" - -#: builtins.c:389 -msgid "will display the attributes and values of each NAME." -msgstr "will display the attributes and values of each NAME." - -#: builtins.c:391 -msgid "The flags are:" -msgstr "The flags are:" - -#: builtins.c:393 -msgid " -a\tto make NAMEs arrays (if supported)" -msgstr " -a\tto make NAMEs arrays (if supported)" - -#: builtins.c:394 -msgid " -f\tto select from among function names only" -msgstr " -f\tto select from among function names only" - -#: builtins.c:395 -msgid "" -" -F\tto display function names (and line number and source file name if" -msgstr "" -" -F\tto display function names (and line number and source file name if" - -#: builtins.c:396 -msgid "\tdebugging) without definitions" -msgstr "\tdebugging) without definitions" - -#: builtins.c:397 -msgid " -i\tto make NAMEs have the `integer' attribute" -msgstr " -i\tto make NAMEs have the ‘integer’ attribute" - -#: builtins.c:398 -msgid " -r\tto make NAMEs readonly" -msgstr " -r\tto make NAMEs readonly" - -#: builtins.c:399 -msgid " -t\tto make NAMEs have the `trace' attribute" -msgstr " -t\tto make NAMEs have the ‘trace’ attribute" - -#: builtins.c:400 -msgid " -x\tto make NAMEs export" -msgstr " -x\tto make NAMEs export" - -#: builtins.c:402 -msgid "Variables with the integer attribute have arithmetic evaluation (see" -msgstr "Variables with the integer attribute have arithmetic evaluation (see" - -#: builtins.c:403 -msgid "`let') done when the variable is assigned to." -msgstr "‘let’) done when the variable is assigned to." - -#: builtins.c:405 -msgid "When displaying values of variables, -f displays a function's name" -msgstr "When displaying values of variables, -f displays a function's name" - -#: builtins.c:406 -msgid "and definition. The -F option restricts the display to function" -msgstr "and definition. The -F option restricts the display to function" - -#: builtins.c:407 -msgid "name only." -msgstr "name only." - -#: builtins.c:409 -msgid "Using `+' instead of `-' turns off the given attribute instead. When" -msgstr "" -"Using ‘+’ instead of ‘-’ turns off the given attribute instead. " -"When" - -#: builtins.c:410 -msgid "used in a function, makes NAMEs local, as with the `local' command." -msgstr "" -"used in a function, makes NAMEs local, as with the ‘local’ command." - -#: builtins.c:416 -msgid "Obsolete. See `declare'." -msgstr "Obsolete. See ‘declare’." - -#: builtins.c:422 -msgid "Create a local variable called NAME, and give it VALUE. LOCAL" -msgstr "Create a local variable called NAME, and give it VALUE. LOCAL" - -#: builtins.c:423 -msgid "can only be used within a function; it makes the variable NAME" -msgstr "can only be used within a function; it makes the variable NAME" - -#: builtins.c:424 -msgid "have a visible scope restricted to that function and its children." -msgstr "have a visible scope restricted to that function and its children." - -#: builtins.c:431 -msgid "Output the ARGs. If -n is specified, the trailing newline is" -msgstr "Output the ARGs. If -n is specified, the trailing newline is" - -#: builtins.c:432 -msgid "suppressed. If the -e option is given, interpretation of the" -msgstr "suppressed. If the -e option is given, interpretation of the" - -#: builtins.c:433 -msgid "following backslash-escaped characters is turned on:" -msgstr "following backslash-escaped characters is turned on:" - -#: builtins.c:434 -msgid "\t\\a\talert (bell)" -msgstr "\t\\a\talert (bell)" - -#: builtins.c:435 -msgid "\t\\b\tbackspace" -msgstr "\t\\b\tbackspace" - -#: builtins.c:436 -msgid "\t\\c\tsuppress trailing newline" -msgstr "\t\\c\tsuppress trailing newline" - -#: builtins.c:437 -msgid "\t\\E\tescape character" -msgstr "\t\\E\tescape character" - -#: builtins.c:438 -msgid "\t\\f\tform feed" -msgstr "\t\\f\tform feed" - -#: builtins.c:439 -msgid "\t\\n\tnew line" -msgstr "\t\\n\tnew line" - -#: builtins.c:440 -msgid "\t\\r\tcarriage return" -msgstr "\t\\r\tcarriage return" - -#: builtins.c:441 -msgid "\t\\t\thorizontal tab" -msgstr "\t\\t\thorizontal tab" - -#: builtins.c:442 -msgid "\t\\v\tvertical tab" -msgstr "\t\\v\tvertical tab" - -#: builtins.c:443 -msgid "\t\\\\\tbackslash" -msgstr "\t\\\\\tbackslash" - -#: builtins.c:444 -msgid "\t\\num\tthe character whose ASCII code is NUM (octal)." -msgstr "\t\\num\tthe character whose ASCII code is NUM (octal)." - -#: builtins.c:446 -msgid "You can explicitly turn off the interpretation of the above characters" -msgstr "You can explicitly turn off the interpretation of the above characters" - -#: builtins.c:447 -msgid "with the -E option." -msgstr "with the -E option." - -#: builtins.c:455 -msgid "" -"Output the ARGs. If -n is specified, the trailing newline is suppressed." -msgstr "" -"Output the ARGs. If -n is specified, the trailing newline is suppressed." - -#: builtins.c:462 -msgid "Enable and disable builtin shell commands. This allows" -msgstr "Enable and disable builtin shell commands. This allows" - -#: builtins.c:463 -msgid "you to use a disk command which has the same name as a shell" -msgstr "you to use a disk command which has the same name as a shell" - -#: builtins.c:464 -msgid "builtin without specifying a full pathname. If -n is used, the" -msgstr "builtin without specifying a full pathname. If -n is used, the" - -#: builtins.c:465 -msgid "NAMEs become disabled; otherwise NAMEs are enabled. For example," -msgstr "NAMEs become disabled; otherwise NAMEs are enabled. For example," - -#: builtins.c:466 -msgid "to use the `test' found in $PATH instead of the shell builtin" -msgstr "to use the ‘test’ found in $PATH instead of the shell builtin" - -#: builtins.c:467 -msgid "version, type `enable -n test'. On systems supporting dynamic" -msgstr "version, type ‘enable -n test’. On systems supporting dynamic" - -#: builtins.c:468 -msgid "loading, the -f option may be used to load new builtins from the" -msgstr "loading, the -f option may be used to load new builtins from the" - -#: builtins.c:469 -msgid "shared object FILENAME. The -d option will delete a builtin" -msgstr "shared object FILENAME. The -d option will delete a builtin" - -#: builtins.c:470 -msgid "previously loaded with -f. If no non-option names are given, or" -msgstr "previously loaded with -f. If no non-option names are given, or" - -#: builtins.c:471 -msgid "the -p option is supplied, a list of builtins is printed. The" -msgstr "the -p option is supplied, a list of builtins is printed. The" - -#: builtins.c:472 -msgid "-a option means to print every builtin with an indication of whether" -msgstr "-a option means to print every builtin with an indication of whether" - -#: builtins.c:473 -msgid "" -"or not it is enabled. The -s option restricts the output to the POSIX.2" -msgstr "" -"or not it is enabled. The -s option restricts the output to the POSIX.2" - -#: builtins.c:474 -msgid "" -"`special' builtins. The -n option displays a list of all disabled builtins." -msgstr "" -"‘special’ builtins. The -n option displays a list of all disabled " -"builtins." - -#: builtins.c:480 -msgid "Read ARGs as input to the shell and execute the resulting command(s)." -msgstr "Read ARGs as input to the shell and execute the resulting command(s)." - -#: builtins.c:486 -msgid "Getopts is used by shell procedures to parse positional parameters." -msgstr "Getopts is used by shell procedures to parse positional parameters." - -#: builtins.c:488 -msgid "OPTSTRING contains the option letters to be recognized; if a letter" -msgstr "OPTSTRING contains the option letters to be recognized; if a letter" - -#: builtins.c:489 -msgid "is followed by a colon, the option is expected to have an argument," -msgstr "is followed by a colon, the option is expected to have an argument," - -#: builtins.c:490 -msgid "which should be separated from it by white space." -msgstr "which should be separated from it by white space." - -#: builtins.c:492 -msgid "Each time it is invoked, getopts will place the next option in the" -msgstr "Each time it is invoked, getopts will place the next option in the" - -#: builtins.c:493 -msgid "shell variable $name, initializing name if it does not exist, and" -msgstr "shell variable $name, initializing name if it does not exist, and" - -#: builtins.c:494 -msgid "the index of the next argument to be processed into the shell" -msgstr "the index of the next argument to be processed into the shell" - -#: builtins.c:495 -msgid "variable OPTIND. OPTIND is initialized to 1 each time the shell or" -msgstr "variable OPTIND. OPTIND is initialized to 1 each time the shell or" - -#: builtins.c:496 -msgid "a shell script is invoked. When an option requires an argument," -msgstr "a shell script is invoked. When an option requires an argument," - -#: builtins.c:497 -msgid "getopts places that argument into the shell variable OPTARG." -msgstr "getopts places that argument into the shell variable OPTARG." - -#: builtins.c:499 -msgid "getopts reports errors in one of two ways. If the first character" -msgstr "getopts reports errors in one of two ways. If the first character" - -#: builtins.c:500 -msgid "of OPTSTRING is a colon, getopts uses silent error reporting. In" -msgstr "of OPTSTRING is a colon, getopts uses silent error reporting. In" - -#: builtins.c:501 -msgid "this mode, no error messages are printed. If an invalid option is" -msgstr "this mode, no error messages are printed. If an invalid option is" - -#: builtins.c:502 -msgid "seen, getopts places the option character found into OPTARG. If a" -msgstr "seen, getopts places the option character found into OPTARG. If a" - -#: builtins.c:503 -msgid "required argument is not found, getopts places a ':' into NAME and" -msgstr "" -"required argument is not found, getopts places a ‘:’ into NAME and" - -#: builtins.c:504 -msgid "sets OPTARG to the option character found. If getopts is not in" -msgstr "sets OPTARG to the option character found. If getopts is not in" - -#: builtins.c:505 -msgid "silent mode, and an invalid option is seen, getopts places '?' into" -msgstr "" -"silent mode, and an invalid option is seen, getopts places ‘?’ into" - -#: builtins.c:506 -msgid "NAME and unsets OPTARG. If a required argument is not found, a '?'" -msgstr "" -"NAME and unsets OPTARG. If a required argument is not found, a ‘?’" - -#: builtins.c:507 -msgid "is placed in NAME, OPTARG is unset, and a diagnostic message is" -msgstr "is placed in NAME, OPTARG is unset, and a diagnostic message is" - -#: builtins.c:508 -msgid "printed." -msgstr "printed." - -#: builtins.c:510 -msgid "If the shell variable OPTERR has the value 0, getopts disables the" -msgstr "If the shell variable OPTERR has the value 0, getopts disables the" - -#: builtins.c:511 -msgid "printing of error messages, even if the first character of" -msgstr "printing of error messages, even if the first character of" - -#: builtins.c:512 -msgid "OPTSTRING is not a colon. OPTERR has the value 1 by default." -msgstr "OPTSTRING is not a colon. OPTERR has the value 1 by default." - -#: builtins.c:514 -msgid "Getopts normally parses the positional parameters ($0 - $9), but if" -msgstr "Getopts normally parses the positional parameters ($0 - $9), but if" - -#: builtins.c:515 -msgid "more arguments are given, they are parsed instead." -msgstr "more arguments are given, they are parsed instead." - -#: builtins.c:521 -msgid "Exec FILE, replacing this shell with the specified program." -msgstr "Exec FILE, replacing this shell with the specified program." - -#: builtins.c:522 -msgid "If FILE is not specified, the redirections take effect in this" -msgstr "If FILE is not specified, the redirections take effect in this" - -#: builtins.c:523 -msgid "shell. If the first argument is `-l', then place a dash in the" -msgstr "shell. If the first argument is ‘-l’, then place a dash in the" - -#: builtins.c:524 -msgid "zeroth arg passed to FILE, as login does. If the `-c' option" -msgstr "zeroth arg passed to FILE, as login does. If the ‘-c’ option" - -#: builtins.c:525 -msgid "is supplied, FILE is executed with a null environment. The `-a'" -msgstr "is supplied, FILE is executed with a null environment. The ‘-a’" - -#: builtins.c:526 -msgid "option means to make set argv[0] of the executed process to NAME." -msgstr "option means to make set argv[0] of the executed process to NAME." - -#: builtins.c:527 -msgid "If the file cannot be executed and the shell is not interactive," -msgstr "If the file cannot be executed and the shell is not interactive," - -#: builtins.c:528 -msgid "then the shell exits, unless the shell option `execfail' is set." -msgstr "then the shell exits, unless the shell option ‘execfail’ is set." - -#: builtins.c:534 -msgid "Exit the shell with a status of N. If N is omitted, the exit status" -msgstr "Exit the shell with a status of N. If N is omitted, the exit status" - -#: builtins.c:535 -msgid "is that of the last command executed." -msgstr "is that of the last command executed." - -#: builtins.c:541 -msgid "Logout of a login shell." -msgstr "Logout of a login shell." - -#: builtins.c:548 -msgid "" -"fc is used to list or edit and re-execute commands from the history list." -msgstr "" -"fc is used to list or edit and re-execute commands from the history list." - -#: builtins.c:549 -msgid "FIRST and LAST can be numbers specifying the range, or FIRST can be a" -msgstr "FIRST and LAST can be numbers specifying the range, or FIRST can be a" - -#: builtins.c:550 -msgid "string, which means the most recent command beginning with that" -msgstr "string, which means the most recent command beginning with that" - -#: builtins.c:551 -msgid "string." -msgstr "string." - -#: builtins.c:553 -msgid "" -" -e ENAME selects which editor to use. Default is FCEDIT, then EDITOR," -msgstr "" -" -e ENAME selects which editor to use. Default is FCEDIT, then EDITOR," - -#: builtins.c:554 -msgid " then vi." -msgstr " then vi." - -#: builtins.c:556 -msgid " -l means list lines instead of editing." -msgstr " -l means list lines instead of editing." - -#: builtins.c:557 -msgid " -n means no line numbers listed." -msgstr " -n means no line numbers listed." - -#: builtins.c:558 -msgid "" -" -r means reverse the order of the lines (making it newest listed first)." -msgstr "" -" -r means reverse the order of the lines (making it newest listed first)." - -#: builtins.c:560 -msgid "With the `fc -s [pat=rep ...] [command]' format, the command is" -msgstr "With the ‘fc -s [pat=rep ...] [command]’ format, the command is" - -#: builtins.c:561 -msgid "re-executed after the substitution OLD=NEW is performed." -msgstr "re-executed after the substitution OLD=NEW is performed." - -#: builtins.c:563 -msgid "A useful alias to use with this is r='fc -s', so that typing `r cc'" -msgstr "" -"A useful alias to use with this is r='fc -s', so that typing ‘r cc’" - -#: builtins.c:564 -msgid "runs the last command beginning with `cc' and typing `r' re-executes" -msgstr "" -"runs the last command beginning with ‘cc’ and typing ‘r’ re-" -"executes" - -#: builtins.c:565 -msgid "the last command." -msgstr "the last command." - -#: builtins.c:573 -msgid "Place JOB_SPEC in the foreground, and make it the current job. If" -msgstr "Place JOB_SPEC in the foreground, and make it the current job. If" - -#: builtins.c:574 -msgid "JOB_SPEC is not present, the shell's notion of the current job is" -msgstr "JOB_SPEC is not present, the shell's notion of the current job is" - -#: builtins.c:575 -msgid "used." -msgstr "used." - -#: builtins.c:583 -msgid "Place JOB_SPEC in the background, as if it had been started with" -msgstr "Place JOB_SPEC in the background, as if it had been started with" - -#: builtins.c:584 -msgid "`&'. If JOB_SPEC is not present, the shell's notion of the current" -msgstr "" -"‘&’. If JOB_SPEC is not present, the shell's notion of the current" - -#: builtins.c:585 -msgid "job is used." -msgstr "job is used." - -#: builtins.c:592 -msgid "For each NAME, the full pathname of the command is determined and" -msgstr "For each NAME, the full pathname of the command is determined and" - -#: builtins.c:593 -msgid "remembered. If the -p option is supplied, PATHNAME is used as the" -msgstr "remembered. If the -p option is supplied, PATHNAME is used as the" - -#: builtins.c:594 -msgid "full pathname of NAME, and no path search is performed. The -r" -msgstr "full pathname of NAME, and no path search is performed. The -r" - -#: builtins.c:595 -msgid "option causes the shell to forget all remembered locations. The -d" -msgstr "option causes the shell to forget all remembered locations. The -d" - -#: builtins.c:596 -msgid "option causes the shell to forget the remembered location of each NAME." -msgstr "" -"option causes the shell to forget the remembered location of each NAME." - -#: builtins.c:597 -msgid "If the -t option is supplied the full pathname to which each NAME" -msgstr "If the -t option is supplied the full pathname to which each NAME" - -#: builtins.c:598 -msgid "corresponds is printed. If multiple NAME arguments are supplied with" -msgstr "corresponds is printed. If multiple NAME arguments are supplied with" - -#: builtins.c:599 -msgid "-t, the NAME is printed before the hashed full pathname. The -l option" -msgstr "" -"-t, the NAME is printed before the hashed full pathname. The -l option" - -#: builtins.c:600 -msgid "causes output to be displayed in a format that may be reused as input." -msgstr "causes output to be displayed in a format that may be reused as input." - -#: builtins.c:601 -msgid "" -"If no arguments are given, information about remembered commands is " -"displayed." -msgstr "" -"If no arguments are given, information about remembered commands is " -"displayed." - -#: builtins.c:608 -msgid "Display helpful information about builtin commands. If PATTERN is" -msgstr "Display helpful information about builtin commands. If PATTERN is" - -#: builtins.c:609 -msgid "specified, gives detailed help on all commands matching PATTERN," -msgstr "specified, gives detailed help on all commands matching PATTERN," - -#: builtins.c:610 -msgid "otherwise a list of the builtins is printed. The -s option" -msgstr "otherwise a list of the builtins is printed. The -s option" - -#: builtins.c:611 -msgid "restricts the output for each builtin command matching PATTERN to" -msgstr "restricts the output for each builtin command matching PATTERN to" - -#: builtins.c:612 -msgid "a short usage synopsis." -msgstr "a short usage synopsis." - -#: builtins.c:620 -msgid "Display the history list with line numbers. Lines listed with" -msgstr "Display the history list with line numbers. Lines listed with" - -#: builtins.c:621 -msgid "with a `*' have been modified. Argument of N says to list only" -msgstr "with a ‘*’ have been modified. Argument of N says to list only" - -#: builtins.c:622 -msgid "the last N lines. The `-c' option causes the history list to be" -msgstr "the last N lines. The ‘-c’ option causes the history list to be" - -#: builtins.c:623 -msgid "cleared by deleting all of the entries. The `-d' option deletes" -msgstr "cleared by deleting all of the entries. The ‘-d’ option deletes" - -#: builtins.c:624 -msgid "the history entry at offset OFFSET. The `-w' option writes out the" -msgstr "" -"the history entry at offset OFFSET. The ‘-w’ option writes out the" - -#: builtins.c:625 -msgid "current history to the history file; `-r' means to read the file and" -msgstr "" -"current history to the history file; ‘-r’ means to read the file and" - -#: builtins.c:626 -msgid "append the contents to the history list instead. `-a' means" -msgstr "append the contents to the history list instead. ‘-a’ means" - -#: builtins.c:627 -msgid "to append history lines from this session to the history file." -msgstr "to append history lines from this session to the history file." - -#: builtins.c:628 -msgid "Argument `-n' means to read all history lines not already read" -msgstr "Argument ‘-n’ means to read all history lines not already read" - -#: builtins.c:629 -msgid "from the history file and append them to the history list." -msgstr "from the history file and append them to the history list." - -#: builtins.c:631 -msgid "If FILENAME is given, then that is used as the history file else" -msgstr "If FILENAME is given, then that is used as the history file else" - -#: builtins.c:632 -msgid "if $HISTFILE has a value, that is used, else ~/.bash_history." -msgstr "if $HISTFILE has a value, that is used, else ~/.bash_history." - -#: builtins.c:633 -msgid "If the -s option is supplied, the non-option ARGs are appended to" -msgstr "If the -s option is supplied, the non-option ARGs are appended to" - -#: builtins.c:634 -msgid "the history list as a single entry. The -p option means to perform" -msgstr "the history list as a single entry. The -p option means to perform" - -#: builtins.c:635 -msgid "history expansion on each ARG and display the result, without storing" -msgstr "history expansion on each ARG and display the result, without storing" - -#: builtins.c:636 -msgid "anything in the history list." -msgstr "anything in the history list." - -#: builtins.c:638 -msgid "If the $HISTTIMEFORMAT variable is set and not null, its value is used" -msgstr "If the $HISTTIMEFORMAT variable is set and not null, its value is used" - -#: builtins.c:639 -msgid "as a format string for strftime(3) to print the time stamp associated" -msgstr "as a format string for strftime(3) to print the time stamp associated" - -#: builtins.c:640 -msgid "" -"with each displayed history entry. No time stamps are printed otherwise." -msgstr "" -"with each displayed history entry. No time stamps are printed otherwise." - -#: builtins.c:648 -msgid "Lists the active jobs. The -l option lists process id's in addition" -msgstr "Lists the active jobs. The -l option lists process id's in addition" - -#: builtins.c:649 -msgid "to the normal information; the -p option lists process id's only." -msgstr "to the normal information; the -p option lists process id's only." - -#: builtins.c:650 -msgid "If -n is given, only processes that have changed status since the last" -msgstr "If -n is given, only processes that have changed status since the last" - -#: builtins.c:651 -msgid "notification are printed. JOBSPEC restricts output to that job. The" -msgstr "notification are printed. JOBSPEC restricts output to that job. The" - -#: builtins.c:652 -msgid "-r and -s options restrict output to running and stopped jobs only," -msgstr "-r and -s options restrict output to running and stopped jobs only," - -#: builtins.c:653 -msgid "respectively. Without options, the status of all active jobs is" -msgstr "respectively. Without options, the status of all active jobs is" - -#: builtins.c:654 -msgid "printed. If -x is given, COMMAND is run after all job specifications" -msgstr "printed. If -x is given, COMMAND is run after all job specifications" - -#: builtins.c:655 -msgid "" -"that appear in ARGS have been replaced with the process ID of that job's" -msgstr "" -"that appear in ARGS have been replaced with the process ID of that job's" - -#: builtins.c:656 -msgid "process group leader." -msgstr "process group leader." - -#: builtins.c:664 -msgid "" -"By default, removes each JOBSPEC argument from the table of active jobs." -msgstr "" -"By default, removes each JOBSPEC argument from the table of active jobs." - -#: builtins.c:665 -msgid "" -"If the -h option is given, the job is not removed from the table, but is" -msgstr "" -"If the -h option is given, the job is not removed from the table, but is" - -#: builtins.c:666 -msgid "marked so that SIGHUP is not sent to the job if the shell receives a" -msgstr "marked so that SIGHUP is not sent to the job if the shell receives a" - -#: builtins.c:667 -msgid "" -"SIGHUP. The -a option, when JOBSPEC is not supplied, means to remove all" -msgstr "" -"SIGHUP. The -a option, when JOBSPEC is not supplied, means to remove all" - -#: builtins.c:668 -msgid "" -"jobs from the job table; the -r option means to remove only running jobs." -msgstr "" -"jobs from the job table; the -r option means to remove only running jobs." - -#: builtins.c:675 -msgid "Send the processes named by PID (or JOB) the signal SIGSPEC. If" -msgstr "Send the processes named by PID (or JOB) the signal SIGSPEC. If" - -#: builtins.c:676 -msgid "SIGSPEC is not present, then SIGTERM is assumed. An argument of `-l'" -msgstr "" -"SIGSPEC is not present, then SIGTERM is assumed. An argument of ‘-l’" - -#: builtins.c:677 -msgid "lists the signal names; if arguments follow `-l' they are assumed to" -msgstr "" -"lists the signal names; if arguments follow ‘-l’ they are assumed to" - -#: builtins.c:678 -msgid "be signal numbers for which names should be listed. Kill is a shell" -msgstr "be signal numbers for which names should be listed. Kill is a shell" - -#: builtins.c:679 -msgid "builtin for two reasons: it allows job IDs to be used instead of" -msgstr "builtin for two reasons: it allows job IDs to be used instead of" - -#: builtins.c:680 -msgid "process IDs, and, if you have reached the limit on processes that" -msgstr "process IDs, and, if you have reached the limit on processes that" - -#: builtins.c:681 -msgid "you can create, you don't have to start a process to kill another one." -msgstr "you can create, you don't have to start a process to kill another one." - -#: builtins.c:687 -msgid "Each ARG is an arithmetic expression to be evaluated. Evaluation" -msgstr "Each ARG is an arithmetic expression to be evaluated. Evaluation" - -#: builtins.c:688 -msgid "is done in fixed-width integers with no check for overflow, though" -msgstr "is done in fixed-width integers with no check for overflow, though" - -#: builtins.c:689 -msgid "division by 0 is trapped and flagged as an error. The following" -msgstr "division by 0 is trapped and flagged as an error. The following" - -#: builtins.c:690 -msgid "list of operators is grouped into levels of equal-precedence operators." -msgstr "" -"list of operators is grouped into levels of equal-precedence operators." - -#: builtins.c:691 -msgid "The levels are listed in order of decreasing precedence." -msgstr "The levels are listed in order of decreasing precedence." - -#: builtins.c:693 -msgid "\tid++, id--\tvariable post-increment, post-decrement" -msgstr "\tid++, id--\tvariable post-increment, post-decrement" - -#: builtins.c:694 -msgid "\t++id, --id\tvariable pre-increment, pre-decrement" -msgstr "\t++id, --id\tvariable pre-increment, pre-decrement" - -#: builtins.c:695 -msgid "\t-, +\t\tunary minus, plus" -msgstr "\t-, +\t\tunary minus, plus" - -#: builtins.c:696 -msgid "\t!, ~\t\tlogical and bitwise negation" -msgstr "\t!, ~\t\tlogical and bitwise negation" - -#: builtins.c:697 -msgid "\t**\t\texponentiation" -msgstr "\t**\t\texponentiation" - -#: builtins.c:698 -msgid "\t*, /, %\t\tmultiplication, division, remainder" -msgstr "\t*, /, %\t\tmultiplication, division, remainder" - -#: builtins.c:699 -msgid "\t+, -\t\taddition, subtraction" -msgstr "\t+, -\t\taddition, subtraction" - -#: builtins.c:700 -msgid "\t<<, >>\t\tleft and right bitwise shifts" -msgstr "\t<<, >>\t\tleft and right bitwise shifts" - -#: builtins.c:701 -msgid "\t<=, >=, <, >\tcomparison" -msgstr "\t<=, >=, <, >\tcomparison" - -#: builtins.c:702 -msgid "\t==, !=\t\tequality, inequality" -msgstr "\t==, !=\t\tequality, inequality" - -#: builtins.c:703 -msgid "\t&\t\tbitwise AND" -msgstr "\t&\t\tbitwise AND" - -#: builtins.c:704 -msgid "\t^\t\tbitwise XOR" -msgstr "\t^\t\tbitwise XOR" - -#: builtins.c:705 -msgid "\t|\t\tbitwise OR" -msgstr "\t|\t\tbitwise OR" - -#: builtins.c:706 -msgid "\t&&\t\tlogical AND" -msgstr "\t&&\t\tlogical AND" - -#: builtins.c:707 -msgid "\t||\t\tlogical OR" -msgstr "\t||\t\tlogical OR" - -#: builtins.c:708 -msgid "\texpr ? expr : expr" -msgstr "\texpr ? expr : expr" - -#: builtins.c:709 -msgid "\t\t\tconditional operator" -msgstr "\t\t\tconditional operator" - -#: builtins.c:710 -msgid "\t=, *=, /=, %=," -msgstr "\t=, *=, /=, %=," - -#: builtins.c:711 -msgid "\t+=, -=, <<=, >>=," -msgstr "\t+=, -=, <<=, >>=," - -#: builtins.c:712 -msgid "\t&=, ^=, |=\tassignment" -msgstr "\t&=, ^=, |=\tassignment" - -#: builtins.c:714 -msgid "Shell variables are allowed as operands. The name of the variable" -msgstr "Shell variables are allowed as operands. The name of the variable" - -#: builtins.c:715 -msgid "is replaced by its value (coerced to a fixed-width integer) within" -msgstr "is replaced by its value (coerced to a fixed-width integer) within" - -#: builtins.c:716 -msgid "an expression. The variable need not have its integer attribute" -msgstr "an expression. The variable need not have its integer attribute" - -#: builtins.c:717 -msgid "turned on to be used in an expression." -msgstr "turned on to be used in an expression." - -#: builtins.c:719 -msgid "Operators are evaluated in order of precedence. Sub-expressions in" -msgstr "Operators are evaluated in order of precedence. Sub-expressions in" - -#: builtins.c:720 -msgid "parentheses are evaluated first and may override the precedence" -msgstr "parentheses are evaluated first and may override the precedence" - -#: builtins.c:721 -msgid "rules above." -msgstr "rules above." - -#: builtins.c:723 -msgid "If the last ARG evaluates to 0, let returns 1; 0 is returned" -msgstr "If the last ARG evaluates to 0, let returns 1; 0 is returned" - -#: builtins.c:724 -msgid "otherwise." -msgstr "otherwise." - -#: builtins.c:730 -msgid "" -"One line is read from the standard input, or from file descriptor FD if the" -msgstr "" -"One line is read from the standard input, or from file descriptor FD if the" - -#: builtins.c:731 -msgid "" -"-u option is supplied, and the first word is assigned to the first NAME," -msgstr "" -"-u option is supplied, and the first word is assigned to the first NAME," - -#: builtins.c:732 -msgid "" -"the second word to the second NAME, and so on, with leftover words assigned" -msgstr "" -"the second word to the second NAME, and so on, with leftover words assigned" - -#: builtins.c:733 -msgid "" -"to the last NAME. Only the characters found in $IFS are recognized as word" -msgstr "" -"to the last NAME. Only the characters found in $IFS are recognized as word" - -#: builtins.c:734 -msgid "" -"delimiters. If no NAMEs are supplied, the line read is stored in the REPLY" -msgstr "" -"delimiters. If no NAMEs are supplied, the line read is stored in the REPLY" - -#: builtins.c:735 -msgid "variable. If the -r option is given, this signifies `raw' input, and" -msgstr "" -"variable. If the -r option is given, this signifies ‘raw’ input, and" - -#: builtins.c:736 -msgid "backslash escaping is disabled. The -d option causes read to continue" -msgstr "backslash escaping is disabled. The -d option causes read to continue" - -#: builtins.c:737 -msgid "" -"until the first character of DELIM is read, rather than newline. If the -p" -msgstr "" -"until the first character of DELIM is read, rather than newline. If the -p" - -#: builtins.c:738 -msgid "" -"option is supplied, the string PROMPT is output without a trailing newline" -msgstr "" -"option is supplied, the string PROMPT is output without a trailing newline" - -#: builtins.c:739 -msgid "" -"before attempting to read. If -a is supplied, the words read are assigned" -msgstr "" -"before attempting to read. If -a is supplied, the words read are assigned" - -#: builtins.c:740 -msgid "" -"to sequential indices of ARRAY, starting at zero. If -e is supplied and" -msgstr "" -"to sequential indices of ARRAY, starting at zero. If -e is supplied and" - -#: builtins.c:741 -msgid "" -"the shell is interactive, readline is used to obtain the line. If -n is" -msgstr "" -"the shell is interactive, readline is used to obtain the line. If -n is" - -#: builtins.c:742 -msgid "supplied with a non-zero NCHARS argument, read returns after NCHARS" -msgstr "supplied with a non-zero NCHARS argument, read returns after NCHARS" - -#: builtins.c:743 -msgid "characters have been read. The -s option causes input coming from a" -msgstr "characters have been read. The -s option causes input coming from a" - -#: builtins.c:744 -msgid "terminal to not be echoed." -msgstr "terminal to not be echoed." - -#: builtins.c:746 -msgid "" -"The -t option causes read to time out and return failure if a complete line" -msgstr "" -"The -t option causes read to time out and return failure if a complete line" - -#: builtins.c:747 -msgid "" -"of input is not read within TIMEOUT seconds. If the TMOUT variable is set," -msgstr "" -"of input is not read within TIMEOUT seconds. If the TMOUT variable is set," - -#: builtins.c:748 -msgid "" -"its value is the default timeout. The return code is zero, unless end-of-" -"file" -msgstr "" -"its value is the default timeout. The return code is zero, unless end-of-" -"file" - -#: builtins.c:749 -msgid "" -"is encountered, read times out, or an invalid file descriptor is supplied as" -msgstr "" -"is encountered, read times out, or an invalid file descriptor is supplied as" - -#: builtins.c:750 -msgid "the argument to -u." -msgstr "the argument to -u." - -#: builtins.c:756 -msgid "Causes a function to exit with the return value specified by N. If N" -msgstr "Causes a function to exit with the return value specified by N. If N" - -#: builtins.c:757 -msgid "is omitted, the return status is that of the last command." -msgstr "is omitted, the return status is that of the last command." - -#: builtins.c:763 -msgid " -a Mark variables which are modified or created for export." -msgstr " -a Mark variables which are modified or created for export." - -#: builtins.c:764 -msgid " -b Notify of job termination immediately." -msgstr " -b Notify of job termination immediately." - -#: builtins.c:765 -msgid " -e Exit immediately if a command exits with a non-zero status." -msgstr " -e Exit immediately if a command exits with a non-zero status." - -#: builtins.c:766 -msgid " -f Disable file name generation (globbing)." -msgstr " -f Disable file name generation (globbing)." - -#: builtins.c:767 -msgid " -h Remember the location of commands as they are looked up." -msgstr " -h Remember the location of commands as they are looked up." - -#: builtins.c:768 -msgid " -k All assignment arguments are placed in the environment for a" -msgstr " -k All assignment arguments are placed in the environment for a" - -#: builtins.c:769 -msgid " command, not just those that precede the command name." -msgstr " command, not just those that precede the command name." - -#: builtins.c:770 -msgid " -m Job control is enabled." -msgstr " -m Job control is enabled." - -#: builtins.c:771 -msgid " -n Read commands but do not execute them." -msgstr " -n Read commands but do not execute them." - -#: builtins.c:772 -msgid " -o option-name" -msgstr " -o option-name" - -#: builtins.c:773 -msgid " Set the variable corresponding to option-name:" -msgstr " Set the variable corresponding to option-name:" - -#: builtins.c:774 -msgid " allexport same as -a" -msgstr " allexport same as -a" - -#: builtins.c:775 -msgid " braceexpand same as -B" -msgstr " braceexpand same as -B" - -#: builtins.c:777 -msgid " emacs use an emacs-style line editing interface" -msgstr " emacs use an emacs-style line editing interface" - -#: builtins.c:779 -msgid " errexit same as -e" -msgstr " errexit same as -e" - -#: builtins.c:780 -msgid " errtrace same as -E" -msgstr " errtrace same as -E" - -#: builtins.c:781 -msgid " functrace same as -T" -msgstr " functrace same as -T" - -#: builtins.c:782 -msgid " hashall same as -h" -msgstr " hashall same as -h" - -#: builtins.c:784 -msgid " histexpand same as -H" -msgstr " histexpand same as -H" - -#: builtins.c:787 -msgid " history enable command history" -msgstr " history enable command history" - -#: builtins.c:789 -msgid " ignoreeof the shell will not exit upon reading EOF" -msgstr " ignoreeof the shell will not exit upon reading EOF" - -#: builtins.c:790 -msgid " interactive-comments" -msgstr " interactive-comments" - -#: builtins.c:791 -msgid "" -" allow comments to appear in interactive commands" -msgstr "" -" allow comments to appear in interactive commands" - -#: builtins.c:792 -msgid " keyword same as -k" -msgstr " keyword same as -k" - -#: builtins.c:793 -msgid " monitor same as -m" -msgstr " monitor same as -m" - -#: builtins.c:794 -msgid " noclobber same as -C" -msgstr " noclobber same as -C" - -#: builtins.c:795 -msgid " noexec same as -n" -msgstr " noexec same as -n" - -#: builtins.c:796 -msgid " noglob same as -f" -msgstr " noglob same as -f" - -#: builtins.c:797 -msgid " nolog currently accepted but ignored" -msgstr " nolog currently accepted but ignored" - -#: builtins.c:798 -msgid " notify same as -b" -msgstr " notify same as -b" - -#: builtins.c:799 -msgid " nounset same as -u" -msgstr " nounset same as -u" - -#: builtins.c:800 -msgid " onecmd same as -t" -msgstr " onecmd same as -t" - -#: builtins.c:801 -msgid " physical same as -P" -msgstr " physical same as -P" - -#: builtins.c:802 -msgid "" -" pipefail the return value of a pipeline is the status of" -msgstr "" -" pipefail the return value of a pipeline is the status of" - -#: builtins.c:803 -msgid "" -" the last command to exit with a non-zero status," -msgstr "" -" the last command to exit with a non-zero status," - -#: builtins.c:804 -msgid "" -" or zero if no command exited with a non-zero status" -msgstr "" -" or zero if no command exited with a non-zero status" - -#: builtins.c:805 -msgid " posix change the behavior of bash where the default" -msgstr " posix change the behavior of bash where the default" - -#: builtins.c:806 -msgid " operation differs from the 1003.2 standard to" -msgstr " operation differs from the 1003.2 standard to" - -#: builtins.c:807 -msgid " match the standard" -msgstr " match the standard" - -#: builtins.c:808 -msgid " privileged same as -p" -msgstr " privileged same as -p" - -#: builtins.c:809 -msgid " verbose same as -v" -msgstr " verbose same as -v" - -#: builtins.c:811 -msgid " vi use a vi-style line editing interface" -msgstr " vi use a vi-style line editing interface" - -#: builtins.c:813 -msgid " xtrace same as -x" -msgstr " xtrace same as -x" - -#: builtins.c:814 -msgid "" -" -p Turned on whenever the real and effective user ids do not match." -msgstr "" -" -p Turned on whenever the real and effective user ids do not match." - -#: builtins.c:815 -msgid " Disables processing of the $ENV file and importing of shell" -msgstr " Disables processing of the $ENV file and importing of shell" - -#: builtins.c:816 -msgid "" -" functions. Turning this option off causes the effective uid and" -msgstr "" -" functions. Turning this option off causes the effective uid and" - -#: builtins.c:817 -msgid " gid to be set to the real uid and gid." -msgstr " gid to be set to the real uid and gid." - -#: builtins.c:818 -msgid " -t Exit after reading and executing one command." -msgstr " -t Exit after reading and executing one command." - -#: builtins.c:819 -msgid " -u Treat unset variables as an error when substituting." -msgstr " -u Treat unset variables as an error when substituting." - -#: builtins.c:820 -msgid " -v Print shell input lines as they are read." -msgstr " -v Print shell input lines as they are read." - -#: builtins.c:821 -msgid " -x Print commands and their arguments as they are executed." -msgstr " -x Print commands and their arguments as they are executed." - -#: builtins.c:823 -msgid " -B the shell will perform brace expansion" -msgstr " -B the shell will perform brace expansion" - -#: builtins.c:825 -msgid " -C If set, disallow existing regular files to be overwritten" -msgstr " -C If set, disallow existing regular files to be overwritten" - -#: builtins.c:826 -msgid " by redirection of output." -msgstr " by redirection of output." - -#: builtins.c:827 -msgid " -E If set, the ERR trap is inherited by shell functions." -msgstr " -E If set, the ERR trap is inherited by shell functions." - -#: builtins.c:829 -msgid " -H Enable ! style history substitution. This flag is on" -msgstr " -H Enable ! style history substitution. This flag is on" - -#: builtins.c:830 -msgid " by default." -msgstr " by default." - -#: builtins.c:832 -msgid " -P If set, do not follow symbolic links when executing commands" -msgstr " -P If set, do not follow symbolic links when executing commands" - -#: builtins.c:833 -msgid " such as cd which change the current directory." -msgstr " such as cd which change the current directory." - -#: builtins.c:834 -msgid " -T If set, the DEBUG trap is inherited by shell functions." -msgstr " -T If set, the DEBUG trap is inherited by shell functions." - -#: builtins.c:836 -msgid "Using + rather than - causes these flags to be turned off. The" -msgstr "Using + rather than - causes these flags to be turned off. The" - -#: builtins.c:837 -msgid "flags can also be used upon invocation of the shell. The current" -msgstr "flags can also be used upon invocation of the shell. The current" - -#: builtins.c:838 -msgid "set of flags may be found in $-. The remaining n ARGs are positional" -msgstr "set of flags may be found in $-. The remaining n ARGs are positional" - -#: builtins.c:839 -msgid "parameters and are assigned, in order, to $1, $2, .. $n. If no" -msgstr "parameters and are assigned, in order, to $1, $2, .. $n. If no" - -#: builtins.c:840 -msgid "ARGs are given, all shell variables are printed." -msgstr "ARGs are given, all shell variables are printed." - -#: builtins.c:846 -msgid "For each NAME, remove the corresponding variable or function. Given" -msgstr "For each NAME, remove the corresponding variable or function. Given" - -#: builtins.c:847 -msgid "the `-v', unset will only act on variables. Given the `-f' flag," -msgstr "" -"the ‘-v’, unset will only act on variables. Given the ‘-f’ flag," - -#: builtins.c:848 -msgid "unset will only act on functions. With neither flag, unset first" -msgstr "unset will only act on functions. With neither flag, unset first" - -#: builtins.c:849 -msgid "tries to unset a variable, and if that fails, then tries to unset a" -msgstr "tries to unset a variable, and if that fails, then tries to unset a" - -#: builtins.c:850 -msgid "function. Some variables cannot be unset; also see readonly." -msgstr "function. Some variables cannot be unset; also see readonly." - -#: builtins.c:856 -msgid "NAMEs are marked for automatic export to the environment of" -msgstr "NAMEs are marked for automatic export to the environment of" - -#: builtins.c:857 -msgid "subsequently executed commands. If the -f option is given," -msgstr "subsequently executed commands. If the -f option is given," - -#: builtins.c:858 -msgid "the NAMEs refer to functions. If no NAMEs are given, or if `-p'" -msgstr "the NAMEs refer to functions. If no NAMEs are given, or if ‘-p’" - -#: builtins.c:859 -msgid "is given, a list of all names that are exported in this shell is" -msgstr "is given, a list of all names that are exported in this shell is" - -#: builtins.c:860 -msgid "printed. An argument of `-n' says to remove the export property" -msgstr "printed. An argument of ‘-n’ says to remove the export property" - -#: builtins.c:861 -msgid "from subsequent NAMEs. An argument of `--' disables further option" -msgstr "" -"from subsequent NAMEs. An argument of ‘--’ disables further option" - -#: builtins.c:862 builtins.c:874 -msgid "processing." -msgstr "processing." - -#: builtins.c:868 -msgid "The given NAMEs are marked readonly and the values of these NAMEs may" -msgstr "The given NAMEs are marked readonly and the values of these NAMEs may" - -#: builtins.c:869 -msgid "not be changed by subsequent assignment. If the -f option is given," -msgstr "not be changed by subsequent assignment. If the -f option is given," - -#: builtins.c:870 -msgid "then functions corresponding to the NAMEs are so marked. If no" -msgstr "then functions corresponding to the NAMEs are so marked. If no" - -#: builtins.c:871 -msgid "arguments are given, or if `-p' is given, a list of all readonly names" -msgstr "" -"arguments are given, or if ‘-p’ is given, a list of all readonly names" - -#: builtins.c:872 -msgid "is printed. The `-a' option means to treat each NAME as" -msgstr "is printed. The ‘-a’ option means to treat each NAME as" - -#: builtins.c:873 -msgid "an array variable. An argument of `--' disables further option" -msgstr "an array variable. An argument of ‘--’ disables further option" - -#: builtins.c:880 -msgid "The positional parameters from $N+1 ... are renamed to $1 ... If N is" -msgstr "The positional parameters from $N+1 ... are renamed to $1 ... If N is" - -#: builtins.c:881 -msgid "not given, it is assumed to be 1." -msgstr "not given, it is assumed to be 1." - -#: builtins.c:887 builtins.c:896 -msgid "Read and execute commands from FILENAME and return. The pathnames" -msgstr "Read and execute commands from FILENAME and return. The pathnames" - -#: builtins.c:888 builtins.c:897 -msgid "in $PATH are used to find the directory containing FILENAME. If any" -msgstr "in $PATH are used to find the directory containing FILENAME. If any" - -#: builtins.c:889 builtins.c:898 -msgid "ARGUMENTS are supplied, they become the positional parameters when" -msgstr "ARGUMENTS are supplied, they become the positional parameters when" - -#: builtins.c:890 builtins.c:899 -msgid "FILENAME is executed." -msgstr "FILENAME is executed." - -#: builtins.c:906 -msgid "Suspend the execution of this shell until it receives a SIGCONT" -msgstr "Suspend the execution of this shell until it receives a SIGCONT" - -#: builtins.c:907 -msgid "signal. The `-f' if specified says not to complain about this" -msgstr "signal. The ‘-f’ if specified says not to complain about this" - -#: builtins.c:908 -msgid "being a login shell if it is; just suspend anyway." -msgstr "being a login shell if it is; just suspend anyway." - -#: builtins.c:915 -msgid "Exits with a status of 0 (true) or 1 (false) depending on" -msgstr "Exits with a status of 0 (true) or 1 (false) depending on" - -#: builtins.c:916 -msgid "the evaluation of EXPR. Expressions may be unary or binary. Unary" -msgstr "the evaluation of EXPR. Expressions may be unary or binary. Unary" - -#: builtins.c:917 -msgid "expressions are often used to examine the status of a file. There" -msgstr "expressions are often used to examine the status of a file. There" - -#: builtins.c:918 -msgid "are string operators as well, and numeric comparison operators." -msgstr "are string operators as well, and numeric comparison operators." - -#: builtins.c:920 -msgid "File operators:" -msgstr "File operators:" - -#: builtins.c:922 -msgid " -a FILE True if file exists." -msgstr " -a FILE True if file exists." - -#: builtins.c:923 -msgid " -b FILE True if file is block special." -msgstr " -b FILE True if file is block special." - -#: builtins.c:924 -msgid " -c FILE True if file is character special." -msgstr " -c FILE True if file is character special." - -#: builtins.c:925 -msgid " -d FILE True if file is a directory." -msgstr " -d FILE True if file is a directory." - -#: builtins.c:926 -msgid " -e FILE True if file exists." -msgstr " -e FILE True if file exists." - -#: builtins.c:927 -msgid " -f FILE True if file exists and is a regular file." -msgstr " -f FILE True if file exists and is a regular file." - -#: builtins.c:928 -msgid " -g FILE True if file is set-group-id." -msgstr " -g FILE True if file is set-group-id." - -#: builtins.c:929 -msgid " -h FILE True if file is a symbolic link." -msgstr " -h FILE True if file is a symbolic link." - -#: builtins.c:930 -msgid " -L FILE True if file is a symbolic link." -msgstr " -L FILE True if file is a symbolic link." - -#: builtins.c:931 -msgid " -k FILE True if file has its `sticky' bit set." -msgstr " -k FILE True if file has its ‘sticky’ bit set." - -#: builtins.c:932 -msgid " -p FILE True if file is a named pipe." -msgstr " -p FILE True if file is a named pipe." - -#: builtins.c:933 -msgid " -r FILE True if file is readable by you." -msgstr " -r FILE True if file is readable by you." - -#: builtins.c:934 -msgid " -s FILE True if file exists and is not empty." -msgstr " -s FILE True if file exists and is not empty." - -#: builtins.c:935 -msgid " -S FILE True if file is a socket." -msgstr " -S FILE True if file is a socket." - -#: builtins.c:936 -msgid " -t FD True if FD is opened on a terminal." -msgstr " -t FD True if FD is opened on a terminal." - -#: builtins.c:937 -msgid " -u FILE True if the file is set-user-id." -msgstr " -u FILE True if the file is set-user-id." - -#: builtins.c:938 -msgid " -w FILE True if the file is writable by you." -msgstr " -w FILE True if the file is writable by you." - -#: builtins.c:939 -msgid " -x FILE True if the file is executable by you." -msgstr " -x FILE True if the file is executable by you." - -#: builtins.c:940 -msgid " -O FILE True if the file is effectively owned by you." -msgstr " -O FILE True if the file is effectively owned by you." - -#: builtins.c:941 -msgid " -G FILE True if the file is effectively owned by your group." -msgstr "" -" -G FILE True if the file is effectively owned by your group." - -#: builtins.c:942 -msgid "" -" -N FILE True if the file has been modified since it was last read." -msgstr "" -" -N FILE True if the file has been modified since it was last read." - -#: builtins.c:944 -msgid " FILE1 -nt FILE2 True if file1 is newer than file2 (according to" -msgstr " FILE1 -nt FILE2 True if file1 is newer than file2 (according to" - -#: builtins.c:945 -msgid " modification date)." -msgstr " modification date)." - -#: builtins.c:947 -msgid " FILE1 -ot FILE2 True if file1 is older than file2." -msgstr " FILE1 -ot FILE2 True if file1 is older than file2." - -#: builtins.c:949 -msgid " FILE1 -ef FILE2 True if file1 is a hard link to file2." -msgstr " FILE1 -ef FILE2 True if file1 is a hard link to file2." - -#: builtins.c:951 -msgid "String operators:" -msgstr "String operators:" - -#: builtins.c:953 -msgid " -z STRING True if string is empty." -msgstr " -z STRING True if string is empty." - -#: builtins.c:955 -msgid " -n STRING" -msgstr " -n STRING" - -#: builtins.c:956 -msgid " STRING True if string is not empty." -msgstr " STRING True if string is not empty." - -#: builtins.c:958 -msgid " STRING1 = STRING2" -msgstr " STRING1 = STRING2" - -#: builtins.c:959 -msgid " True if the strings are equal." -msgstr " True if the strings are equal." - -#: builtins.c:960 -msgid " STRING1 != STRING2" -msgstr " STRING1 != STRING2" - -#: builtins.c:961 -msgid " True if the strings are not equal." -msgstr " True if the strings are not equal." - -#: builtins.c:962 -msgid " STRING1 < STRING2" -msgstr " STRING1 < STRING2" - -#: builtins.c:963 -msgid "" -" True if STRING1 sorts before STRING2 lexicographically." -msgstr "" -" True if STRING1 sorts before STRING2 lexicographically." - -#: builtins.c:964 -msgid " STRING1 > STRING2" -msgstr " STRING1 > STRING2" - -#: builtins.c:965 -msgid "" -" True if STRING1 sorts after STRING2 lexicographically." -msgstr "" -" True if STRING1 sorts after STRING2 lexicographically." - -#: builtins.c:967 -msgid "Other operators:" -msgstr "Other operators:" - -#: builtins.c:969 -msgid " -o OPTION True if the shell option OPTION is enabled." -msgstr " -o OPTION True if the shell option OPTION is enabled." - -#: builtins.c:970 -msgid " ! EXPR True if expr is false." -msgstr " ! EXPR True if expr is false." - -#: builtins.c:971 -msgid " EXPR1 -a EXPR2 True if both expr1 AND expr2 are true." -msgstr " EXPR1 -a EXPR2 True if both expr1 AND expr2 are true." - -#: builtins.c:972 -msgid " EXPR1 -o EXPR2 True if either expr1 OR expr2 is true." -msgstr " EXPR1 -o EXPR2 True if either expr1 OR expr2 is true." - -#: builtins.c:974 -msgid " arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne," -msgstr " arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne," - -#: builtins.c:975 -msgid " -lt, -le, -gt, or -ge." -msgstr " -lt, -le, -gt, or -ge." - -#: builtins.c:977 -msgid "Arithmetic binary operators return true if ARG1 is equal, not-equal," -msgstr "Arithmetic binary operators return true if ARG1 is equal, not-equal," - -#: builtins.c:978 -msgid "less-than, less-than-or-equal, greater-than, or greater-than-or-equal" -msgstr "less-than, less-than-or-equal, greater-than, or greater-than-or-equal" - -#: builtins.c:979 -msgid "than ARG2." -msgstr "than ARG2." - -#: builtins.c:985 -msgid "This is a synonym for the \"test\" builtin, but the last" -msgstr "This is a synonym for the “test” builtin, but the last" - -#: builtins.c:986 -msgid "argument must be a literal `]', to match the opening `['." -msgstr "argument must be a literal ‘]’, to match the opening ‘[’." - -#: builtins.c:992 -msgid "Print the accumulated user and system times for processes run from" -msgstr "Print the accumulated user and system times for processes run from" - -#: builtins.c:993 -msgid "the shell." -msgstr "the shell." - -#: builtins.c:999 -msgid "The command ARG is to be read and executed when the shell receives" -msgstr "The command ARG is to be read and executed when the shell receives" - -#: builtins.c:1000 -msgid "signal(s) SIGNAL_SPEC. If ARG is absent all specified signals are" -msgstr "signal(s) SIGNAL_SPEC. If ARG is absent all specified signals are" - -#: builtins.c:1001 -msgid "reset to their original values. If ARG is the null string each" -msgstr "reset to their original values. If ARG is the null string each" - -#: builtins.c:1002 -msgid "SIGNAL_SPEC is ignored by the shell and by the commands it invokes." -msgstr "SIGNAL_SPEC is ignored by the shell and by the commands it invokes." - -#: builtins.c:1003 -msgid "If a SIGNAL_SPEC is EXIT (0) the command ARG is executed on exit from" -msgstr "If a SIGNAL_SPEC is EXIT (0) the command ARG is executed on exit from" - -#: builtins.c:1004 -msgid "the shell. If a SIGNAL_SPEC is DEBUG, ARG is executed after every" -msgstr "the shell. If a SIGNAL_SPEC is DEBUG, ARG is executed after every" - -#: builtins.c:1005 -msgid "command. If ARG is `-p' then the trap commands associated with" -msgstr "command. If ARG is ‘-p’ then the trap commands associated with" - -#: builtins.c:1006 -msgid "each SIGNAL_SPEC are displayed. If no arguments are supplied or if" -msgstr "each SIGNAL_SPEC are displayed. If no arguments are supplied or if" - -#: builtins.c:1007 -msgid "only `-p' is given, trap prints the list of commands associated with" -msgstr "" -"only ‘-p’ is given, trap prints the list of commands associated with" - -#: builtins.c:1008 -msgid "" -"each signal number. Each SIGNAL_SPEC is either a signal name in " -msgstr "" -"each signal number. Each SIGNAL_SPEC is either a signal name in " - -#: builtins.c:1009 -msgid "or a signal number. `trap -l' prints a list of signal names and their" -msgstr "" -"or a signal number. ‘trap -l’ prints a list of signal names and their" - -#: builtins.c:1010 -msgid "corresponding numbers. Note that a signal can be sent to the shell" -msgstr "corresponding numbers. Note that a signal can be sent to the shell" - -#: builtins.c:1011 -msgid "with \"kill -signal $$\"." -msgstr "with “kill -signal $$”." - -#: builtins.c:1017 -msgid "For each NAME, indicate how it would be interpreted if used as a" -msgstr "For each NAME, indicate how it would be interpreted if used as a" - -#: builtins.c:1018 -msgid "command name." -msgstr "command name." - -#: builtins.c:1020 -msgid "If the -t option is used, `type' outputs a single word which is one of" -msgstr "" -"If the -t option is used, ‘type’ outputs a single word which is one of" - -#: builtins.c:1021 -msgid "`alias', `keyword', `function', `builtin', `file' or `', if NAME is an" -msgstr "" -"‘alias’, ‘keyword’, ‘function’, ‘builtin’, ‘file" -"[0m’ or ‘’, if NAME is an" - -#: builtins.c:1022 -msgid "alias, shell reserved word, shell function, shell builtin, disk file," -msgstr "alias, shell reserved word, shell function, shell builtin, disk file," - -#: builtins.c:1023 -msgid "or unfound, respectively." -msgstr "or unfound, respectively." - -#: builtins.c:1025 -msgid "If the -p flag is used, `type' either returns the name of the disk" -msgstr "" -"If the -p flag is used, ‘type’ either returns the name of the disk" - -#: builtins.c:1026 -msgid "file that would be executed, or nothing if `type -t NAME' would not" -msgstr "" -"file that would be executed, or nothing if ‘type -t NAME’ would not" - -#: builtins.c:1027 -msgid "return `file'." -msgstr "return ‘file’." - -#: builtins.c:1029 -msgid "If the -a flag is used, `type' displays all of the places that contain" -msgstr "" -"If the -a flag is used, ‘type’ displays all of the places that contain" - -#: builtins.c:1030 -msgid "an executable named `file'. This includes aliases, builtins, and" -msgstr "" -"an executable named ‘file’. This includes aliases, builtins, and" - -#: builtins.c:1031 -msgid "functions, if and only if the -p flag is not also used." -msgstr "functions, if and only if the -p flag is not also used." - -#: builtins.c:1033 -msgid "The -f flag suppresses shell function lookup." -msgstr "The -f flag suppresses shell function lookup." - -#: builtins.c:1035 -msgid "The -P flag forces a PATH search for each NAME, even if it is an alias," -msgstr "" -"The -P flag forces a PATH search for each NAME, even if it is an alias," - -#: builtins.c:1036 -msgid "builtin, or function, and returns the name of the disk file that would" -msgstr "builtin, or function, and returns the name of the disk file that would" - -#: builtins.c:1037 -msgid "be executed." -msgstr "be executed." - -#: builtins.c:1044 -msgid "Ulimit provides control over the resources available to processes" -msgstr "Ulimit provides control over the resources available to processes" - -#: builtins.c:1045 -msgid "started by the shell, on systems that allow such control. If an" -msgstr "started by the shell, on systems that allow such control. If an" - -#: builtins.c:1046 -msgid "option is given, it is interpreted as follows:" -msgstr "option is given, it is interpreted as follows:" - -#: builtins.c:1048 -msgid " -S\tuse the `soft' resource limit" -msgstr " -S\tuse the ‘soft’ resource limit" - -#: builtins.c:1049 -msgid " -H\tuse the `hard' resource limit" -msgstr " -H\tuse the ‘hard’ resource limit" - -#: builtins.c:1050 -msgid " -a\tall current limits are reported" -msgstr " -a\tall current limits are reported" - -#: builtins.c:1051 -msgid " -c\tthe maximum size of core files created" -msgstr " -c\tthe maximum size of core files created" - -#: builtins.c:1052 -msgid " -d\tthe maximum size of a process's data segment" -msgstr " -d\tthe maximum size of a process's data segment" - -#: builtins.c:1053 -msgid " -f\tthe maximum size of files created by the shell" -msgstr " -f\tthe maximum size of files created by the shell" - -#: builtins.c:1054 -msgid " -l\tthe maximum size a process may lock into memory" -msgstr " -l\tthe maximum size a process may lock into memory" - -#: builtins.c:1055 -msgid " -m\tthe maximum resident set size" -msgstr " -m\tthe maximum resident set size" - -#: builtins.c:1056 -msgid " -n\tthe maximum number of open file descriptors" -msgstr " -n\tthe maximum number of open file descriptors" - -#: builtins.c:1057 -msgid " -p\tthe pipe buffer size" -msgstr " -p\tthe pipe buffer size" - -#: builtins.c:1058 -msgid " -s\tthe maximum stack size" -msgstr " -s\tthe maximum stack size" - -#: builtins.c:1059 -msgid " -t\tthe maximum amount of cpu time in seconds" -msgstr " -t\tthe maximum amount of cpu time in seconds" - -#: builtins.c:1060 -msgid " -u\tthe maximum number of user processes" -msgstr " -u\tthe maximum number of user processes" - -#: builtins.c:1061 -msgid " -v\tthe size of virtual memory" -msgstr " -v\tthe size of virtual memory" - -#: builtins.c:1063 -msgid "If LIMIT is given, it is the new value of the specified resource;" -msgstr "If LIMIT is given, it is the new value of the specified resource;" - -#: builtins.c:1064 -msgid "the special LIMIT values `soft', `hard', and `unlimited' stand for" -msgstr "" -"the special LIMIT values ‘soft’, ‘hard’, and ‘unlimited’ " -"stand for" - -#: builtins.c:1065 -msgid "" -"the current soft limit, the current hard limit, and no limit, respectively." -msgstr "" -"the current soft limit, the current hard limit, and no limit, respectively." - -#: builtins.c:1066 -msgid "Otherwise, the current value of the specified resource is printed." -msgstr "Otherwise, the current value of the specified resource is printed." - -#: builtins.c:1067 -msgid "If no option is given, then -f is assumed. Values are in 1024-byte" -msgstr "If no option is given, then -f is assumed. Values are in 1024-byte" - -#: builtins.c:1068 -msgid "increments, except for -t, which is in seconds, -p, which is in" -msgstr "increments, except for -t, which is in seconds, -p, which is in" - -#: builtins.c:1069 -msgid "increments of 512 bytes, and -u, which is an unscaled number of" -msgstr "increments of 512 bytes, and -u, which is an unscaled number of" - -#: builtins.c:1070 -msgid "processes." -msgstr "processes." - -#: builtins.c:1077 -msgid "The user file-creation mask is set to MODE. If MODE is omitted, or if" -msgstr "The user file-creation mask is set to MODE. If MODE is omitted, or if" - -#: builtins.c:1078 -msgid "`-S' is supplied, the current value of the mask is printed. The `-S'" -msgstr "" -"‘-S’ is supplied, the current value of the mask is printed. The ‘-S" -"[0m’" - -#: builtins.c:1079 -msgid "option makes the output symbolic; otherwise an octal number is output." -msgstr "option makes the output symbolic; otherwise an octal number is output." - -#: builtins.c:1080 -msgid "If `-p' is supplied, and MODE is omitted, the output is in a form" -msgstr "" -"If ‘-p’ is supplied, and MODE is omitted, the output is in a form" - -#: builtins.c:1081 -msgid "that may be used as input. If MODE begins with a digit, it is" -msgstr "that may be used as input. If MODE begins with a digit, it is" - -#: builtins.c:1082 -msgid "interpreted as an octal number, otherwise it is a symbolic mode string" -msgstr "interpreted as an octal number, otherwise it is a symbolic mode string" - -#: builtins.c:1083 -msgid "like that accepted by chmod(1)." -msgstr "like that accepted by chmod(1)." - -#: builtins.c:1090 builtins.c:1102 -msgid "Wait for the specified process and report its termination status. If" -msgstr "Wait for the specified process and report its termination status. If" - -#: builtins.c:1091 builtins.c:1103 -msgid "N is not given, all currently active child processes are waited for," -msgstr "N is not given, all currently active child processes are waited for," - -#: builtins.c:1092 -msgid "and the return code is zero. N may be a process ID or a job" -msgstr "and the return code is zero. N may be a process ID or a job" - -#: builtins.c:1093 -msgid "specification; if a job spec is given, all processes in the job's" -msgstr "specification; if a job spec is given, all processes in the job's" - -#: builtins.c:1094 -msgid "pipeline are waited for." -msgstr "pipeline are waited for." - -#: builtins.c:1104 -msgid "and the return code is zero. N is a process ID; if it is not given," -msgstr "and the return code is zero. N is a process ID; if it is not given," - -#: builtins.c:1105 -msgid "all child processes of the shell are waited for." -msgstr "all child processes of the shell are waited for." - -#: builtins.c:1112 -msgid "The `for' loop executes a sequence of commands for each member in a" -msgstr "" -"The ‘for’ loop executes a sequence of commands for each member in a" - -#: builtins.c:1113 -msgid "list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is" -msgstr "" -"list of items. If ‘in WORDS ...;’ is not present, then ‘in “$@" -"[0m”’ is" - -#: builtins.c:1114 -msgid "assumed. For each element in WORDS, NAME is set to that element, and" -msgstr "assumed. For each element in WORDS, NAME is set to that element, and" - -#: builtins.c:1115 -msgid "the COMMANDS are executed." -msgstr "the COMMANDS are executed." - -#: builtins.c:1121 -msgid "Equivalent to" -msgstr "Equivalent to" - -#: builtins.c:1122 -msgid "\t(( EXP1 ))" -msgstr "\t(( EXP1 ))" - -#: builtins.c:1123 -msgid "\twhile (( EXP2 )); do" -msgstr "\twhile (( EXP2 )); do" - -#: builtins.c:1124 -msgid "\t\tCOMMANDS" -msgstr "\t\tCOMMANDS" - -#: builtins.c:1125 -msgid "\t\t(( EXP3 ))" -msgstr "\t\t(( EXP3 ))" - -#: builtins.c:1126 -msgid "\tdone" -msgstr "\tdone" - -#: builtins.c:1127 -msgid "EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is" -msgstr "EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is" - -#: builtins.c:1128 -msgid "omitted, it behaves as if it evaluates to 1." -msgstr "omitted, it behaves as if it evaluates to 1." - -#: builtins.c:1134 -msgid "The WORDS are expanded, generating a list of words. The" -msgstr "The WORDS are expanded, generating a list of words. The" - -#: builtins.c:1135 -msgid "set of expanded words is printed on the standard error, each" -msgstr "set of expanded words is printed on the standard error, each" - -#: builtins.c:1136 -msgid "preceded by a number. If `in WORDS' is not present, `in \"$@\"'" -msgstr "" -"preceded by a number. If ‘in WORDS’ is not present, ‘in “$@" -"[0m”’" - -#: builtins.c:1137 -msgid "is assumed. The PS3 prompt is then displayed and a line read" -msgstr "is assumed. The PS3 prompt is then displayed and a line read" - -#: builtins.c:1138 -msgid "from the standard input. If the line consists of the number" -msgstr "from the standard input. If the line consists of the number" - -#: builtins.c:1139 -msgid "corresponding to one of the displayed words, then NAME is set" -msgstr "corresponding to one of the displayed words, then NAME is set" - -#: builtins.c:1140 -msgid "to that word. If the line is empty, WORDS and the prompt are" -msgstr "to that word. If the line is empty, WORDS and the prompt are" - -#: builtins.c:1141 -msgid "redisplayed. If EOF is read, the command completes. Any other" -msgstr "redisplayed. If EOF is read, the command completes. Any other" - -#: builtins.c:1142 -msgid "value read causes NAME to be set to null. The line read is saved" -msgstr "value read causes NAME to be set to null. The line read is saved" - -#: builtins.c:1143 -msgid "in the variable REPLY. COMMANDS are executed after each selection" -msgstr "in the variable REPLY. COMMANDS are executed after each selection" - -#: builtins.c:1144 -msgid "until a break command is executed." -msgstr "until a break command is executed." - -#: builtins.c:1150 -msgid "Execute PIPELINE and print a summary of the real time, user CPU time," -msgstr "Execute PIPELINE and print a summary of the real time, user CPU time," - -#: builtins.c:1151 -msgid "and system CPU time spent executing PIPELINE when it terminates." -msgstr "and system CPU time spent executing PIPELINE when it terminates." - -#: builtins.c:1152 -msgid "The return status is the return status of PIPELINE. The `-p' option" -msgstr "" -"The return status is the return status of PIPELINE. The ‘-p’ option" - -#: builtins.c:1153 -msgid "prints the timing summary in a slightly different format. This uses" -msgstr "prints the timing summary in a slightly different format. This uses" - -#: builtins.c:1154 -msgid "the value of the TIMEFORMAT variable as the output format." -msgstr "the value of the TIMEFORMAT variable as the output format." - -#: builtins.c:1160 -msgid "Selectively execute COMMANDS based upon WORD matching PATTERN. The" -msgstr "Selectively execute COMMANDS based upon WORD matching PATTERN. The" - -#: builtins.c:1161 -msgid "`|' is used to separate multiple patterns." -msgstr "‘|’ is used to separate multiple patterns." - -#: builtins.c:1167 -msgid "" -"The if COMMANDS are executed. If the exit status is zero, then the then" -msgstr "" -"The if COMMANDS are executed. If the exit status is zero, then the then" - -#: builtins.c:1168 -msgid "" -"COMMANDS are executed. Otherwise, each of the elif COMMANDS are executed" -msgstr "" -"COMMANDS are executed. Otherwise, each of the elif COMMANDS are executed" - -#: builtins.c:1169 -msgid "" -"in turn, and if the exit status is zero, the corresponding then COMMANDS" -msgstr "" -"in turn, and if the exit status is zero, the corresponding then COMMANDS" - -#: builtins.c:1170 -msgid "" -"are executed and the if command completes. Otherwise, the else COMMANDS" -msgstr "" -"are executed and the if command completes. Otherwise, the else COMMANDS" - -#: builtins.c:1171 -msgid "" -"are executed, if present. The exit status is the exit status of the last" -msgstr "" -"are executed, if present. The exit status is the exit status of the last" - -#: builtins.c:1172 -msgid "command executed, or zero if no condition tested true." -msgstr "command executed, or zero if no condition tested true." - -#: builtins.c:1178 builtins.c:1185 -msgid "Expand and execute COMMANDS as long as the final command in the" -msgstr "Expand and execute COMMANDS as long as the final command in the" - -#: builtins.c:1179 -msgid "`while' COMMANDS has an exit status of zero." -msgstr "‘while’ COMMANDS has an exit status of zero." - -#: builtins.c:1186 -msgid "`until' COMMANDS has an exit status which is not zero." -msgstr "‘until’ COMMANDS has an exit status which is not zero." - -#: builtins.c:1192 -msgid "Create a simple command invoked by NAME which runs COMMANDS." -msgstr "Create a simple command invoked by NAME which runs COMMANDS." - -#: builtins.c:1193 -msgid "Arguments on the command line along with NAME are passed to the" -msgstr "Arguments on the command line along with NAME are passed to the" - -#: builtins.c:1194 -msgid "function as $0 .. $n." -msgstr "function as $0 .. $n." - -#: builtins.c:1200 -msgid "Run a set of commands in a group. This is one way to redirect an" -msgstr "Run a set of commands in a group. This is one way to redirect an" - -#: builtins.c:1201 -msgid "entire set of commands." -msgstr "entire set of commands." - -#: builtins.c:1207 -msgid "This is similar to the `fg' command. Resume a stopped or background" -msgstr "" -"This is similar to the ‘fg’ command. Resume a stopped or background" - -#: builtins.c:1208 -msgid "job. If you specifiy DIGITS, then that job is used. If you specify" -msgstr "job. If you specifiy DIGITS, then that job is used. If you specify" - -#: builtins.c:1209 -msgid "WORD, then the job whose name begins with WORD is used. Following the" -msgstr "WORD, then the job whose name begins with WORD is used. Following the" - -#: builtins.c:1210 -msgid "job specification with a `&' places the job in the background." -msgstr "job specification with a ‘&’ places the job in the background." - -#: builtins.c:1216 -msgid "The EXPRESSION is evaluated according to the rules for arithmetic" -msgstr "The EXPRESSION is evaluated according to the rules for arithmetic" - -#: builtins.c:1217 -msgid "evaluation. Equivalent to \"let EXPRESSION\"." -msgstr "evaluation. Equivalent to “let EXPRESSION”." - -#: builtins.c:1223 -msgid "" -"Returns a status of 0 or 1 depending on the evaluation of the conditional" -msgstr "" -"Returns a status of 0 or 1 depending on the evaluation of the conditional" - -#: builtins.c:1224 -msgid "" -"expression EXPRESSION. Expressions are composed of the same primaries used" -msgstr "" -"expression EXPRESSION. Expressions are composed of the same primaries used" - -#: builtins.c:1225 -msgid "" -"by the `test' builtin, and may be combined using the following operators" -msgstr "" -"by the ‘test’ builtin, and may be combined using the following " -"operators" - -#: builtins.c:1227 -msgid "\t( EXPRESSION )\tReturns the value of EXPRESSION" -msgstr "\t( EXPRESSION )\tReturns the value of EXPRESSION" - -#: builtins.c:1228 -msgid "\t! EXPRESSION\tTrue if EXPRESSION is false; else false" -msgstr "\t! EXPRESSION\tTrue if EXPRESSION is false; else false" - -#: builtins.c:1229 -msgid "\tEXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false" -msgstr "\tEXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false" - -#: builtins.c:1230 -msgid "\tEXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false" -msgstr "\tEXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false" - -#: builtins.c:1232 -msgid "" -"When the `==' and `!=' operators are used, the string to the right of the" -msgstr "" -"When the ‘==’ and ‘!=’ operators are used, the string to the " -"right of the" - -#: builtins.c:1233 -msgid "operator is used as a pattern and pattern matching is performed. The" -msgstr "operator is used as a pattern and pattern matching is performed. The" - -#: builtins.c:1234 -msgid "&& and || operators do not evaluate EXPR2 if EXPR1 is sufficient to" -msgstr "&& and || operators do not evaluate EXPR2 if EXPR1 is sufficient to" - -#: builtins.c:1235 -msgid "determine the expression's value." -msgstr "determine the expression's value." - -#: builtins.c:1241 -msgid "BASH_VERSION Version information for this Bash." -msgstr "BASH_VERSION Version information for this Bash." - -#: builtins.c:1242 -msgid "CDPATH A colon separated list of directories to search" -msgstr "CDPATH A colon separated list of directories to search" - -#: builtins.c:1243 -msgid "\t\twhen the argument to `cd' is not found in the current" -msgstr "\t\twhen the argument to ‘cd’ is not found in the current" - -#: builtins.c:1244 -msgid "\t\tdirectory." -msgstr "\t\tdirectory." - -#: builtins.c:1245 -msgid "GLOBIGNORE\tA colon-separated list of patterns describing filenames to" -msgstr "GLOBIGNORE\tA colon-separated list of patterns describing filenames to" - -#: builtins.c:1246 -msgid "\t\tbe ignored by pathname expansion." -msgstr "\t\tbe ignored by pathname expansion." - -#: builtins.c:1248 -msgid "" -"HISTFILE The name of the file where your command history is stored." -msgstr "" -"HISTFILE The name of the file where your command history is stored." - -#: builtins.c:1249 -msgid "HISTFILESIZE The maximum number of lines this file can contain." -msgstr "HISTFILESIZE The maximum number of lines this file can contain." - -#: builtins.c:1250 -msgid "HISTSIZE The maximum number of history lines that a running" -msgstr "HISTSIZE The maximum number of history lines that a running" - -#: builtins.c:1251 -msgid "\t\tshell can access." -msgstr "\t\tshell can access." - -#: builtins.c:1253 -msgid "HOME The complete pathname to your login directory." -msgstr "HOME The complete pathname to your login directory." - -#: builtins.c:1254 -msgid "HOSTNAME\tThe name of the current host." -msgstr "HOSTNAME\tThe name of the current host." - -#: builtins.c:1255 -msgid "HOSTTYPE The type of CPU this version of Bash is running under." -msgstr "HOSTTYPE The type of CPU this version of Bash is running under." - -#: builtins.c:1256 -msgid "IGNOREEOF Controls the action of the shell on receipt of an EOF" -msgstr "IGNOREEOF Controls the action of the shell on receipt of an EOF" - -#: builtins.c:1257 -msgid "\t\tcharacter as the sole input. If set, then the value" -msgstr "\t\tcharacter as the sole input. If set, then the value" - -#: builtins.c:1258 -msgid "\t\tof it is the number of EOF characters that can be seen" -msgstr "\t\tof it is the number of EOF characters that can be seen" - -#: builtins.c:1259 -msgid "\t\tin a row on an empty line before the shell will exit" -msgstr "\t\tin a row on an empty line before the shell will exit" - -#: builtins.c:1260 -msgid "\t\t(default 10). When unset, EOF signifies the end of input." -msgstr "\t\t(default 10). When unset, EOF signifies the end of input." - -#: builtins.c:1261 -msgid "MACHTYPE\tA string describing the current system Bash is running on." -msgstr "MACHTYPE\tA string describing the current system Bash is running on." - -#: builtins.c:1262 -msgid "MAILCHECK\tHow often, in seconds, Bash checks for new mail." -msgstr "MAILCHECK\tHow often, in seconds, Bash checks for new mail." - -#: builtins.c:1263 -msgid "MAILPATH\tA colon-separated list of filenames which Bash checks" -msgstr "MAILPATH\tA colon-separated list of filenames which Bash checks" - -#: builtins.c:1264 -msgid "\t\tfor new mail." -msgstr "\t\tfor new mail." - -#: builtins.c:1265 -msgid "OSTYPE\t\tThe version of Unix this version of Bash is running on." -msgstr "OSTYPE\t\tThe version of Unix this version of Bash is running on." - -#: builtins.c:1266 -msgid "PATH A colon-separated list of directories to search when" -msgstr "PATH A colon-separated list of directories to search when" - -#: builtins.c:1267 -msgid "\t\tlooking for commands." -msgstr "\t\tlooking for commands." - -#: builtins.c:1268 -msgid "PROMPT_COMMAND A command to be executed before the printing of each" -msgstr "PROMPT_COMMAND A command to be executed before the printing of each" - -#: builtins.c:1269 -msgid "\t\tprimary prompt." -msgstr "\t\tprimary prompt." - -#: builtins.c:1270 -msgid "PS1 The primary prompt string." -msgstr "PS1 The primary prompt string." - -#: builtins.c:1271 -msgid "PS2 The secondary prompt string." -msgstr "PS2 The secondary prompt string." - -#: builtins.c:1272 -msgid "PWD\t\tThe full pathname of the current directory." -msgstr "PWD\t\tThe full pathname of the current directory." - -#: builtins.c:1273 -msgid "SHELLOPTS\tA colon-separated list of enabled shell options." -msgstr "SHELLOPTS\tA colon-separated list of enabled shell options." - -#: builtins.c:1274 -msgid "TERM The name of the current terminal type." -msgstr "TERM The name of the current terminal type." - -#: builtins.c:1275 -msgid "TIMEFORMAT\tThe output format for timing statistics displayed by the" -msgstr "TIMEFORMAT\tThe output format for timing statistics displayed by the" - -#: builtins.c:1276 -msgid "\t\t`time' reserved word." -msgstr "\t\t‘time’ reserved word." - -#: builtins.c:1277 -msgid "auto_resume Non-null means a command word appearing on a line by" -msgstr "auto_resume Non-null means a command word appearing on a line by" - -#: builtins.c:1278 -msgid "\t\titself is first looked for in the list of currently" -msgstr "\t\titself is first looked for in the list of currently" - -#: builtins.c:1279 -msgid "\t\tstopped jobs. If found there, that job is foregrounded." -msgstr "\t\tstopped jobs. If found there, that job is foregrounded." - -#: builtins.c:1280 -msgid "\t\tA value of `exact' means that the command word must" -msgstr "\t\tA value of ‘exact’ means that the command word must" - -#: builtins.c:1281 -msgid "\t\texactly match a command in the list of stopped jobs. A" -msgstr "\t\texactly match a command in the list of stopped jobs. A" - -#: builtins.c:1282 -msgid "\t\tvalue of `substring' means that the command word must" -msgstr "\t\tvalue of ‘substring’ means that the command word must" - -#: builtins.c:1283 -msgid "\t\tmatch a substring of the job. Any other value means that" -msgstr "\t\tmatch a substring of the job. Any other value means that" - -#: builtins.c:1284 -msgid "\t\tthe command must be a prefix of a stopped job." -msgstr "\t\tthe command must be a prefix of a stopped job." - -#: builtins.c:1287 -msgid "histchars Characters controlling history expansion and quick" -msgstr "histchars Characters controlling history expansion and quick" - -#: builtins.c:1288 -msgid "\t\tsubstitution. The first character is the history" -msgstr "\t\tsubstitution. The first character is the history" - -#: builtins.c:1289 -msgid "\t\tsubstitution character, usually `!'. The second is" -msgstr "\t\tsubstitution character, usually ‘!’. The second is" - -#: builtins.c:1290 -msgid "\t\tthe `quick substitution' character, usually `^'. The" -msgstr "\t\tthe ‘quick substitution’ character, usually ‘^’. The" - -#: builtins.c:1291 -msgid "\t\tthird is the `history comment' character, usually `#'." -msgstr "\t\tthird is the ‘history comment’ character, usually ‘#’." - -#: builtins.c:1293 -msgid "HISTIGNORE\tA colon-separated list of patterns used to decide which" -msgstr "HISTIGNORE\tA colon-separated list of patterns used to decide which" - -#: builtins.c:1294 -msgid "\t\tcommands should be saved on the history list." -msgstr "\t\tcommands should be saved on the history list." - -#: builtins.c:1306 -msgid "+N\tRotates the stack so that the Nth directory (counting" -msgstr "+N\tRotates the stack so that the Nth directory (counting" - -#: builtins.c:1307 -msgid "\tfrom the left of the list shown by `dirs', starting with" -msgstr "\tfrom the left of the list shown by ‘dirs’, starting with" - -#: builtins.c:1308 builtins.c:1312 -msgid "\tzero) is at the top." -msgstr "\tzero) is at the top." - -#: builtins.c:1310 -msgid "-N\tRotates the stack so that the Nth directory (counting" -msgstr "-N\tRotates the stack so that the Nth directory (counting" - -#: builtins.c:1311 -msgid "\tfrom the right of the list shown by `dirs', starting with" -msgstr "\tfrom the right of the list shown by ‘dirs’, starting with" - -#: builtins.c:1314 -msgid "-n\tsuppress the normal change of directory when adding directories" -msgstr "-n\tsuppress the normal change of directory when adding directories" - -#: builtins.c:1315 -msgid "\tto the stack, so only the stack is manipulated." -msgstr "\tto the stack, so only the stack is manipulated." - -#: builtins.c:1317 -msgid "dir\tadds DIR to the directory stack at the top, making it the" -msgstr "dir\tadds DIR to the directory stack at the top, making it the" - -#: builtins.c:1318 -msgid "\tnew current working directory." -msgstr "\tnew current working directory." - -#: builtins.c:1332 -msgid "+N\tremoves the Nth entry counting from the left of the list" -msgstr "+N\tremoves the Nth entry counting from the left of the list" - -#: builtins.c:1333 -msgid "\tshown by `dirs', starting with zero. For example: `popd +0'" -msgstr "" -"\tshown by ‘dirs’, starting with zero. For example: ‘popd +0’" - -#: builtins.c:1334 -msgid "\tremoves the first directory, `popd +1' the second." -msgstr "\tremoves the first directory, ‘popd +1’ the second." - -#: builtins.c:1336 -msgid "-N\tremoves the Nth entry counting from the right of the list" -msgstr "-N\tremoves the Nth entry counting from the right of the list" - -#: builtins.c:1337 -msgid "\tshown by `dirs', starting with zero. For example: `popd -0'" -msgstr "" -"\tshown by ‘dirs’, starting with zero. For example: ‘popd -0’" - -#: builtins.c:1338 -msgid "\tremoves the last directory, `popd -1' the next to last." -msgstr "\tremoves the last directory, ‘popd -1’ the next to last." - -#: builtins.c:1340 -msgid "-n\tsuppress the normal change of directory when removing directories" -msgstr "-n\tsuppress the normal change of directory when removing directories" - -#: builtins.c:1341 -msgid "\tfrom the stack, so only the stack is manipulated." -msgstr "\tfrom the stack, so only the stack is manipulated." - -#: builtins.c:1363 -msgid "+N\tdisplays the Nth entry counting from the left of the list shown by" -msgstr "+N\tdisplays the Nth entry counting from the left of the list shown by" - -#: builtins.c:1364 builtins.c:1367 -msgid "\tdirs when invoked without options, starting with zero." -msgstr "\tdirs when invoked without options, starting with zero." - -#: builtins.c:1366 -msgid "-N\tdisplays the Nth entry counting from the right of the list shown by" -msgstr "" -"-N\tdisplays the Nth entry counting from the right of the list shown by" - -#: builtins.c:1374 -msgid "Toggle the values of variables controlling optional behavior." -msgstr "Toggle the values of variables controlling optional behavior." - -#: builtins.c:1375 -msgid "The -s flag means to enable (set) each OPTNAME; the -u flag" -msgstr "The -s flag means to enable (set) each OPTNAME; the -u flag" - -#: builtins.c:1376 -msgid "unsets each OPTNAME. The -q flag suppresses output; the exit" -msgstr "unsets each OPTNAME. The -q flag suppresses output; the exit" - -#: builtins.c:1377 -msgid "status indicates whether each OPTNAME is set or unset. The -o" -msgstr "status indicates whether each OPTNAME is set or unset. The -o" - -#: builtins.c:1378 -msgid "option restricts the OPTNAMEs to those defined for use with" -msgstr "option restricts the OPTNAMEs to those defined for use with" - -#: builtins.c:1379 -msgid "`set -o'. With no options, or with the -p option, a list of all" -msgstr "‘set -o’. With no options, or with the -p option, a list of all" - -#: builtins.c:1380 -msgid "settable options is displayed, with an indication of whether or" -msgstr "settable options is displayed, with an indication of whether or" - -#: builtins.c:1381 -msgid "not each is set." -msgstr "not each is set." - -#: builtins.c:1387 -msgid "printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT" -msgstr "" -"printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT" - -#: builtins.c:1388 -msgid "is a character string which contains three types of objects: plain" -msgstr "is a character string which contains three types of objects: plain" - -#: builtins.c:1389 -msgid "" -"characters, which are simply copied to standard output, character escape" -msgstr "" -"characters, which are simply copied to standard output, character escape" - -#: builtins.c:1390 -msgid "sequences which are converted and copied to the standard output, and" -msgstr "sequences which are converted and copied to the standard output, and" - -#: builtins.c:1391 -msgid "" -"format specifications, each of which causes printing of the next successive" -msgstr "" -"format specifications, each of which causes printing of the next successive" - -#: builtins.c:1392 -msgid "argument. In addition to the standard printf(1) formats, %b means to" -msgstr "argument. In addition to the standard printf(1) formats, %b means to" - -#: builtins.c:1393 -msgid "expand backslash escape sequences in the corresponding argument, and %q" -msgstr "" -"expand backslash escape sequences in the corresponding argument, and %q" - -#: builtins.c:1394 -msgid "means to quote the argument in a way that can be reused as shell input." -msgstr "" -"means to quote the argument in a way that can be reused as shell input." - -#: builtins.c:1401 -msgid "For each NAME, specify how arguments are to be completed." -msgstr "For each NAME, specify how arguments are to be completed." - -#: builtins.c:1402 -msgid "If the -p option is supplied, or if no options are supplied, existing" -msgstr "If the -p option is supplied, or if no options are supplied, existing" - -#: builtins.c:1403 -msgid "completion specifications are printed in a way that allows them to be" -msgstr "completion specifications are printed in a way that allows them to be" - -#: builtins.c:1404 -msgid "reused as input. The -r option removes a completion specification for" -msgstr "reused as input. The -r option removes a completion specification for" - -#: builtins.c:1405 -msgid "each NAME, or, if no NAMEs are supplied, all completion specifications." -msgstr "" -"each NAME, or, if no NAMEs are supplied, all completion specifications." - -#: builtins.c:1413 -msgid "Display the possible completions depending on the options. Intended" -msgstr "Display the possible completions depending on the options. Intended" - -#: builtins.c:1414 -msgid "" -"to be used from within a shell function generating possible completions." -msgstr "" -"to be used from within a shell function generating possible completions." - -#: builtins.c:1415 -msgid "If the optional WORD argument is supplied, matches against WORD are" -msgstr "If the optional WORD argument is supplied, matches against WORD are" - -#: builtins.c:1416 -msgid "generated." -msgstr "generated." diff --git a/po.orig/en@quot.gmo b/po.orig/en@quot.gmo deleted file mode 100644 index 62cf0807cb661d4b41814bb5af653910ad3f2acf..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 118583 zc-pLe2b@$z^8Z`7Q$aoRnNEEoFd#EaFcZWDmY^ir1w{mQcINHw$n4BAVPO#g5wl{> zSxlHC2#Prio@Y37KGT`w&+NadzSZybn;kIRpU-EhdHp(6cUM_lL+oYFhg)pf~OPgP4MvvDE~ddeF&~s<2aiT+^+`t#@C>}V{1^)DuM$DK2LCO zf}7RSAHn?zZb9%+g8doaT9mtv;BExpBDfdhHPLbU5F9fR<>yUA`f`PzO+>lKB;Y%B z67V^a;HCsmn}q&fJ_-1*Ah;pH4=17hZwST+b~?y$`V!phAdF{<;N}F6QFtD~Z3td} z5c=~l!R`br4n}&9gVAmk!5s)5NU(}vR^crKw^&mq{4 z;4_C{y#G1{<@cF_=gCtr-X{}el6pkpUk=553?aA`!Mwub3I2`XC5Hl^8wqwLcn`r* z1m7Xpi(qW3;|%Be363Us=~TS`gkTRI|7jSnx@kzid>Y34V}jjyoTpz{n)w*{9{}b#^WS~Pc?yFH%&Rtw%lF{^E5q$c8^aX-<>J6^8>*V1ou7+^s?YE zq+fX$=(jr3q)A_cZ4Fh&1wFK`=t_-89$<(+oPfuo>+=(~NmuFN1O2GlTMTGRSv%2K4`826%SL;(0_C?aj`jo)uZ(`AHV* zu3rnrG2H^Zm$YELJ=TJC_(2Qs+kPh2|Nb*E{s+&*dOwHY_DlyeF^`YTM7x{h(B6JI z@Q*?c>-O{<-anZG-aqBge!o1{VJeULJ1ejK&VydoD`0$j6fn<+6wt5J3+TtQ1(e^o zi06G2=8G7&8;an!uNA=;zE;?|70_)(yL+}`-R4^%r&hIszCIv$0KtuBfi4c71-vhv zh4dF@0pDF_gI^pp8}qneHu`zvY~b-9P2aK&<29rW>*+*=&$MAYx1EFf_LzhEQ*%)6 z4t;)S4)XUt9Q53JIQYh?hwFIg^Tu=0{&<2rvfP*pet+d$%=5~*7?+m`b|U!2T*$#6 zHGShF0J|z2a0KRk!V#EP?+EbKqmID(KH~_;*Q+)Ey$b(*1jgkPf?Zg?%mW_#%!6DT zI}ht)hQib5VO~}!{O3H-;k)zDk1gk;-reRy&h0-Rhs5%|JQ|R@9#$e-^!za*T|!=t`kS0{h3FhzEh6EJlv$||2|6Bjl#~0z@Obk z$k%%j=ylQ}jL!*+fZx@NFwYMzLOU-m0{?n%5%|HbM-wmR_KyaiUwSn3fOn6^I&+T! zKWjP$`L8+#bpOUNSg+lWMgGLGSWg!p3;y)}vEXyvkHb2caU7m+RQT0#sAuovfzSNo z(cXi{qn-^4fAyFX_$|zPDA@|pN4+-I34w*PRID% zcskns;B?SMk28>e-!njmi_So~GtWS|=g&a7?aoB|wPzy#*=K@YUp*7!`kBJr&Vv3l z>nz~;fWp6?4LI^_^z+2Cp_e{!Ht6w%v(e9A&ITUU=b)X5=OF!pb5QQ>bAaE@=K`Pl zbHOjK(C3%WMY(^RM{~^Y&jVh!oQHb8Q8@5?%->Px1FzNRqueGJpq_~e&$$5kU%CM8 zx));p;uoUci!Vg^w=YEgZWm$P8ZS~k|03jj_#)7Kr;E{#VHYFcQ5WO=V;5uoHo64$ zjJyQtCtQMc`;oxa3mEnH85J-(N2SzZ-QK@H<4|MVF!co0oxJ zcf1^UG%38{a>&syFNZ#~!xF5M{gGT^R7le-?-7JO#mwOGeb z==0ClLe5lQhxYT=Vg6QJhk5wsI`pIJdho%cu1CFhUyt^k8!)d!Z$SA8H-H|`y#e{( zx&eHAyBn47-H7p}y z_b!t3Bd=wMX2K z_V&0Rb^WX9S?t?1v$z zE`1pFJgV@^hoLv_@Ce|DM}YTCh37m1J#f_{7_ZkAZu%(X){sZR2WCGCx;^$$(D4-t zA9)nx{=uV|$BiFT`g{!IcJ5>7-)oO4-8~NaYtyB|M}`P}gdj92mr z)PLL)sQ-p1Fb-clfqcE6M84va7>DzoMEdiIQ^4!Or%>;kPhnj}|B3ZCOySIbBLBtz z1YN!NPqmZ%6XiB|8uVHFH2Tx@G}h}$Ph*|@^J$F#w*S)o`oExW&-oYfou%-_e*y39 zpMia1>NA*+)1N^*FFk{C==Ln|s(lvYbmX&G_t!iNd)iCSqMbLMgn7dr)OUWKiKvS z2HG`4|^N+U;j4fcFo%u-w)o#{QmMb=4X?4F#ZR> z1A1?K2mM|24)poc-oZFs@ec5L^c|Gn=s#G;JNyUu4*n0uWy*h0{<8l7j~oAk{(i3S zqwiu}t>K0KH(n5Aojp5aV>{hoF~6g;#%w@qGV7;N$!k>DB)Qo=5)|^l|Hdf!`PZ z#r*E|5yoNmN04jhe}wcUA0gj=J_7!`ehfOzeXR2BW8nSe$C#JhKLK9*e}eg)_zA{6 z{)y7_Czy{_pTN%X^e2!n&Zm%HyMBs(PWu%6W%j4Q|B_EZA8&jL`Lg+E=+DT{RR8-7 z>+H_YK;PeL`Uan)`~jb%KPP?;{8oPsykGbnbhGUj%E!OJxHo)(`M=={$d{F0U>$w@ z1^T_`mzd|nzr^_5{3Y7^_DfwyUx9DU`wH*x`U>q=d<}ete2w=DzXl%nevNUc_y+a# z`UdHlZ;=1yZ!n&p>-(R+!8{KB7UMhbThQ5M-=f^R-=e+9{{c4rAM!8#Kiwx2T%Y^< z9q6ggcPO9!4&!k1cj*78-(enp)buXjV;$Cg4?X4Z?;$@=*XNbrWBvW>d(6+L-$Pz* z{{#3#{~u6(`VW|gIX|F3NB;mif9wa~x!I2xxA8yX`RpH2?)e|lpU;0pKl}a!`Ir9* z&&U3Rb@}*Dn1`)?M!ybGc(KB_e@1`0|AP9GzkqJ8`~~$a{{{7Y|BIdr{0e**{|bE1 zQ~2tyz;7p~0{b|ET;F*F2aA}fkonoJ0_lSYa=Cc~x!nB(S^sl7R7g9UDx6G^`+qq> z#`6P$j8FHD6@p)`Bhqgt$m{7#f=tJM{Y!=Lu`LO5Kl}Uz?G^~~Jl;W&<;SZ8nGbdN zYlY~AeF?JsolcPTtaAwRdV7i>(|^T!6`~jJMv&)qn!*zaGX301koAwR2{IqpW_{pU zxjyi0Ss&wYll#7>D&b0gmp3aXY;e@cCCK z)cX@bmSa10Mt=q?Z0-#FFCfV4bqzt5-yJr@{A@>%*YzO;nU1d55c6>-L0*rKX}&Kv zL_7U9st`UlaU-<9cq7c`ijC0!pEkmHxEogpA32mDuk$4vV;tTjIGy&hJN^yj=WS9U z>t^XD!0SGOyzXAy1m)f($nv(!rWN4#n__+&H${6#ZHoE2njrJj*EdD^ziozc+i!;c zOxz6lJc4qbvl-fZW;5XX-_6jk?weQ0I+(sW#$)E@pzEVIM}7AZWIp}F<`|dCEhD;`-V*pO-V*rSN|5F616!j1&u$6)|4Weh+;&@`{q9>~9{X>F zd2Axc{N?>68DCc5?(-KUw&9(A%X7-zLaPhKVq z8C@_=w`=;33U}HC^EY%CJTKe@eC(=Su>StL3+8+0t`(wh?a>wa59*3~&+ZDo{6<&g z|64cATXi>#b8R>D@6>J>pJ%!u-&Wnx-stYg*U}y9@%ru<|4$U|6#=~-Ns#rdWf9EN z(-E}$Lj?8r>;Zb5L6G&nr9CkJUugPvJwcZT6Xf&flX{}PmkF}m-F{c(uiF)J;`m*` zFP819^Svwb@6fA4^oMD^(Ec&KKp%JX!n%LI7wBZGDB3$9ig}(N#kk%SMftCy$hUnA z^nYLscrMiE`(kMCix}$ZR|z~DDv|HHN{r)&l~@;UZ>+cK-dKlTZ{T-sZ>;}Edt=_7 z?~V1oWgqb6NFU7O&^~DQq&{eGRUhz=FZzJbZqgU;NA?BYZGF-HO?|Nr-|LI@y?H;B zAJ-4`a#TNz&z1c^uP^jNzc$$o{CWItD1U-JFH`vWZWy;+cL%>cWOwj|nF^0pc+u`? z_qN?ZFQ4xYIn{p;(3iId*81iqK8VX|E#9Jw;%eweiiz=V-?!%Uxj>!RAD}v_4$Y@Iuh&X!;vZnM`0XC zi~`@8HVXMK8HM`a9|gX)>;BN=rtA+q8u!QhtM-Q+_;7!;-}3kQ|BNvhhik{+{rh9kUSurZA2t@xOUI(!kH@0leaAuG z%^rvME5~8}ejbN;+G9NCW9WFaKYu*>{qT6yv)+Lip92m=yGI`gx_J0N&(x#bhk{udLFf43UYYg-NG<0OSo*Fb;TvKDwwS9rO?cWcql9uuLLHckXR z7AB&f7fb{mZ%;%!Uuyc^lTdE{B;a??B;fPwB=F0sgOGog!c_#>?%45Q;5Ff3)N}U1 z!0)w#F@HTKBYoy%l)G~>>itFGeup6c!b8yRnnN&uf184O514{}oiYXapP7Pj+wxG= z=MP1`+@YZRWrw04UmS{jeWrpgi&HUwtEQr!@28^NfN5B_^QYl?@ifriGt)4Sn@-1i zA3q&(CNmxRR!#@M`(--t+oTR~LLJJVRR?-~whnmg5C^P}Lyle@hd%U79P8xQIQrkG z9`(#rczZp{{a-!CZ(suH3lkW(hZAUT(O^{!krZ7K)Q&`8x>hsDJ^nwnDq5VFGVgBYEhIv?a82Zs+2KeBx87Oze47C67 z49x2WY4mUFH0W_^8u_nEV_x4#gFb)O_rsd;e6qslnn7pVXDS@(nzMTb<8)yb`CrIl z{M{DJ$FvsUyR-%Pebu7;V`hb%KM$RWal3FP`hU+%jL#=Cp+CoRn8(9&X#c*P?(6dC z*BF8avi!zp;Szb7KK=^rHgg+^+@jqpgdWuUHZCczjXykRtLeDMDV| zRmAwbsQJGwVqdpyE9CCrR>;M=R*d_CR;-7|T2+p=qCa1^LJu7>3;1RTPGkN(3wp$6 zvsDfe9M5uSHpcg**;p4_wqcyA+tB|)8~VGv4fuZ7ru07t<1}^-%AGj}eD&cu(Bpoc zgZ4WeuKVM|QO_9)pHsNiT;MZlF2?bKxjGJW@&4PnnD@Poz&tNF0`)#|1m^K?^D4w{ zK6W1H|DbuGgVa2+I7bG5=U4(gBx=8nPi$FhH9gTh4 z9!En?O+6a*EK+#W(ZKU%g?~8)bXcjd_88FPoMY6!r*O?N7{6bS0Uy}oSkU#bV^J=C zEY{(%$70-<9t%2t>R9ya@5f=>rXGj+zFeO_Iu3lS&+!=l#^W*n#pBWLisLb#A03Z= z^*sUgPd)+p=AD3Xc;E!&b56v#4nGm|ci4%btFuqUc)WQc@~?lAu7i`n{|YBzeD6C6 z{dnUfUbd1C1XFz^doq=)6oB=$~Is^8!N6tVytIq&G+44-R=W%C( zeos0R{BZS|px?L8#Q60-3-sH37VNB7o(2AR^I0hW(pkXs?`LD&CZCP*xae%8->C45 zvoXKBpM&>v&Ov)8o&))F**R$M<#Rw++nkGXQ_od>`&`wJ74|$2>8bND9=D!{dHVi5 ztnJ#^|d9y=Py^F{HQCijt{v4<1qIMjLU^rp#0lc0FTeEfF9KM zO1y8r66@l&E3qDay%OUUy$a)1ybAf2U4?o6=_>SpzpJs1j=LIiVfodds}9$ool)1I zofEIY`$w-qy_+vZzo#t4`{GiJ(=AIe4|gm4X(`5Y;I-)I#A}g${uPq+OOB4{07&n+`b<8pK(3t^p)%J{_i&c?L-|0rS!QM%X#_xe@XubtClTGj2pbAH5Ot_12BRe}kJqA0uyqd^!9k^yikF zK<}^Lgmt#_&3b-vv+jRxM)^B$MnAv18TjpU3-BIx3-CEcpU=AmD=-fytw6oEt$_UaM&YI_!54b1#PdNbv0ig4F+XRlRC&1) z{NWAF_m{gc4?EojdffFc(0TDL;Cato7`LDGdFb6JxA1O^??rcG+~2+%@-Mmy`S)9e zb$QGxkE$hro9~c}Vr{hk?(ShcS@i5lY8xMoN zH-7|lFzgZZW5FYMf7c^;|LG&p3*AQ{?+;Ko_fhoohDSjMpF9dauI>aNB;EV;9oaB4*VZ|9P_;46Bv()Phk8mcmnvm{sijn^d$Iq z^hxNsqZQ7168K;9B-ZQ8PhxyFS&jO8tycNC8g#T`HRfZ@YK+rstI@yp*PxvdYrw}2 zTZ8tOtN}hxt%3fv*;5$DJ)Tnj^Ay(koll{E-w>>Df`9*40l$sW1P@_-uOqE#`ipc3 z@+4VbqvsXkf8aP5^ErUN8%581Q`rFo)67Q+p3eFf<^S4h=tccKuLJxzR}=h%{^ru( zL@IL&!5V^bf;SL6P}@I{?{8bUv?#oVc^}pJ9lbk8-@i=Hmso8Mq~9}{XIlMTNqJi| z|JM$DaBk2tpAr0v{;nZd%k)8ci3FUd`0Ryn=|;cZ3UR}8Xh}J1=zT{@@81#SNc=es z^tXy>oZg*IfB&Mt=h*hZ^Vb3Xf-?x7L4POF-w}!rZE2mGwEeRv?Ew1y6~XZYV-@g+ z*+TmRqN5Y~x0Lx5>r_<7DfG_k0ACgUcVq|n5z=yTcJ9FbDvnc6 zzrSH#MS0)p;FSIMD$97vcO~VS#Oqh_ZRrRUZH`Cu?lr~Mr-~fVGupUoo|780q zuX*}ClJf6I@466NMSmx2{!i)m-{`M{*8e`ik1NES<@|+y@7)piY~R!OJt_S``aPY} ztNDHcpH2FU;TW;o8-yOwkp5D!-ch@rCVI7F|Z!P~J!R@Vi zCACP_{{l*HW4TI@Sc-FR2l%O7t@Zzx;Jf;JRtNYDAH-wGeRSZfdmYOot@{!7rJ?s5 z)5}4Wb`8O)tY1;uEY?E^vfm2pOn1=x^XUES^n9MSk>x$B)#r0Gy_M^)5I02mcOT_B z$m$Qv=1VL(_)P1#hw|LVdMeKu{r#xvNv$`obrg9l>Gxdv+g0;0-%Zi)zf#_>37*D$ zg!kH9C#B_h{Is6?DDAKGcQ8E<*7E*=avw2TXzc1GM zrqb^n^mjk1V~N$*ewzLTuQjdf5_-Q0{XMVGLkM0?&&OC}@;Rk#M}J3iKd6qAHJ#`T%gvY)+=%|(R$O)=_&z-!Ol1~u zIW2pGHP1PE-?bxrz~|HNrS$F)t?xsHKT+CKR=Yzfy_M3=q_p+u?|RmEtvauxv?r|m zTX%p@XsjcAO#jxA{o!aF>F+U?HT3+swsk+HT}Xd3=y|->S*x&>(hjG*vj|>O0sqFo zXd8#?o;4g_s*;rvd+L`OMi2;?nQ>iD2=uS&OP+}0R6sz^PT)=8@8db001GT4vEkC#&AO6z)#>=kY#^bu_K>7%FqF{@zo|kUH<|!+h0& z|Md&>+>M@hr1#&@?}7CDL*8Eyyoq%;)-UMyMFcnQDAy}xUoctQol0ph(ECL^H&p&3 z`rCy5rYgRpJFpKi(LC#=io@~rJb`t<3fx8LsCgq+e`oTXQF_+&g`OWQ(do{j_m|P% zlk{$l)^P>vsq}mj!CML5Nag=d@Oxg*TJBxu70jnPzz17+zQzB~uD~6eHY%5)zss4H zIbHLNrnD1yFUNFRf%~E6-~HOheFzTK{1XY@$@9x{o_-%nFv+?f{oSs4E}%Ld;&n#v ze$u-B#rs`DV{GH1cfZi{1cGldJ?lHR8(qQcx+D8#le*IpcTPnvFg;Vg2e`cEpGoj` z`a9Ob`(3K9nR%a)RcvG8e5_LvtmC=T{Pm2#MT38G=%SMR+ej@XHRkXYmhh=N5vOT5Zgu`W9O_yhYE)@qW7^ zOd}C`Ud}oa(k#1p z?a}YNw)Z6OaUJ;VZ*J0bEJrZU;&v>&zU6%t?`xUAY8#hPT6YWo_Z-}XnN9D{Wc)Q> zZOK0CQ+jtarPW$x=g{-1nr|D$<6eC?g7Q5gLyB<;cy(hP)WgE4PC0Y;LiC$pa znUPxr&(yq=>Gw-4zv=mWme=(AGuCJH{prjTsJ<=fZwCvvy^L*FX-9R`Vs`UvBv9Bs{0Ae|8M4V^n909zCj_|r#3CA_aS=T zKxC8$)AaYhDgD|GxHr{_^*$=s$ofP_+!gG= zdluez(L45~ko$aEc0+~dv)*C#twYHgbM^T`h5Iv)VtW?b2z5~THgt*+wnf1=R?bkWZRwoevtBB&F#_iiS##6`!b$jZ_V=}j|;B4I-@AdD$`Od^mpUMLN=DpHqz_PPAB?z zK=tIB>I2qla64@c7-_o;~>?={3ZQ z>4Mw0PtQu%J*dgcxW!D~D@5Jual_qwsxgylNO^g;(Bx6&gi-^r;1;Uf)_A(;aax@> zJDw;++-5JH;mq-Zlt^Too8we!RyLP(n~V7Zl^Qy3%$TaN!)oYf9d|S0=DfU@YxR(g zE3WrkYB)jr-k8 zp)8l-!JryiTBypyvh{hwrHV@O>}9-JR5F$3ny5tF&1GkCv+<1UHMbPF&5TC~QC<%{ zYVy))cUFr2^Jb@b>{5limu}#RZb;>*v2->&gBk*Dgm6d{b2%c0bQ_i8T!w^9{}~C> zjeM~_U&wI|D#(=(;*58u&CSwdPNzATTPn+RP+&wjf2P=6PuVDqiN>E9C4>ZZkcZjx zGE}f7muimF0Jr3_)M-Wo-Q-;HM8eApY9&KR)7g+M(nvEpUKI7xI~fTYuErd{1>H+; zQiUQ@et=8VE#`~yG)-RJ&Jn7ymdDrQB|>$Sl+xE2;(*Syvq~XUhM($Y7E_5Cu3bD* zw$*9cs+KdP!;6APCr$(6HKbC~N=f+iC0py%#E2_y`Py3^=y z?x0TbJhQE4!KjDbe9ul3yh1UT$p;)kXx7i+D0A#9%yHLUdBwM6GgMPb@z^!$_Kv#U zXzdWwOtqv50e%s6ld0BJUVh~~TI58G#A|!?N+qLiES5^rOypAWdg4$t&9PJ_LAj{f zs5~Y;eWVhUy;G-n5{x^_bXDNFmBxEf|6=qva3KA+@4kbgPN!J6yi2P(mL(3)nMfYQ zqHeEFor)P=WX-8eF;9)8i$vowqUT|fJK;|{KaFEv*ix8|8b~IjGObzki`Y}TttVAF za3HrxW9~H+WQuaB#-@TlQTe7+LxGwQ#27;Y%xYVx*Lg;r(srf4-t^av@g77!b{<6I zJCo=&RcMP6Et%g=C!UeMZujmoHT`@_swZyb;vJ(PFNs2lSyF~DO(ECZxg|AtDdA^$ zo6Ttzys+BUaA3F`0p5mS2X)jlBd(;yLBZ@h+91o$_PQy6q7*AyTTusOj!DuY@i<^ zw|pU<6P<{a8d8U%Fn6;X-`9f$p^Ru;{c~X@< zGJ_Q{Y^xNMFWai>737WoHtN>3WLuJMuf7prCDN*-3=v|PA~7wJ@n#F>=3G>8-D84@ za^2yyE=bX7Zb^In4GMiC|3m2*mnJO!*l5pcO40a&ANM1EJitw6ole|JPtL5ui{vEb zog2_FlknWRfpDPbjXO7!Ow1XCQ;XgUE3P%@9W3!%SG*Lhod6g=sA^PGA)}wmL^^kOOqxXYouQ+#T&h{ zIgRA2shu!t?1;X!@^VDQ@dg$uNb5&@cXld~ZOp}6nt08m+x|dJx?TBmRbef#R;rW9 z8o(ba!Mf<$OEqU{^{9&GCW*213}+(*S-~R-PXF?}#iUt^#Y1`OX@PsP^GsTKhB)mA z%{kNxrw#Gm5Jm5D3ZcW zYbKuLv7+r{xQ2k?#tcgiWgz|_`8mXSrJPjpzNLcw?&+OY}Gu*;_x}J0^HHVaxE2J9QO6#sK$s^XBl03yw z9#YH_&B@Yw3ZXnLO>KFRr=dLK!+BCIUIVGQzOaBA8f>)Ul0_DS?qwk<=v}y?Y@Rm4 zWb<6TYbq;-hI*o5RzuZPqGqgcH96XorM*TkM8YkhJfsWPvt}LcS8F&= z%6gF1&D{BSuk6{unzfpk?dKVm%Ja&}vqgl>AC?`aYxUSkq!y+<5ecbgW>xxHmX2RX zjaSe;t?H$TERj*Zg)M-TzhJh9F&3Qt{bHod>A+RmX+&tEQOX9efvu1sx#i0#UbBa> z{h}bd6A_KH-AQ;!FJxKZMuXzQp?IUf_7I{EL6F#mqDU<^kbtFeR-+@SKhUs>sU(ks zUr}R9R1h&OiJA+VBO=wDoFiyAUu0uf-c69^L&B-arYxhPTdKLQ^AG{2^zl#bebDVc zyUPie{=+++aPi-*e}j9hd-tO1%^%*uv@7>Vb}^XC|79ohzts>kHT=;XjT9=of8iG} zowd_#wHL{%{Nt>6>=DbG2FDFbUud9is zB{wUVDil1ep*mzwcdI8%V0%Uj|GgPC?qH55LyZN@}`fNItV75O)(Hgt%?vbuVV@ezYx+wLH7(C(3+a`J?l+W6Z z);8`>50+Li-kR;KnrdarL%1s!WBsKlbP(FT#%hA0&Sx76<%hcFw+1VlnBnPyjn#%p zXjt`-i6j095wWE$?eikR0vmvw$3jsxqgdQ^$Ha3pd^wm`R?j*83E)!@8uEf3oL~oF z+F5(2WX%|SNTnMK^@~_BA4HJkZ%$>f(@2qGnoLmxX8S|g*ELr4=`0^1w0Mb>*~r8a zVgPK8&rUTLn~7%Thz6D5y%yH0c0qHmv;M%07;Yn3wvD(^L?U_KGtoqPjbh9~nctZ8 z67dit#iyFpdTUI$Ks;oO$gjnO;Mei{CZ(Zle?r5>6y`HeE#<3Vs8Ws^8@-G%!1Q1Z zzMc)DrkUSD2ih8shRt5JbmKY)kXA@cm|o1NF0m%po!~Wla>6FU(znew_{&z$K-+}S z^-$1foK1g%tIcrTDq3*CQHp;Ogk{%~CQ0KT0C}0#R4$8ryrkl$lC?I>Y?0@^j(Bon zMq7kW61el)e7gNi`eaGTZLX{s(zmlNjf~l6#+pOLh-sygj1sGdT!&_I-Ti67k}6Wj zWz#q`=h-*ooe5PE9BpP>h+_)!NiUzsrCNx}m0xCfisH#&I(W;b>=!&%xM{O#LCqz2 z%DUsm*YfdHdqan?LRE`3Q#*7+sy&igqzAm$B1G7FX!X7YN;eL?SqONoN>`#e%Zdy% z?mQoRQh&5BV!^C56|I}97@edbp#^g5EWk2Q)?i4Q<->F!dR5Su{O?_eG7o&juGJPo z)yA7?lZ-?2mZHlp2~5{eR&|04%Ee$eGu8>PFC#)}8|~XHO{w9-+MBQ_O*T88PD0$s z4#Sp42lC=%J&i?G#o$LCVK?1X&9=qdZ;Fqg8Fo>{+%2dks)sbjWjDPV(e5lH21c4alH zi!td}@SEC}6lmY{99_cUlIlgl=|U&)FvHr<^E8B1;`d0^Sp@_F|SrP4GIj^i2jqsJz5 z3vQQRiUuz96!T_Ai9f;&PjbI{Y}J@*qQW#WB%{l*wS|b9SU*uFRWM9Fn5dTFL#v04 zs#UKa{yA;}YD%lqgKU^Vi>XY$z&x8;Rr`$$1uz`Ye!AO-L(-d#jT@YLL8ogYEw(YcpNV>BGilxhUSW#&R zZ(>;Q(9|~)DD~z4 zKT>32trIFX*^=ojwi}R%8Ag(ii7*nuX0jgMXxX)mO6wn73uUH>tC?NW0qj*B$UY2h ze-X3h@UYWRww$^(BdbS`j;W`mnstoq6Lo;9VA3b);$b_}FRVcIg%Zbx7TFeX9h}~; zGAK!ccWot^-7x{jp)vO(R+gZ>s~V$&Dza;@BAZTzs;G3jcFXtYfnnK&jS2Q2tRKYN zoNkG3iT+F!@pLMwO0mPo{U)hIcV~A1r(50}<{FD`Ybx$?GS%8G-&udf{n-stpx)FM zQ)v<&rOA2@5|h)L#yI7;o&E#K25ap!#Eif7tnmMi70*qIyL99yj& z9*gp6{oVR_5@!)DIgj0zI4#~>pK2^-i+QnDupOWz*%}yZPKhbQyXt8nyqlV=j z(^SSQuyI)YbYWpIXRdx0+xUjWl=!C^w`3-4YTHXX?dMozHV+1i1{WLQGT91Qu^y15 z^m3$Lum|33I~xoDI_Z9Dk|avGRMM2PZQ5j@RENkd$ZocH+9{^9GOtS;Y4p^PRr*2< zRc+jeYup^ zD)z`e7$*!o(Zq{Mg=9~=u!}C|uj>+#+`PVAXz!xz zqA_C;_U+^@pIR#IHD&YM*BP1YEKq7Ho%R~z{x&=obGs!_k17SCfAhIrHWMae!*}9= zh7w9I;YVebj>##c;4jM1D`p(W+6e%@vP?r3A6P5#U2_8KQ+{^9P`YSPyE57 z#bz-1dZ4_vY?!e&x2|`D3Bo=^2FnSqD_ARUpxZ}Y7S|zHiWx}O5Z<%mas=Jqb-H&K zg>3FzzqoJs@>okF>N5_*4Z1gH6G^dw$SVaOd8gOdP7|^P%9*!L0`u9x+kPy`NPi8u zJrZnsqUO1v?gI0EKB`mP{E_8%oFH>8_POdGsf5b1e*Pzsm&5V@59pU14F91H#QyBq z$Ns?Bul@X;tNFdSx2uH;|LM_>{h`rcX9xbk@R#XA+;APeVUlGRoD8oX-d8Gn)T18O z-IJ-{B!f03Y}ImN8Ov#&_g1teB6*{}8k8{@0WoXxRSC;0Aw@jmk5(Z)ZeNMGjQp>d z{LxCv;{wZ1%(%$peYUBrl!rQ3%w&vF+P*y{Hj$_k)00;*sHO6l89omSuAAv@q=5y2 zxpSvip<+fMaA=pTlPtWir6ry6)MYjB01+2F7Wbl>d;UflZyANC(>v+4_U=(gw9G9g zTYC0py{oslVu}nfwjbZYMmHHu@4XA8{s#A^pmqe~C@RZ9)&fd(&V8M#;35W8N213` zRih_X+a5>aZz5g5#yQdCCG?gZRY2Kjgs`JiBP2*#b_RTsF(}fIpvj6vgVo#C!cErY z+(aVcR81H$aZL5t+8VJW1Y;;x>Uxg^9_EAH;Pm>YFQ##D&sE?Yt})f>WujuCfD&Sz z0Pry#X1UU-s)y@XWhMPiCPSK-nH?e;vz~)@>fXZIJeZSHWz>keSSAuIb=C?5kKhI+ z+dxGTQuU7i_lxJvjY}io#n2f~XN?PvP^xr-{q+qEIhF~zWD}V;4u=J`CD15|h!zK7 zaaW7sr!%CgX5{oq)e~y;+-(w#tk86ZO)y|eFu_srA+#)1_2Q&*?muow&G_n}fpX?ESnON)Kpuy2auw1UI&6GZ?a08a zR29~Ny`+Bw)Z!qn*iPfQM3ZA~--eGvTz4FEU%o*R1zt)BUYf?SY#C=LR!pELhwlTl za{yIM9B1%jajA2xGjttJcwFJIQ4^F0`L?sJBgcVcv;$WX3k` zIm7g%fYy2ovmu*cVYoG7*1za0l@QU?R!`vLW50^h+s>Fa`^<@Gp*q~-@8fY}Cnb?U@h`7p>FKi5`x(VRrQjOm%5v2y48W-TrBy5&A2p$-Rw^A`ML*QuY|a&RyNkK@0CEG|>$LLvWI1qPdF{FRdUKoXmus$9?`t`Ta8v*B!x{M`HwKY#eZT=85TYwqJgCF>a(c^}U8Zma?+ql|dE1f4GaPvL%Tik{*PiRADe!I~HLDQWWU8+1@xJ z`|XQiO#xK}v_lQci101YjO~*s#f^z;$0CHdR9&nk(ta~LX56sqc2Y)n+bQd~mTQQ+H8h!3qo<1| zPj9Oark?cZ(=)`tRLSsi9s~B{SJPCsS0)w=%*-svk|i4{WvY3< zqL%XbsB=}$3KU{<210j+RYf^d2*={FhCg4j%QvTRel7X3wZK@EiRn9k!_Sw`S^s6x zWojstsiBNOC8nqzR7UKUtsyiVpm;ggCY)K^uw4Yz_-%^$qB4_(VUE=Qkl=K}ys$9x!_5%t-4@jmSG;YGMU_TuiRdHZtVsDJI z|Ch_%Z!~!Rx*1s(1rjikGBMlkjjFz}yaO8*hleR0JF;zoHvKS-jt;Z*pN@Qb` zZ=>B_b2~A{o-JdlMvWdivU=zNoknu(s)hm>lyR1gqL3KOBruZ|^NNeI>0%wqL!g&| zz^uxgv1V8;invn>Ke~;>yj|CMCeUMujs0WdFUb}!e@wovT$vAS9&PV-rBNQopHXIQRc@O1DO1M z-%q{$N~#s(Qml_z76{7dh?ULW#aU)IwmyhaS#~-Nvdw9*H%S@<2=;0t{wnP%>{a|5 z3X^pPKvn1|0_9{ug9QP#vP2Usjbp@Y>whZkACE8|Vbi8>+>HHB<0fq5<0p(8Gro4Z zaek9Z{CFj{Sh9{jWF+)vHIKJ5zNW8Ry3Ghju2UvTNZ0ghmlgc5T;_v@fzHeCb=zM< z9xryIK(@dh7I;ZSC9sGD<7&K&Dhb>v#O&8ras*>W$KEAyY1!fUX2n#&v;BoVYrnHrL!5)4cw*<1_={{; z#?S@tBr53IUgt~fY+_(*XT$Y;lWAbu@dK1Pc4R)5Lt-QiuZn!Jo+!4!e1lE()Ot~{ z_6nh^aI!VS#bLFUs-ik8-iCuJbwi0~ObxdCj#WsH`s84?EnB4Z#O`EVgDl!O7x#_( zFgOx*)*x7ioH3T%Wfe-`nq)_=4Ljnj%Mx@Qs*$P#A?K`or9=D9krT%o6*2BF8bR3{ zEtx%ipalnKc0$K-Mk2g}wZgB4*Ow*)qiy`Kfz8?!;0$k(Nf8(m-g{PAUP&CKGM0`w zHR9xt3(oDVu=V0bD=}h3cNc}8hguIfG{$C)r(2GI6~RfH&>uf)nA?L$l!gZzbaiP{ z?7{MCLT2}%853Wo?zeK}{Vai9v8K!ktyuD58482Q87PTymxM&q;w8bnPo-(q^J zm(haj0y=T*yOHLp68llBoZ3-$hmIRt>&T>(h_7-o$y`zs(^sVvSOi3zsbvI~3LKrL znq>(PU*HXI!m>{&5m|Ngck8+(B9?0;>Iot*)g~^yEu;gk0X`o4dN_LvGcg)Fgt46()c&RvPZx(axhu?i4^@&Z8EMbKtLfjnveG z7-vt688IIoHtZ>4Mahq{zF|Q9BSeX2q08r8yw41zq_8#Y-9X~}hk` zvwbrFV!N1DMItzjlNxx%n?q_&C6I)WeV zf;-V!-j+Y?5H+Xk*j|0z%F0T;4+;)V1KSm;=A=)mQ5p-nQD~P)SeoNYWuao)RmUZM z7L}EEcrm#RAg*fh{0w8tq^8;Iid0}|4C&N^z45&`BR(6)lX>5CzP+RLPYcBfgVoYmc!rhI{i15HkMQg3Y?$!6M`{i}6d_y%ehqxQi*?4O62 zVtJBc?C`Cusji_hVg;sD^*e~yO;uYC?6uiOHkpRka3KEG13jJc46fYv}E>Z zQIYWJB9llo+9e|R%iy&?7zk^JokLZCNPe?$JNJ>!&O}^4AYs{>N(Ok#%@VWE5}N{z zax3uykuKu=X|AeI#C-}}3vnjqj(2E-pU*@J=Yh5iG(IBW;;rj9t)rA<&t1&GMCU|mWyEC@N!6jf(BG* zXi%Ah@^!r;_ATSOSj5F1ha;R7d;#G5`|RZqJrxn2}@+)q9O>@00pPpH}<7m>pR&Rok$0P&`%eS5C-(M6A%z0%QpJ1jr7C zqmf)htCr78s2T{@f_AGS$~sbTDCF~{2sC(9A=5Z$P(<3T+j&sL@&ROCi6e|4R;aI8 zSU$^+Z)~U&cTIN+?e7OsCzzIq%9J>!MpPM%mT(y<&+CSTK-52-FtAHkF>rM?HtjBE z125T~$+QXN({)m0(y2s>ZP+5p3~BgY8=(y|E!0-)x>Me-28_SGQtA_q>WqGTipgdZ zYJ_*!=|P$?+G{#g^ZFpZiSrxEdib>;UZ$BX(Z4U3|G5&rEoogr;t1e}Y)n7;ID?WBxU|Qcc9E>mO9Ep9=}TArsiLojMuy2r^_H zAF~-iV}}S%p?zBo=~9LGZ1t^H7evPx(jb>DS4i_=p?GFp*V3X=0gI3#D+r>mwd7Nb zn=J9rcU^)Hl$awEvn6D!lB6joM(L=(AG1C+6fN0&N5eXh#7mqZ`vt;{_3@J9#gKPS z_^gqUPEQvHe%iEVL6joEE1eUHxzSv!X$g1 zc*YK3gZ&lOlW*nBB+^Az>eN^r^(j=&1yF-o_N9*48P9|LL8Jx?{&xC_Bd3%8_an@D z86FSd|eqZWhgXs7Cl4i_L*i zWJV1e5SWdEjXJn@EAd z_?CFz9ajyOOsisVi~0iBkFrcnYA$6G1&&A{6d1${)OZZO<(ge2rmIID{~Ig88qy{* zQ#||~Dtu!@PmkjIWwbU&%qYbc!hv?!jZML^TcGH2kX}pC^*`6+%GZ1}{FQGZP=1tL zi#-c`jxe4%yf2-u zYjAoolbStUYxfmkF`ifvf{Z?1Z$~z(_fIs8i+O{@fMZnx-ZjCe?=+~D>mHDTXO=mW zQd5=AtZt!lU_X4iA8)T~;?x5cQ7)>g7geRk*}xgeXR!kiKRmBz7{n-N#oMS0+|Njt zLx;v@(_gL&-xH5<%`uiEF-S1vLX>><$@jOc=FG*Zr&2SBKf}05Wr~g1%CNd%0*B0? z&9=NSD!l*o6~~xEWa~Rih9J)sGy1rMVZx!PEkJawVAt>1w_eTJyU_sfHNVPGo*;BW z8-}g)I;QVi;cs#sUth62^rMz#zPuYFTwP=}%VhyakM`==E*1%tAh-v#sr!Dt7$J*! z<1}WExw2nJ?<~kr7~NB?M>r{_MJxfBDkZCMwK||0(coU8%XF|VB~`Hu$^^r0M{8*J z+P{lpvJBwaV~>Y?c*7trktV8)Dq*r2E_DiO5IY|`B8d|M9EWHdmUKeFW`aO1QbJ6= z$!tQ{zr;=2v$(QL824wy-V7OE*>Fsota!%D7W3&gzeFfi3tGf3w~vC;UQ-I}vE(t#Qq4=g zj$9XOh`1(jnD2dH=V-<`gsc<kTi$#V<)DWA9NVO=1l#H_G zCvE{j1c*V1B#)Xpg4^r$o^?FzJJ*Y8KVC5Gr`?y7tS^nq7Q{b#GIBj%BG)maM4Wyo zgSb^m)C%w>mpeJ`K}$+E&xR_1bkvGEgzp48aySf?x9mwUJbZj}OETgc4I~H^O^_cF z+vwq?-|xy8ozs&8It2U-e`X^%ofy?%4l6~m3{Lzw?79^>+GvCD7tlrD31TW_!9EK|39@ZXT&aU5a6Upm&oC<{g5B}Q0?dzagdlora) zr&E~XlH1ZH3aV@(q*wmMII|<4P(6P1WJmqsz3D9}j)#^`29cpC#qqBn>h{-|MIw6T zg?gUK@wZ#^+;ua?r93hC@CRQ&N!u~s zuw@R`C;Wu)!f}}p<~4l$)u=Z~^<2+?2y7P_cOafCoA!11 zR3PV-dL*tfjhE_@dz@TKWOHRIND$xhd^!ljz; zG>5pFZ+Ddm?Kac#4gYmLBaZp-G3}frbPdgNAIG{9A7H>3T3+rvygXgmyc~%JW*xXs zvlo-x3o92j&q^b*EW+tuwr)(mo|g>eL0fVO#ouP|MG3P)1KU&_A7Bsy&3R5k!nTUT z$dZ#N(7I`gm3IwpZ@Vkq7=*%cmh7)=-}9(OT7y-v0k^H#+lm)JMDx>o$B$y%J_?*j z1w_1Mv6{^&$0)Uj6!T4iL1ciqpR(L*Bta#9VRCoGpCv&laE1WWF+M!j*%fY~RXR8a zmyfrn^T7^SJT&d^NL!|IWfbOgE7(E$6dVHuC+$zkGXpXoF6i&@N)b_Fu9r3zDJO|p z%xQxO+iTi2${TGj($p38%65zaEyPoT2q^lUFzAl<9Rc6rT79BZtu);^PgErdB7*1x z8uy0ZB=svVzGbp~_F~4j{Fl!xe*JJaW7BR^F@vumjL|Bb2+T{D$Is?JYcnhz_vQriz) z+`MeB0A$k@=2*cJYWTvJ<@w{^k(3?a0IVH8#5Y#n0EN8BM)_8I2H(ypxxNZ(MLrA1 z4M!a!@w1Sa6<81BLaOYAXWud5fGp-dqkZu!I_hK3N(`ebXKPlxN#B$m z+I;gNme@OTe6@<{l(951$%h8)$adapA5fO7A~v0v;k19p0?!1U(TFd8hjFhW8dw4g za*@EV#V}$&AspT`@JR?x@$tzL;@H7w%H1pyg71_QRdw~FO~{Ed#y%Rlz8}Sz(Y)T3 zVyadgDjjwc5oTaraGF9w$|DdM_$Dy)NtAs=b2VhWi5C{fvkR zEY#GxonK48kjbRyABOoOCA7Ck-+r#}PE;H#MuUTST#O+`;3b0y7FK!DyS*0pPH_xA zzodO@Hr5h);aFZ{fpiRiz)gL%M;jZ0I>m=GId2 z``TEs*JvB+r-vQ_yGS?LU*Se9)g)ukE$@_sE-r~IY*OV&DEM$0j<{4H2lrGt)EDbc zGEp$=aa7whhYSeaG+|~jzGgRb9}nk^8EZ2S)0@9X~;%<|!&?aTb}JXZ!<2py_M z?Yp}0g76G?0|T@jEY^0msKIc+_C1|3vpe>0k)#BPP(X|_UfJ=2eHt7b#HI4qN5deb zAwh(@WaQI;n1f_0-k8bqoe`JN5?>HBUFxtDkF*OoT9A(+1y^Py>lM=Z6>$mGz6R|FQTWC7#7#Zv2E)+b&`l_*ssjW4Z@j-~v z2+Br{G_6>+K~BgVHJsSDL0P8Q!LK!J1~dob>=t}7U3*s7Jrbw}8f&BU9;y@%F1Tqu zZSJs9BSzKM*s);jHcRriITEqdR|w_9iYyJ3+vVELx87hA)yP~4N1#MGSmaN@%^_XD z9&kjR=h2Gswl?beKV#XP28eVU#lV)+92}p|O7QbJ>C_BkQ}n;qO>(Y@m}if^Ju4lv z$WjHbS@oYfbFj{SrUN47FUxVJE?xKQ!ms^G0#AsPTEK7}AZxB}@I66BD;C_)u$>~( zes~GXdXdLPe&0HxUkl}%c)@40l#R0cf*NzM{9_INgv5jMHby8b--VdvdlUI{>hPh& zbl!$f501j{!3yH>MGYj$yWwt0L2>3wcS=-w`3%|DZC{T6S@voDb(6-zm&K4wlYTYcOZu7cZ2=xaF9%GR{LI@~;%Y+bLyk`bTlnnC(R)B9 zcr5OC`nNbOTeYmDhBCK}+_>YfkeS7-UWc|cdfODQM)2Tp#rkd=^;Lal*(T)wo*Mja z@@5mmZdC8^LuWg<*HO;N#V02Th321zzt3&RhUPRXYT!jEC;%P*y&{)&>QZr0}%{3Ji@kSYtp#Oq?SBaZGl zO(d}THha?_xb9dN)*ISiSeJ14aj2^D!A>hEiz<;mx8TcA{Q)%Za3%}mEX$+LpR#f^tD;*sia|E_g=la3QU?+sWZ z??|&b{^kyx>HG+4=5xBfFL&~H)B)YMT^%NTh>K6kwTo0{0>p+kWe_s?{?6LMfa%@` zaZTh(B9?(s=;H0-syMz>Ha;#|#7Htb=1|F|FlfNRTsyTMXLWBgPD>{6tk0|UV zzU(d8mg%Bb^(UzYyM(NWz_nek#<0UvHpl1kcH}FlWLyd5pRPLFZ&g*Q)-8FZ(r+n^nk-Sxs^C8i$vwkT5v9s2~JCV%Ouy*nu4bfzVd^T zu?GKC(z;urWNZ5bJ3=#o7ih@8R1{ao58)J$S39eHCgSGh%OF`h$gc(}qZLamw9w{+ zycA-yEv{t(oFM9!n%mId=8>W=iT6|2Xa0U+#}R+4rMIKY<#l>m5D*2@vB7)<l_5u&*cAL6oC)#5vE9Kl<*AHVbX$Y9QER~ z(J$)Qdp7Ms8J9`P7CP_ept>6IEqra$z7A29X@eA`@{Q~Votv(>(>~1lA{j2v#PhyO zXmW7pc0~keR<_g?P4x2Nqs9)KUNw63xS@6_9Mr9)9eyd9jecP%n?ne4YV4*M(wH&w> zqLmb_*BtE~Gx8M%KI#d1t>Ki9FO=!mzBn*jNbthZMTp5< z4kHd!2%jQXg$bi#X1YqU>8v^F_c+zcm=V=}I;$*Gx+SMFMV2d}iWP^JNkc)b88u@1 zu;HUc4^lbV4c{>pHL;ET+8z1yMLTn+Tsapz9X6(k1g>%W-^htr4j6eSPyBYe95>0J z5c)-CH2%VoaJoUPQMjm*xO2Ps-<8RCS<3?QZQ;hw8jf6?_qzX`^gP}p(X zIz0?u-;qykz@3(+)qIdK9N7Y9iMVxBqF%l)<;P4$GHvz?=93p%13Zy>bW8S>50y5N zB7qf9FgIlSI-##;)+LhMY1U8k5wjmxQ+Te;zcu5kaZA0vOU~K5GS^`JpC*Hlnj^D> z55M!K#)N*wN>GYXH=EFLyUnxNysL=d!z8o@aGycDn`$WFn{N&le-B#OmM>h0Psi)U zC@J5d@*_i_7(QB~&T-~Eq#?qnTUl8-uEf{Yp}_=SH8t0C z)R@C(mU@bmDgE}TjDDE~9T^M}<%Bq?hPO2uuFWmXcOdeXd5H2w@{Selv{B5kr24@6 zD+WO}aFq=irvfGFn4=my>Rwc=OmYD>Z~0EcEmf6hbBgYmgE&7Vky%1^m@jjePxiBH z!qZhmLm-0IoJE@eJA7RrkJxdUweoS%c}vRVajclKL0evX&R;glhNG9;5v<03z~@NI21NLM*;p;MPH1O% z@NjQedTkYFym+om2}%C#n)|zTJy=BdY?nMBVihlWS^kSiz87LRvxYEq*HV{-BkvzH zZ$kkFFW(n45UmVd>V&8evzRca=+ni~o+qY6ml{OPQ%#N)S#~F!Q0G)zH zA&g@)nAfE$cphIXC-umzbr3 zx>#!@s#lyuE+eR2LN?33#m0O|2+pc38+fLoPUygj+K&~1R=W_%G^UkarCV32aaP!O zK0Neritf?7XEanpKHH!lU=PPiX<`*h)76bopTb7JwfZ*U-a}Pd;{wmmQf&wg7hZCD^@TD`Wa!u)mAGgno(2s(@Z*LLuc@x}Mei)%V?sU&kBxXi zi6IniAZ~s0K`JeExU)X;3R{DNxJ5~CcF054p2YefAZxP3uh8)~3S;r%A0OvL#BFbo z58;XnMD1NpWC=I5<@rn7Ho^FY^Gw^iy{epoAIsbSAgGlTxSHnqhLEbU{9R%RjRrm4 zzXu)q0*3wd3lU@{9J)C{&(j)=DV^o)AX@n?A* zKcE+l5kA4AUYB*eK={Ch7leAh))h0jZj+2)yCFMH%Z{K|Qp{I-tWS#Swcqv;z@3sa zT+c1{wV8P7CY>#I4&3%|sYo{)#gNnwR$j@s9B@2<3Vhz?w!8Nga6-8@lGPxczRA7d zf3(+wu|bXqgDV|*#W9$CKK9J}{yNszopj5fp(RJAq6N0s zd>!_1f*W@D<63G4l9v2W9hQ1=S2|d_#{JAZ3#o>`_E!?j)(XyA?mLfCkt&KzexkO* zm9J{TgsRC=*c;`tO2Nch;bq{3o#SZ7<2&=3t?j(tl_HRH3GDAov=9B5tj*pGhwAUw z!YjAL{hXIib4!7^hen|d0!*_%A#Zcc{foGMBHF`2^zN#TH zPN;EHmwqnVvJwp_F=LeZ8Vo!s^wY%FjsBovte3#aG@wGWW#;{@gfjI#Ih>FIk?Lp5 zk(z{HR8lihH^Sb0m%&_cHp|#@&E?4=GSB<_;cyX0KH{sZB<_a3EM^C^$m){wBhTtl zA|YsQi-aRHxZ#jSj-`{b*;r1eB?_|%sZuv}YUHd^+_9t5U-Hl*70%u^mgo$4A|62RjjRq_kGKQ*)=IQo)! zz#Av!?-5N&EJ~we4yA_^P+18evtCp^TK2qrC2W8J0eKf`JujGXBN+jO7v*azP)8Yj z)yggyPnrC|x|n#@So7NC_fCLGZhM{w2g0ULKks6rBiLY&=Y-h)r+M+=k&+DIoNS=$ z8PkcyXjN*rHP?)@7MHNs2*P`xQzic-knTAn13aRg$DBrz`bNbuT#_3wxW7eEmur)e z<7^_NkAypbnx2f&df%VXPBkAf(-H4DSc9!iPQWMpHm8;FQT5qXR>6HIx!M)|uyEteo?*hlP&ZX)3}?M|`i$ffeo z)cw^v?3&9y_weDb9a@9kpQ|HxdG7%bdmUd`^0RVgKXgbbe-tPNNhO*E^z2w zDX4-=9*OXkJM!A#7#evN`>n&3rk$?UTWhW`OtEg(CQGh#xqHiOJ^pC{(v8^v4wtz1 z*cN2I{V`TFmBaVD+FdSl|M9gRmmwXvdT=zGJ`z+#Mjn|j9JC-DqKQ~cCE*hUG7Tfb zqhNR^!&9RbqWo)AXbehN#_yko3jiNj@KLJ~%u$&bI}0KYv*us>stPPrk@EpXN`WW}Cm+`r_C5lixgf z0uA#wB_j{q*lrKh?EH9MOzR15+*{cT<=`W_Wh;Y(hSRep*h=|vSzKV&(6oH;Em)ZG zW;X{<9&9u8VvdmMTN&mMJ*Gg!Guj(r^LhUE_*MQNu^nD{T+Z{I>2Nk8dG#Ns)#AY$ z$|TLdtl4b^PbqbUB#K&mJ63mh)ngzXG)$VL>nHXZ`%?vyA_I zzCO)9d7f=uVOeUWW!;17+1Za&#i%vPz)K`l0JY7A#X`+%g0_j)g)4gZh7{=f1H)QNxm z^>3?C`pKJuHW~D^vb$andg8-k#{{VrFMwR;k(J0weyy+)+eAG^r~3>OGNNbJ1>n@{ zfZa4Cl~ef}obWL_(epgO#sEE2g3Mlzl&CopYqFJs z_NG7|MyfhiM`#lxZ4bH;j2xw%kTQpMhU8KroyIzvGfQk1B%({W6??cB)+EXD;8ai{8_#~kZ{(=#y0ys(0!in8| z^*`FxrN5<}7)&WB{Nw71@hse{7*L05KGOSu(R9M%An?IgU-p0DWnloncJ0gGas5Ut zW@j40IKvSR;Qej}L?X}+y-ysDNbeXe{%YJH3L1l4ET3`ZG5rm_`q^J_0-uq3Ou@)% zLFu>C@{9w*y-z`4$U%@T@cYx)gAY9KXMcqM{qnpQOCLgS-CusA=V|E@+81sSM1XFR z0R8MUlm?8OQptUM*3TaIvo%;(4E!YVWyF@|O|CD=7o!s7@#mjcU~%PnHR_qgl9X=u z8-?4w&!Ks*r(m>woNbFav&X|pc)lF|_vM%He_ws|ydQe`8ez2OihT}yM&8dp@AcSz zzo@3m8eyiEF!ytq=LBP%5ADO_uLG2mmx~h~0rm|K^Z{D!1`PV;mv}{Z=jB*XRXAcN z--I#@;1YCWc!%(xUc~YZJvjCm{O>XRZw>GJIsEa-b9ld4;8vj@4&VV6&o(Tu;{4wMH_KXpxfu@Lnpx7Gxp~QmVeI-IR$m8P zPxI`zlqX-zHeaWF4G5MULEAG|IIpvLH~w`T+Si0%^cpwN$ac{#>` z-uhx%T{2H9JV`bB9F{5QgSlJPGf-dsvc}(TUE{}HO_dsYKDCqgBNyO;+eaAW?DI{O zz%gRg=trLFj&8YiQ_3Z537v0$KkB7-q}5yTcAh|oe|nUhM~NA8cl-+Mgk^dC6y)_Y zFlj;$ue3o~Oa`n5ZGVY#9H;m%zr@W0e*gP}hIMSkohWfIGyLBlglyG6PT!H8nXI{( zk>J9Drj)H7DdLoC>fh?NmMbNh+OEoa6YQ(O)0jTEnB6c;1CUZn*sDcH#tvsAtsbnE z8@dqA^6r89-6M4YgLXEI$e1svSew?NV~LTXnTuk$>QZzr*B8~7-xuYg(7(YFxaw!` zEBs%MD{aL{264Kg2KT1txLYf@zC17oUEntt7j(AI5p^cV08M_z$Q1cm+1XNeMy{{i zgq4S&KO9l!V^2XYUsc1|*}S+sXLI}>BZ;Z=aYMy&Ir*5VA>6A6Wm2x}#hyJ;bw(gq zHqvHTPQi6G@K4ALvb;#zoFekIVD`l}Ux(I2(;rJN($mRzJrUP80@g9B1ibq(Y7of~ zuy^2E%92}YwILktw9QV^hMfA^$l4qyZ4i42qu=Q`=V=?Pe2}M(ZCpzOesN!wf` zZKgAU21wd$H`-u?CTol{ZM4Cfw`QAhqYZ3UCiT?jcMug=SIn-IM!!WhzHW|v+GxXp zs)XOXnA=tk1!Fl|#^mKY8ou-WK!O9+&H(a8$n;wiyQc3 zzK#olOr*THu`%~)%@S@4R|V77D3zRv_koeF6A7gi+)D}`aR5uAN64w?QpZYAe^|p> zR-8Pd1D#c)G}y><4ujj=5?jRUQU*4>`l0&R-OOsGDQY+JJ-)Bx=SSK`{Mi4D6_k$f zQI=3T#GUnUmLfM>H=^czl!epkdtWPuzwN)m()m}6l*f_oYw=L0PWuK=ue7Ef~8@W?Xa@)Nybv#;2E3F7d9Kd zD`g?)$LUm}gxLE`CiK`%Ojgld)RMF(ctYGP%f2nWAVIM`?FTLIPJWIA=Uju%8>vINanL^z*GmGACP2?WLbAQX%87|5l1s6~B8DUfp(Dx& zE~!EXS$Sa;jriSB#w@DgyK9s(r`3W}t=SdQ{+coQ0#lJ_)lm5YydAYk^NXY#R?Ls6 z%mk@{uy~#uW!Zmuh_8r9!{?{TATfkW>_rWPP?4L{jHp}VCqeU0#IWMnBlxynL0l{R ziwc%8)YW#1_^fnk)Vkfo4B$hT^aMl@Bcmq?z|&T9;>1$ZstF*;& zG0l=)0&(witRTGSM?DD3L#6X=N(YK0ylj+6?|Y11$?_GJ{$g27l12DF%MOW-%7GY4 zt%H|TPWkz8>wTbV+MXR(dZj1|jgP^JEO*hEek%jqs&z%~-sIAMmL;6_j75WPwsGJR zvp3|o|)NP zGVNf1my$6BqrBSQdAWNm*+uy0!5bb)DNf0-=DFx z8Mm3E@Dz=ikint>kC#}F>_A{`mvrgcu)s*A$X{U;O;ceL-g@Xy*ctIAq|S|$@u;p; z=x9UzzwvJmpS3X}Cu)!bi4-SLByV|~{>R^+O- zTZny%o?_Z*iPszxbk}jRDqQGBVEt|;6G2$xE@qy>hX<#GUe@c3wuS%E{)~^MkI$nR zj0N_p8aKn)pKJ{Y9yO{eky)E&R_8;@?Tk}n26YdKcIm&jH4V>4X>@j(IEq>Fg)Zl= zK)#}PcX{(CPrr6|xC@8*IlAw1eqsN;EU|)>;2(I+!QCj8yb+m>tQ$Sryz%msMuX1L zW5a~9JAD&T(Buy3Q8{sv#;gB@Gjnmnhb2#L>$5IfFXip@R2gmPZA9bplr!LFtKQ7} zd#;O)Pldx=H6DU(*TDNAzuqm{ay97K+eVLTcJz8@Z!cE_Id=C%;Pi8H_~0^tou*{- z=4q--ZL&fqMcLDLOf4}fpAKTr>0)J16n#>=LcKt&4Y7oQo!D`R+3F!?lTk9nAUs5L zHq8cS5@E&a{ZL$owc*-ut5Jj*JZ?!tkEhi9wOWI~>Ir^d6&W6eQ4ukk|B6L6@kmm+ z*E}roD?3cEwj;^VTSIT8p28qr$skU8h`<70%i z7pK+Pa<;4uV5Mt?r0|D=SosfRq?(VI|by!M^HNgE@~eI&1rTmm-Iw9Zpy{xYVyfL5x_?Kbn_wz zYD>+DzP!^a-D#suh( z6kxt!nV}u!Pa)&51j^g97_ZbBGqQ3r-H%|fff5GiH0?PM#fc#_MeSVL3zdC-8!`$`W zTcbedkAD04z25$f4{(py-|+}V8?T7mc7%RoppZ8LP={c=e5GU}-;t}{B40^A&-n69sKLa@ix4##co^CN-M*EMYl?$D{K7WXa8+KN=6=V?FA})ysgpu&d3p;Se>{2+`gmPe%Z< z;Y<(_A~0;`C=1A%H}F`8mYL$2rjSM9#iE+Sf5he7tm+Zz-wQJ}XVWC(jA;=jGfmlHJnMPs>ZK7*%DI>uMrEzZ ziwp5Dz?-72S_sGBR)l*jeEs6+^~rZTZ;m7`Cw0mm1xQ?T(EV#zAA|5Ud504J6tmjB zQD`yqRT8TPxvS{qp=R~9W$pD%(h??tGVqw9W`b70e8(PLdk_SP%l^Gc^2}WP#e8BsCg{q$v1ny3Ug9m|X zE2$cCRb6I9xF@JC*S1aO$!Hkr2A|1rEZ? zayY@ea!YkOdW__E6}v1i99Bjf2Qs{rNCKkWGVM>CuKk zOavd97O{jiC@0Z(Zxuaz#vV8SFpA^$H9tfbXc;UOr3MihA^RUuM=gjJJzz;_p9+oo zT6y>d^SN}Psn*7V>x~C^8#~GqT#3EZ1;r{(Rpoj?>_`KYl&*j)zH7hPJ1yN5e_yZbwlR)p%*ncPEU0wogQ1NS*(y?ywWe+G)7r*L(z4&L;$ z-@nE%EX?w^`^UR`#6>0RpR@_XbmjqkA|#`W8ri_U>z1&jIu2qQq;B_plC9&$uz~ln znXOay^kGHDY&{6yL~MO}U6#2>PVv!l&O0h`EOu*Z0~>=C z|H(DCu5VE8)*n8}^6cUN-e5GvY8;F%T*Lelf6`Y&&P1-Kpv>Av9gpBc5j=?wb+r3` zc66wA1`4ZeBr<4h0?lF6T^{1@uUkP@M=&8qC2xi_gxTL@%M+xT@xl4v?key?@Q3a@YvS` z^Iw}~Mr1pKu*+ddq@;pNeG>RxB5())+h*q^PmyBi;L_DSJ7xCKOD2_`Ql*tb)*3=I zI_XlLB)+avQi?$2Y-LT}$6=IoIr`(O$U$wzB`_q0C^?5r10>o#fspis#3^Y`0)0va z{x|?5<2IT66y`QTuZ)6$GSYTj>_uIYR4| z@a%WUzT_|Ap)AcS?7IC)Jp4W>L7heh)y)hx5w2SYpehPnGYN(26XX+L*k{>%2C7}9 z#($h`{1mXqBAReQ%@W@%CA{LqKPxa_Oq<%oZ}7w%93Eq#i~_y!B!3b${gIXhqB01U zy$ORR{WuT&h)y^;ulo+q;;?6I;@$<&@XU3=6Ibk&B=cmCaLYLP-!TLa!nZHBU*on0 zySao_oQjm7_!G!wYg@zYmv3L}?rp!`+5TPcHDYRw7c8taxwg-p$dMKaq!^0}yP_-O z24y1ZX*|K)U}0ZhtMh{SI$XwgAh6B28>Xb2{h*X-nV`WY%u?BHRBQz*x)HE5_8Mg^I%m%17mO-F z+l`{t=#m+PgT0rBzkg|(Q6zU3xtp+Z!Rlj_u^A&OD73aP`ta$H5JU_3DSl`MhHbB- z&7`yybS|8mq?$S1>g}|;x>e!AnR#%ExO5A2WFM832sUEZ3!!lxOe5wvIWB#XB|~%w zo-7(Yc&-_^$1HE=vNp*D5&AM~$IP^-8)48e> z5?_j&$gkDdo#VR4H8Tlw%ql)k#`2VHB{ZyB2M?RBFF6q3 zw&rc~-K+!Fy`#h>A1|XgHh;RUMQu%@&+(`uf?F^d3`#X& zeN*k>mgEFpVv&YhQ}& za@SZ67(E5Fr6q(y999+5a3lr95>e;3kcs5RAfSddjGntRN**hsKnl)3neuRwsgX%- z5EWpYx|@~YoSjUnV)c2P?^GPa3>htXtP4~L6nRGVK&k+sE^GS0ZgJ<;I%!2)2c{uLXLTZ=X&u9Ap?pbPbPERl1nMPU88=8*(5 z!6bknL#=}l-AG6>gdAtdY=6gz!$5K=NTFT`qCS&=>5fTRx665HW#a6&C5TNNE5)Ua zy0ot-;4PdOn90nth#id})Isyo$b9>rBPp`>(LxlFaLlD5FdV)#-2GI#&=#iQe!rX8 ze3I&I++D(P+tsHwQmR{UVTKc-y7*`aW)g;H*rK0I$kVbhEhSUkDUnqHewpETQC!m~ ztK#@k4RJ9vymK@c9gsKvK?4y*FW-s8g}tRi_?iW27S8Ai?CD2AGsQ9nL(jm6ctB^n zgCeB%Jly|$GaC#BQdi2-8eZ%}KB^JHa2!((;$tjY2jMO?%qim3T)>j-gvUsYMXN6# z3Z{OB^tkHsgv+CQ*pX3sM=|;R!f_MP*s;c9gpAmqP-TI~lyFpbHX|k886h|fg|*8R z;GAAtT{a@b)J`=`@~KS;(hnXKLly|LQcmbu$vi4~DGeu>OxZ}jDV~O#{vomzJrt3Va3zFGBsVtC*#7ly`2Fp*rEG#|Ps^G5a z6T>`)JIC7~zN{H}|C@n^RI_~07)mG8tpl{uQXYi2T;c$m?E7jIpMfe^)J`Lx1ibn8 zAUkMBqU2I7k$)@XP)rK-7U}x7dT?VuG=jQ6Wk2X2ATS=>(uDW+oIF0*Jn)SCJC<_& z4}n;fT3^VnRBj>P73civ(tljmsL2HgC+NvZK7O9?KIJYIvDQ6+cMqjm8;@nb;{I^4 z&pBD%DxFb~(IO$62~pV=wt-k)k#-RNiSS(n)KNQI%Uog~woF`hOtjiSNhkyEyKc8Y z4>r4{Xq|bsSklcUwm_~-)N;k=9DZL^3tL@Do(g%lS(BhwiBTpG%p<5Wq@fe7hNzUB z!q8eVeblvL(8*-kBen*32>GPXpHuxPTpKwIp7TcGoqil9i8!aGrMO(_U``BN{Fo@3 z{cu?Bxx8yE6>Pq1ji@CMRWc0aghRbAAuGrm_tR~3SXC-ImD2;_KF z{ZAwQO1OhT&~9Q-ILPyPkCsN|qSc(PL=H=a-Eph_B7ZH-qxMM$hwRR3byMeqa1-{S zBcs@CF4@mk+u3ZzrwJYhSCAh@8TFFVdOZIr^J9QM^YNi89A|@Kr&@s1JkS@OinSU~ ze0PcV1MGpCX+Goc zsBS@nx$Jx_Ph^h%9vp;$#0a%XsLj=rG}V{kB&X|bT2t(Z1ComYhcg4@T;OY*#bGgI zoN$c630(zlB!Q^pQS=e6E*6=MG2?g+aU

1X=@3DbJTM zW}992ty?l|ZHAiWF&ge%qIWGZ!HUwYq*6E%`oxy-UbQUP zmW}Plb|h9(O(;Ax!FT%;?L-7bqQn;nG9c#04-`Dt5hxqq5=|U-E(g$QzZ|b`Zir3; zt7`4kJdB|;&yDk?d`6z8cO=`4xxP5;Ml_3}ILTYXy&wJ@m>O~-*@^gXpMWeT ziegoy9AL~{A`!Df*y^qWxrvsSa1Zm@^6Wf@8olz30LO{)ZB$7aF)0aLn0Y%yMvYdu zba9bZ(`6Y@8)q?%TNG`6!D;9e2#^EQDNS_x^?#Qam!Sy|!sYuCj#NFB9fbj{=@VI( zC(CJdbs|?VC7hf=4oyjIgj0_OcWRLwO}lse=Hz;dw1ff#mSw-II6F<_apIDbFDz!> zoW&AmHWY0=mZLrF{l%`LuE9{^jE)IeCVHPSK6@>(8xWu$ifecTe9lK;;{CXtU%~(8 zVB29WeU78&xW|yk;*qpuCIYEdFcVwjO@WE4_r;kDeU@izVxdZ*04wjxDW6c2!5D6W zx^u`>|3I&y#)0t>xHv^&V^V5(^;8636|A`jswFVn;vi`g;U%v5)iujiEw{vs@nAZQ zt6b>2Xhe5PC#U+*%BCWUAfZjnf+Szx-=ea_DH7LG+Hguv*JZ5X;SK~@c@DM>l3AEg^6&j5j=CB=s9B^!wn8vDi9?vX88r>#~;n>@p>$o%4o z!9i)FO^RML*qg~w!U=vZ$rzkK1t#ApB;Y&|*oJzLn|m}H(zZbOGz!nNWKzG92O$;7 zj~35IP*RLCz`l^QBT=zNnE*A|*XU9^MOs~frqO1U^TK+s6DTRBQFl{SfL1o8JG;}M z*7Bw?2^}bX=JCw%OK)j~AVJMmH@z0ik4RJG`0G+tH*R6Rho*)zc4^{BMu#{UWW}_c zE$hj(^+=9NM>pB2Ix9xJwHJ%Z#?Mr|>d7TX7xJ;h66j@HCWdcy!SNSbEeu{+Oy?iC z1ts9)y-h(GMy;JZMfg^A!qK+rykCg|(&;Y4t1##S2n*Wf`#Mgn_CGCMsN4z=D11>Y zR1~$?s~j_Iq)?Zg>p00fmkaWjg-L4A4}}|~@4)e>2o`Z7E-Nv(b$0Mg_Z?ajb2kPG zlCx^u84>46JxYto8s2>jBV0+8w|lp zAW$9Ek>I5~GsFc7`w|rh{qbZFlpegJ>|HAVIkqe2BImXc5Fesc*m81#V%#uEzUW3m zDR9{uC^pa>BXInw8XdMYa_REz%2&f(toL23uelgkRRbcs!9O}Hj zz&$9}FiN#2=`V(EF6e`x?7`69nN;CQ>{3~;RbdQ*7Dh;6v?NjG(jaJXiA=M3UnE}F zrz!*_Zr#aQ;=m zXvMs2W^TfL61-sK(lU7$y=%1js`v{rI*B*qtK>0AhSftc(+Fc^L1^rWnR+;t%W{;o;cHRxj+rD_T%xNr`nU=vyP(NBFT;4~J?-qEnG@Q! z7+HCDDs|fr*fby#nA3(m=5zJ?f?mfS#<5naVNMz@2MX`#mJkdvx{a zrxsP{ZcOzMoR){K;`8N{*(Yit@Rep%zdc5-CEUeufj!GE&QGRTA=^OYr8^5W$x$C9 z;lWd}{)jL}Yq1!uVDy_`bot8%VMRStO!lJ<9dyH*st5HGFtBK=1|>q`OlJc7%bEvj zYRpp>eTUdz&9ypv_#_()vWL?_JSyJ^1DqT@#esbuJ*C9?%!k-iR$FjD6h~M%=Q5$J z-juAzXS|LuQ9-@N@m6ZuJMjwS5UE-v!R+a%XPm4OB$1T=Tns-%FJwW}7Bd%poeqNC zXl` zV;>_9h!Dp$IqW75Qm24Q4&E-s@EoqExyBR29fM@#E16??8qQa|OT~fTj-tsYv$cVH zaVQYm!*`*54mUvs^bs^2dtk0j=|^wkf{HP06cx&LAcc{QxfC(OfazjDdPkc1Y{my7 z&pgbkhlb=q(QAJ9{RA4J&+(|gJRXqCTkc^HFb#$Tv*sC@I8HTOsnev29_2hx$fHm- zG6zUyhtr)2!SYnB*KxfCKK_)p3tp_%%?ZOzCR3bx7HG3KMRV^rn@=;6qdaiF?8ig^ zE-nILP>v!xi0e;!d3nkCVu*8SJ$(goewmyIE?X|{lqrdx#!<6 z8!k)+30Sk92cwF7h2jwe5&FJ+DFFRmVQ!4rgGNUC*ESR5XGp*4*h%bYr+pWSw5Lt<~rX~6(O zbybe?57lUKt`YRwQgW!)n;s2wLU9Ym`GwK0Ks;H5PKp>9eX+Qy)Nm$syM#5`4ZH2Z z5sDfIdW&RX7#hL;^I@k;z^xe55%B z^{U#Dw((}oI|xaaDN!@>HyBmL*>r|AHyPX(<(%-P+euZ0^SYU1V?kt8vGkZ<9>b0C z%ZunA>%&<|aS6(|?)cCf5_$+p+)Qz3VyT4i2clNuisu`*8g6()E)tl4lQ_v)uc{<6zi)w;knKbKqX^2=b zC}Uk`FL%G$JwEc7JN~+j_Sb~u61>zvO1J*7~s(0##G=_E9^Ugt#u5WG(f-bmf zQC^5HL?r`K4m21Ho=HAIy8w|JV(#pJN;W*K2puqHUsU2b5~zoY$jfpak=(2$QQ;IYv4&5wVyqA&wvx4f)tUP!Z#JcvCat=lEcmO!kcf20BjA zY(I%1HYN@M`M(qZPqdxaM%*?{-QCkTyxxW_rYDNMn6AdViI$~{iC%x?; zT#!w-B?cXC&bUp{=NclHC+-H;h&dkcHI{R}8=R7Q_5-E3fO;{K2Qj3^A53P^ak5 zVM^RM&n3^JrNuPzL549Ogoz$VrgL}$4p1!%*hyGN%4tjL2Si~$zqXPlEmmPqAr}~B z950DAMtoop8k7;~&vf_3lXT%NxkXa_9PNc2G8iaPHc0s6y1&BjDR!$OwVhsjCqhgo za=-!OHgEvZ78I=R65*-?$q_}=qzYbblUuk@>6QjbQNNe_iu;v^md>n}JmxaSSf%bl zQncc=;{Y=y!G|%GOD$e<5!DrWZIxX{+`p7}7D&CKyiJE)aUr>}sGB@zKol+w@gd1U zXaI%8Xy&|}6oee40D|X?$`hjllsU?|hq&KN1q)7Tbu^g*%a;${9;+D=KiToOc(?(e z)(@unRSPcLVm3|A2};nf;CpFONHa-}0+o$4^#+r08oQ){@L}MsGMX@JB3uYddFq;g z-Ipa|x!hPK8!VFO0R9Tiux1Qd`P*vX+b*M!#-5`{MN4-!N8Th(`ZL5krAfBD^wAy0 zV4b=(hC;h!OcU5bl~YjP#MtA_son~!;M&BdV$2yT4drE_3S!a1ya~3WYu=4?(H+oZ zLN$!dcmaC=+k+^Yq7(B&+mQ%s(Lbrq> zNWhcE7ixDy>b7c6EyKvJ9QzJ}t5+r~%VqlYtvI^R70dnX;nTjjL?yl!*lUPoe@zT2 zcIIi885+TJOcZ1E3e`6QW*0Deej^|Ma&~z_df682eeCm~RT0zkrCbOTv1W734e;n> ztkU5i(EdbpzT1Xs>WJ47VAS>hoQyd`pWD5>(M-yhg$`?Yw9V z##qcWMrh0file-*I2(yso498_w&*6{j*%SGdlV%D^!)R&Z>O<+;GE8e8WvtoT5fQx3B8vsZMq=eI zFCWJ37|4G^0-{A*xwszch{Mt0xkhK7+sqU*M6k$dtEwkhU^+^5n(d-odu-#X-Uq*TIw2SoIF4ymv#!qO)HU zqa0>(@cc}effD7JkM$v63%wkK0aeP{65l>p5zGe3zM60wx@9A7MS9^D8)Bj5f#IbjvyLN-SS%+jZV0HCY{;B^Lla7i78?l&SacS#P|;K4IOsZ+ z0Rw7jAP}_Rq0q}BZa-Hm7TU$t4sXmCT0dip5O%S7;b9O$GaXaoq)~_AFI%ik)uH4r zhPI6V$DQcU3%_Q!)ikP^I}{ZS)h)&aNJ!cp)6ngq6sn-EU4_zS<)_ zN%qb)=Bp)D@*4B<15ui^T&z^$Pkuo)YKieElWGvh`c7q;xdwyCoSld!V$;UHJhfLNrZA{g?8rD5%CD>?Pd>ib7@~l zfY3omN7S9*5ODQYyI%r7_*o=LV8|65KsbxU%i;0J`#1Byp{A53pSvh#T9QO`Dx3xk zpH&GsQQZ4|ER3=5kN7n5qCv?ekFXGyKEjW&p!_8b%pUJVPa_}L5zTPjZU z5k59*v$a;Um+D={d~U4-%EW;t+3Ss%|3j1`XfMDAfgAfXeJRS3BPW2u`SOa8StIE` zN$B6pb9E`p%`gcKtOc&kkjJjZ3+DL?ED+XVwY%KCM1~iq7m>owR1N?yGM0!NVaF>{sk3@z0TxvM2A@?6rgN6{h*;EkEqxu zuN4*k)-L~>(`iN7*64oF0HHxk>5}rWZCbNPwlKN{WmUl|pv_og)n^wuepkjU{niMp2A`J2d_^xhb+;=}#``*M<{O=- zC`1;AYBcC(#W_lvfNK)r_uBgyQ$nCLk?pP}JHiL)Ssp31vKw5o)j6}690n`_`kIlag zQovW=G?hKYhw~Un1;=Z|yBHRNIyuKX>(E_9VRq_(gX$NPeh_XjDx!O9rE812cOwJ_ zB@jh343#s7QP5R7&{@nKB!f18Px}#8C ztD~J`w_Sg5Ssz#-C$?hY=WKYE)h&S-<{coz5FoiHK zC8{v;SQFG8>-tt3o-m_$RutO&6dqqA{btTSteRTT#XIB4-QT604D#kR^3~amQ*e?6Tnt; z_b-g_xnze1g)Cz!OD*>pCjtgyYs)`!j9_Mh;3vauhiHG`AQ-A76&Yky>UnL1aY>VG zYtR8Rw>Z^2C1n$r6J5zDGMky|gTTvKQ|t6MP2H3wvH^1J0DHUmL1`dSHgP(V>dR@0 zFW$U)@qM3tn^d5)P@EcE7G;|F2NskiDyzBtm&XIzxaUK*85Jc(NQk}2Q>nFOqu@$z zq}bzfy0~0`G!bOt2tJOvl4vq%tw|vq*$7pGTO!T-m=zr@`rTJY60KI|6~cyri|bfI zH}1Sp&l;|g4%Q&f{t#;G2I4`yIIo+SL>p(Ln&N0T6SS>mpoGL>3D-dHl(?PPaV4&( zHFyH$?$F|IUCu7`7(Wq|067QU9qNzi(9iBvZhb@lRso@6uUIN8nW!t&XRnoW9jjDblHx4u zgWN`%fJ(C73}R5q9#AZKg^wyX}K!%EWps9=c8m;)vy zY!P(n+GOPTzz8`d;iI6YCu8&y?9XV2n~#`5i+3ulTh}HhV0>?BjXT$+W05tSpQE9* zmF3$$PZqC9X^AjRF#O9)&9#1Ym)5j(M6{@g^hO#Drf*%NtX`nDOfWv|uXcqH(n zv{;Dc(vT#E^7nVxIhWn>;X|rbjv3>h;rEUX3()n*6^YiR%N*FZ&&^H%kQY1#T`xLK z5*v}g9~@Fz3QpmYUm~RFj=VlNhK8fXsq1j1DYt9&)|xAtQw*WC$&#yp?%pz6kAGS) zcO&+{!zJ!Lwgtp*e~cAP^fatQ^gzj|9<@kzD2r2kQujXgU^C zNoEBhO~Z&FDHuM>u" -msgstr "" - -#: builtins/pushd.def:652 builtins.c:1351 -msgid "Display the list of currently remembered directories. Directories" -msgstr "Display the list of currently remembered directories. Directories" - -#: builtins/pushd.def:653 builtins.c:1352 -msgid "find their way onto the list with the `pushd' command; you can get" -msgstr "find their way onto the list with the ‘pushd’ command; you can get" - -#: builtins/pushd.def:654 builtins.c:1353 -msgid "back up through the list with the `popd' command." -msgstr "back up through the list with the ‘popd’ command." - -#: builtins/pushd.def:656 builtins.c:1355 -msgid "The -l flag specifies that `dirs' should not print shorthand versions" -msgstr "The -l flag specifies that ‘dirs’ should not print shorthand versions" - -#: builtins/pushd.def:657 builtins.c:1356 -msgid "of directories which are relative to your home directory. This means" -msgstr "of directories which are relative to your home directory. This means" - -#: builtins/pushd.def:658 builtins.c:1357 -msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" -msgstr "that ‘~/bin’ might be displayed as ‘/homes/bfox/bin’. The -v flag" - -#: builtins/pushd.def:659 builtins.c:1358 -msgid "causes `dirs' to print the directory stack with one entry per line," -msgstr "causes ‘dirs’ to print the directory stack with one entry per line," - -#: builtins/pushd.def:660 builtins.c:1359 -msgid "prepending the directory name with its position in the stack. The -p" -msgstr "prepending the directory name with its position in the stack. The -p" - -#: builtins/pushd.def:661 builtins.c:1360 -msgid "flag does the same thing, but the stack position is not prepended." -msgstr "flag does the same thing, but the stack position is not prepended." - -#: builtins/pushd.def:662 builtins.c:1361 -msgid "The -c flag clears the directory stack by deleting all of the elements." -msgstr "" -"The -c flag clears the directory stack by deleting all of the elements." - -#: builtins/pushd.def:664 -msgid "+N displays the Nth entry counting from the left of the list shown by" -msgstr "" -"+N displays the Nth entry counting from the left of the list shown by" - -#: builtins/pushd.def:665 builtins/pushd.def:668 -msgid " dirs when invoked without options, starting with zero." -msgstr " dirs when invoked without options, starting with zero." - -#: builtins/pushd.def:667 -msgid "" -"-N displays the Nth entry counting from the right of the list shown by" -msgstr "" -"-N displays the Nth entry counting from the right of the list shown by" - -#: builtins/pushd.def:673 builtins.c:1302 -msgid "Adds a directory to the top of the directory stack, or rotates" -msgstr "Adds a directory to the top of the directory stack, or rotates" - -#: builtins/pushd.def:674 builtins.c:1303 -msgid "the stack, making the new top of the stack the current working" -msgstr "the stack, making the new top of the stack the current working" - -#: builtins/pushd.def:675 builtins.c:1304 -msgid "directory. With no arguments, exchanges the top two directories." -msgstr "directory. With no arguments, exchanges the top two directories." - -#: builtins/pushd.def:677 -msgid "+N Rotates the stack so that the Nth directory (counting" -msgstr "+N Rotates the stack so that the Nth directory (counting" - -#: builtins/pushd.def:678 -msgid " from the left of the list shown by `dirs', starting with" -msgstr " from the left of the list shown by ‘dirs’, starting with" - -#: builtins/pushd.def:679 builtins/pushd.def:683 -msgid " zero) is at the top." -msgstr " zero) is at the top." - -#: builtins/pushd.def:681 -msgid "-N Rotates the stack so that the Nth directory (counting" -msgstr "-N Rotates the stack so that the Nth directory (counting" - -#: builtins/pushd.def:682 -msgid " from the right of the list shown by `dirs', starting with" -msgstr " from the right of the list shown by ‘dirs’, starting with" - -#: builtins/pushd.def:685 -msgid "-n suppress the normal change of directory when adding directories" -msgstr "-n suppress the normal change of directory when adding directories" - -#: builtins/pushd.def:686 -msgid " to the stack, so only the stack is manipulated." -msgstr " to the stack, so only the stack is manipulated." - -#: builtins/pushd.def:688 -msgid "dir adds DIR to the directory stack at the top, making it the" -msgstr "dir adds DIR to the directory stack at the top, making it the" - -#: builtins/pushd.def:689 -msgid " new current working directory." -msgstr " new current working directory." - -#: builtins/pushd.def:691 builtins/pushd.def:711 builtins.c:1320 -#: builtins.c:1343 -msgid "You can see the directory stack with the `dirs' command." -msgstr "You can see the directory stack with the ‘dirs’ command." - -#: builtins/pushd.def:696 builtins.c:1328 -msgid "Removes entries from the directory stack. With no arguments," -msgstr "Removes entries from the directory stack. With no arguments," - -#: builtins/pushd.def:697 builtins.c:1329 -msgid "removes the top directory from the stack, and cd's to the new" -msgstr "removes the top directory from the stack, and cd's to the new" - -#: builtins/pushd.def:698 builtins.c:1330 -msgid "top directory." -msgstr "top directory." - -#: builtins/pushd.def:700 -msgid "+N removes the Nth entry counting from the left of the list" -msgstr "+N removes the Nth entry counting from the left of the list" - -#: builtins/pushd.def:701 -msgid " shown by `dirs', starting with zero. For example: `popd +0'" -msgstr " shown by ‘dirs’, starting with zero. For example: ‘popd +0’" - -#: builtins/pushd.def:702 -msgid " removes the first directory, `popd +1' the second." -msgstr " removes the first directory, ‘popd +1’ the second." - -#: builtins/pushd.def:704 -msgid "-N removes the Nth entry counting from the right of the list" -msgstr "-N removes the Nth entry counting from the right of the list" - -#: builtins/pushd.def:705 -msgid " shown by `dirs', starting with zero. For example: `popd -0'" -msgstr " shown by ‘dirs’, starting with zero. For example: ‘popd -0’" - -#: builtins/pushd.def:706 -msgid " removes the last directory, `popd -1' the next to last." -msgstr " removes the last directory, ‘popd -1’ the next to last." - -#: builtins/pushd.def:708 -msgid "-n suppress the normal change of directory when removing directories" -msgstr "-n suppress the normal change of directory when removing directories" - -#: builtins/pushd.def:709 -msgid " from the stack, so only the stack is manipulated." -msgstr " from the stack, so only the stack is manipulated." - -#: builtins/read.def:207 -#, c-format -msgid "%s: invalid timeout specification" -msgstr "%s: invalid timeout specification" - -#: builtins/read.def:230 -#, c-format -msgid "%s: invalid file descriptor specification" -msgstr "%s: invalid file descriptor specification" - -#: builtins/read.def:237 -#, c-format -msgid "%d: invalid file descriptor: %s" -msgstr "%d: invalid file descriptor: %s" - -#: builtins/read.def:463 -#, c-format -msgid "read error: %d: %s" -msgstr "read error: %d: %s" - -#: builtins/return.def:63 -msgid "can only `return' from a function or sourced script" -msgstr "can only ‘return’ from a function or sourced script" - -#: builtins/set.def:743 -msgid "cannot simultaneously unset a function and a variable" -msgstr "cannot simultaneously unset a function and a variable" - -#: builtins/set.def:780 -#, c-format -msgid "%s: cannot unset" -msgstr "%s: cannot unset" - -#: builtins/set.def:787 -#, c-format -msgid "%s: cannot unset: readonly %s" -msgstr "%s: cannot unset: readonly %s" - -#: builtins/set.def:798 -#, c-format -msgid "%s: not an array variable" -msgstr "%s: not an array variable" - -#: builtins/setattr.def:165 -#, c-format -msgid "%s: not a function" -msgstr "%s: not a function" - -#: builtins/shift.def:66 builtins/shift.def:72 -msgid "shift count" -msgstr "shift count" - -#: builtins/shopt.def:226 -msgid "cannot set and unset shell options simultaneously" -msgstr "cannot set and unset shell options simultaneously" - -#: builtins/shopt.def:291 -#, c-format -msgid "%s: invalid shell option name" -msgstr "%s: invalid shell option name" - -#: builtins/source.def:117 -msgid "filename argument required" -msgstr "filename argument required" - -#: builtins/source.def:137 -#, c-format -msgid "%s: file not found" -msgstr "%s: file not found" - -#: builtins/suspend.def:93 -msgid "cannot suspend" -msgstr "cannot suspend" - -#: builtins/suspend.def:103 -msgid "cannot suspend a login shell" -msgstr "cannot suspend a login shell" - -#: builtins/type.def:231 -#, c-format -msgid "%s is aliased to `%s'\n" -msgstr "%s is aliased to ‘%s’\n" - -#: builtins/type.def:252 -#, c-format -msgid "%s is a shell keyword\n" -msgstr "%s is a shell keyword\n" - -#: builtins/type.def:272 -#, c-format -msgid "%s is a function\n" -msgstr "%s is a function\n" - -#: builtins/type.def:297 -#, c-format -msgid "%s is a shell builtin\n" -msgstr "%s is a shell builtin\n" - -#: builtins/type.def:318 -#, c-format -msgid "%s is %s\n" -msgstr "%s is %s\n" - -#: builtins/type.def:338 -#, c-format -msgid "%s is hashed (%s)\n" -msgstr "%s is hashed (%s)\n" - -#: builtins/ulimit.def:332 -#, c-format -msgid "%s: invalid limit argument" -msgstr "%s: invalid limit argument" - -#: builtins/ulimit.def:358 -#, c-format -msgid "`%c': bad command" -msgstr "‘%c’: bad command" - -#: builtins/ulimit.def:387 -#, c-format -msgid "%s: cannot get limit: %s" -msgstr "%s: cannot get limit: %s" - -#: builtins/ulimit.def:425 -#, c-format -msgid "%s: cannot modify limit: %s" -msgstr "%s: cannot modify limit: %s" - -#: builtins/umask.def:112 -msgid "octal number" -msgstr "octal number" - -#: builtins/umask.def:226 -#, c-format -msgid "`%c': invalid symbolic mode operator" -msgstr "‘%c’: invalid symbolic mode operator" - -#: builtins/umask.def:279 -#, c-format -msgid "`%c': invalid symbolic mode character" -msgstr "‘%c’: invalid symbolic mode character" - -#: error.c:165 -#, c-format -msgid "last command: %s\n" -msgstr "last command: %s\n" - -#: error.c:173 -msgid "Aborting..." -msgstr "Aborting..." - -#: error.c:260 -#, c-format -msgid "%s: warning: " -msgstr "%s: warning: " - -#: error.c:405 -msgid "unknown command error" -msgstr "unknown command error" - -#: error.c:406 -msgid "bad command type" -msgstr "bad command type" - -#: error.c:407 -msgid "bad connector" -msgstr "bad connector" - -#: error.c:408 -msgid "bad jump" -msgstr "bad jump" - -#: error.c:446 -#, c-format -msgid "%s: unbound variable" -msgstr "%s: unbound variable" - -#: eval.c:175 -msgid "timed out waiting for input: auto-logout\n" -msgstr "timed out waiting for input: auto-logout\n" - -#: execute_cmd.c:466 -#, c-format -msgid "cannot redirect standard input from /dev/null: %s" -msgstr "cannot redirect standard input from /dev/null: %s" - -#: execute_cmd.c:1036 -#, c-format -msgid "TIMEFORMAT: `%c': invalid format character" -msgstr "TIMEFORMAT: ‘%c’: invalid format character" - -#: execute_cmd.c:3521 -#, c-format -msgid "%s: restricted: cannot specify `/' in command names" -msgstr "%s: restricted: cannot specify ‘/’ in command names" - -#: execute_cmd.c:3609 -#, c-format -msgid "%s: command not found" -msgstr "%s: command not found" - -#: execute_cmd.c:3839 -#, c-format -msgid "%s: %s: bad interpreter" -msgstr "%s: %s: bad interpreter" - -#: execute_cmd.c:3876 -#, c-format -msgid "%s: cannot execute binary file" -msgstr "%s: cannot execute binary file" - -#: execute_cmd.c:3988 -#, c-format -msgid "cannot duplicate fd %d to fd %d" -msgstr "cannot duplicate fd %d to fd %d" - -#: expr.c:239 -msgid "expression recursion level exceeded" -msgstr "expression recursion level exceeded" - -#: expr.c:263 -msgid "recursion stack underflow" -msgstr "recursion stack underflow" - -#: expr.c:374 -msgid "syntax error in expression" -msgstr "syntax error in expression" - -#: expr.c:414 -msgid "attempted assignment to non-variable" -msgstr "attempted assignment to non-variable" - -#: expr.c:435 expr.c:440 expr.c:750 -msgid "division by 0" -msgstr "division by 0" - -#: expr.c:466 -msgid "bug: bad expassign token" -msgstr "bug: bad expassign token" - -#: expr.c:508 -msgid "`:' expected for conditional expression" -msgstr "‘:’ expected for conditional expression" - -#: expr.c:775 -msgid "exponent less than 0" -msgstr "exponent less than 0" - -#: expr.c:819 -msgid "identifier expected after pre-increment or pre-decrement" -msgstr "identifier expected after pre-increment or pre-decrement" - -#: expr.c:847 -msgid "missing `)'" -msgstr "missing ‘)’" - -#: expr.c:871 -msgid "syntax error: operand expected" -msgstr "syntax error: operand expected" - -#: expr.c:1146 -msgid "invalid number" -msgstr "invalid number" - -#: expr.c:1150 -msgid "invalid arithmetic base" -msgstr "invalid arithmetic base" - -#: expr.c:1170 -msgid "value too great for base" -msgstr "value too great for base" - -#: general.c:60 -msgid "getcwd: cannot access parent directories" -msgstr "getcwd: cannot access parent directories" - -#: input.c:231 -#, c-format -msgid "cannot allocate new file descriptor for bash input from fd %d" -msgstr "cannot allocate new file descriptor for bash input from fd %d" - -#: input.c:239 -#, c-format -msgid "save_bash_input: buffer already exists for new fd %d" -msgstr "save_bash_input: buffer already exists for new fd %d" - -#: jobs.c:693 -#, c-format -msgid "deleting stopped job %d with process group %ld" -msgstr "deleting stopped job %d with process group %ld" - -#: jobs.c:1001 -#, c-format -msgid "describe_pid: %ld: no such pid" -msgstr "describe_pid: %ld: no such pid" - -#: jobs.c:1632 nojobs.c:648 -#, c-format -msgid "wait: pid %ld is not a child of this shell" -msgstr "wait: pid %ld is not a child of this shell" - -#: jobs.c:1815 -#, c-format -msgid "wait_for: No record of process %ld" -msgstr "wait_for: No record of process %ld" - -#: jobs.c:2062 -#, c-format -msgid "wait_for_job: job %d is stopped" -msgstr "wait_for_job: job %d is stopped" - -#: jobs.c:2284 -#, c-format -msgid "%s: job has terminated" -msgstr "%s: job has terminated" - -#: jobs.c:2293 -#, c-format -msgid "%s: job %d already in background" -msgstr "%s: job %d already in background" - -#: jobs.c:3037 -msgid "no job control in this shell" -msgstr "no job control in this shell" - -#: lib/malloc/malloc.c:298 -#, c-format -msgid "malloc: failed assertion: %s\n" -msgstr "malloc: failed assertion: %s\n" - -#: lib/malloc/malloc.c:314 -#, c-format -msgid "" -"\r\n" -"malloc: %s:%d: assertion botched\r\n" -msgstr "" -"\r\n" -"malloc: %s:%d: assertion botched\r\n" - -#: lib/malloc/malloc.c:740 -msgid "malloc: block on free list clobbered" -msgstr "malloc: block on free list clobbered" - -#: lib/malloc/malloc.c:817 -msgid "free: called with already freed block argument" -msgstr "free: called with already freed block argument" - -#: lib/malloc/malloc.c:820 -msgid "free: called with unallocated block argument" -msgstr "free: called with unallocated block argument" - -#: lib/malloc/malloc.c:839 -msgid "free: underflow detected; mh_nbytes out of range" -msgstr "free: underflow detected; mh_nbytes out of range" - -#: lib/malloc/malloc.c:845 -msgid "free: start and end chunk sizes differ" -msgstr "free: start and end chunk sizes differ" - -#: lib/malloc/malloc.c:942 -msgid "realloc: called with unallocated block argument" -msgstr "realloc: called with unallocated block argument" - -#: lib/malloc/malloc.c:957 -msgid "realloc: underflow detected; mh_nbytes out of range" -msgstr "realloc: underflow detected; mh_nbytes out of range" - -#: lib/malloc/malloc.c:963 -msgid "realloc: start and end chunk sizes differ" -msgstr "realloc: start and end chunk sizes differ" - -#: lib/malloc/table.c:175 -msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" -msgstr "register_alloc: alloc table is full with FIND_ALLOC?\n" - -#: lib/malloc/table.c:182 -#, c-format -msgid "register_alloc: %p already in table as allocated?\n" -msgstr "register_alloc: %p already in table as allocated?\n" - -#: lib/malloc/table.c:218 -#, c-format -msgid "register_free: %p already in table as free?\n" -msgstr "register_free: %p already in table as free?\n" - -#: lib/malloc/watch.c:46 -msgid "allocated" -msgstr "allocated" - -#: lib/malloc/watch.c:48 -msgid "freed" -msgstr "freed" - -#: lib/malloc/watch.c:50 -msgid "requesting resize" -msgstr "requesting resize" - -#: lib/malloc/watch.c:52 -msgid "just resized" -msgstr "just resized" - -#: lib/malloc/watch.c:54 -msgid "bug: unknown operation" -msgstr "bug: unknown operation" - -#: lib/malloc/watch.c:56 -#, c-format -msgid "malloc: watch alert: %p %s " -msgstr "malloc: watch alert: %p %s " - -#: lib/sh/fmtulong.c:101 -msgid "invalid base" -msgstr "invalid base" - -#: lib/sh/netopen.c:158 -#, c-format -msgid "%s: host unknown" -msgstr "%s: host unknown" - -#: lib/sh/netopen.c:165 -#, c-format -msgid "%s: invalid service" -msgstr "%s: invalid service" - -#: lib/sh/netopen.c:296 -#, c-format -msgid "%s: bad network path specification" -msgstr "%s: bad network path specification" - -#: lib/sh/netopen.c:336 -msgid "network operations not supported" -msgstr "network operations not supported" - -#: mailcheck.c:382 -msgid "You have mail in $_" -msgstr "You have mail in $_" - -#: mailcheck.c:407 -msgid "You have new mail in $_" -msgstr "You have new mail in $_" - -#: mailcheck.c:423 -#, c-format -msgid "The mail in %s has been read\n" -msgstr "The mail in %s has been read\n" - -#: make_cmd.c:318 -msgid "syntax error: arithmetic expression required" -msgstr "syntax error: arithmetic expression required" - -#: make_cmd.c:320 -msgid "syntax error: `;' unexpected" -msgstr "syntax error: ‘;’ unexpected" - -#: make_cmd.c:321 -#, c-format -msgid "syntax error: `((%s))'" -msgstr "syntax error: ‘((%s))’" - -#: make_cmd.c:560 -#, c-format -msgid "make_here_document: bad instruction type %d" -msgstr "make_here_document: bad instruction type %d" - -#: make_cmd.c:730 -#, c-format -msgid "make_redirection: redirection instruction `%d' out of range" -msgstr "make_redirection: redirection instruction ‘%d’ out of range" - -#: parse.y:2726 -#, c-format -msgid "unexpected EOF while looking for matching `%c'" -msgstr "unexpected EOF while looking for matching ‘%c’" - -#: parse.y:3011 -msgid "unexpected EOF while looking for `]]'" -msgstr "unexpected EOF while looking for ‘]]’" - -#: parse.y:3016 -#, c-format -msgid "syntax error in conditional expression: unexpected token `%s'" -msgstr "syntax error in conditional expression: unexpected token ‘%s’" - -#: parse.y:3020 -msgid "syntax error in conditional expression" -msgstr "syntax error in conditional expression" - -#: parse.y:3098 -#, c-format -msgid "unexpected token `%s', expected `)'" -msgstr "unexpected token ‘%s’, expected ‘)’" - -#: parse.y:3102 -msgid "expected `)'" -msgstr "expected ‘)’" - -#: parse.y:3130 -#, c-format -msgid "unexpected argument `%s' to conditional unary operator" -msgstr "unexpected argument ‘%s’ to conditional unary operator" - -#: parse.y:3134 -msgid "unexpected argument to conditional unary operator" -msgstr "unexpected argument to conditional unary operator" - -#: parse.y:3171 -#, c-format -msgid "unexpected token `%s', conditional binary operator expected" -msgstr "unexpected token ‘%s’, conditional binary operator expected" - -#: parse.y:3175 -msgid "conditional binary operator expected" -msgstr "conditional binary operator expected" - -#: parse.y:3191 -#, c-format -msgid "unexpected argument `%s' to conditional binary operator" -msgstr "unexpected argument ‘%s’ to conditional binary operator" - -#: parse.y:3195 -msgid "unexpected argument to conditional binary operator" -msgstr "unexpected argument to conditional binary operator" - -#: parse.y:3206 -#, c-format -msgid "unexpected token `%c' in conditional command" -msgstr "unexpected token ‘%c’ in conditional command" - -#: parse.y:3209 -#, c-format -msgid "unexpected token `%s' in conditional command" -msgstr "unexpected token ‘%s’ in conditional command" - -#: parse.y:3213 -#, c-format -msgid "unexpected token %d in conditional command" -msgstr "unexpected token %d in conditional command" - -#: parse.y:4400 -#, c-format -msgid "syntax error near unexpected token `%s'" -msgstr "syntax error near unexpected token ‘%s’" - -#: parse.y:4418 -#, c-format -msgid "syntax error near `%s'" -msgstr "syntax error near ‘%s’" - -#: parse.y:4428 -msgid "syntax error: unexpected end of file" -msgstr "syntax error: unexpected end of file" - -#: parse.y:4428 -msgid "syntax error" -msgstr "syntax error" - -#: parse.y:4490 -#, c-format -msgid "Use \"%s\" to leave the shell.\n" -msgstr "Use “%s” to leave the shell.\n" - -#: parse.y:4649 -msgid "unexpected EOF while looking for matching `)'" -msgstr "unexpected EOF while looking for matching ‘)’" - -#: pcomplete.c:988 -#, c-format -msgid "completion: function `%s' not found" -msgstr "completion: function ‘%s’ not found" - -#: pcomplib.c:179 -#, c-format -msgid "progcomp_insert: %s: NULL COMPSPEC" -msgstr "progcomp_insert: %s: NULL COMPSPEC" - -#: print_cmd.c:260 -#, c-format -msgid "print_command: bad connector `%d'" -msgstr "print_command: bad connector ‘%d’" - -#: print_cmd.c:1172 -#, c-format -msgid "cprintf: `%c': invalid format character" -msgstr "cprintf: ‘%c’: invalid format character" - -#: redir.c:99 -msgid "file descriptor out of range" -msgstr "file descriptor out of range" - -#: redir.c:141 -#, c-format -msgid "%s: ambiguous redirect" -msgstr "%s: ambiguous redirect" - -#: redir.c:145 -#, c-format -msgid "%s: cannot overwrite existing file" -msgstr "%s: cannot overwrite existing file" - -#: redir.c:150 -#, c-format -msgid "%s: restricted: cannot redirect output" -msgstr "%s: restricted: cannot redirect output" - -#: redir.c:155 -#, c-format -msgid "cannot create temp file for here document: %s" -msgstr "cannot create temp file for here document: %s" - -#: redir.c:509 -msgid "/dev/(tcp|udp)/host/port not supported without networking" -msgstr "/dev/(tcp|udp)/host/port not supported without networking" - -#: redir.c:949 -msgid "redirection error: cannot duplicate fd" -msgstr "redirection error: cannot duplicate fd" - -#: shell.c:302 -msgid "could not find /tmp, please create!" -msgstr "could not find /tmp, please create!" - -#: shell.c:306 -msgid "/tmp must be a valid directory name" -msgstr "/tmp must be a valid directory name" - -#: shell.c:839 -#, c-format -msgid "%c%c: invalid option" -msgstr "%c%c: invalid option" - -#: shell.c:1590 -msgid "I have no name!" -msgstr "I have no name!" - -#: shell.c:1725 -#, c-format -msgid "" -"Usage:\t%s [GNU long option] [option] ...\n" -"\t%s [GNU long option] [option] script-file ...\n" -msgstr "" -"Usage:\t%s [GNU long option] [option] ...\n" -"\t%s [GNU long option] [option] script-file ...\n" - -#: shell.c:1727 -msgid "GNU long options:\n" -msgstr "GNU long options:\n" - -#: shell.c:1731 -msgid "Shell options:\n" -msgstr "Shell options:\n" - -#: shell.c:1732 -msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" -msgstr "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" - -#: shell.c:1747 -#, c-format -msgid "\t-%s or -o option\n" -msgstr "\t-%s or -o option\n" - -#: shell.c:1753 -#, c-format -msgid "Type `%s -c \"help set\"' for more information about shell options.\n" -msgstr "Type ‘%s -c “help set”’ for more information about shell options.\n" - -#: shell.c:1754 -#, c-format -msgid "Type `%s -c help' for more information about shell builtin commands.\n" -msgstr "Type ‘%s -c help’ for more information about shell builtin commands.\n" - -#: shell.c:1755 -msgid "Use the `bashbug' command to report bugs.\n" -msgstr "Use the ‘bashbug’ command to report bugs.\n" - -#: sig.c:485 -#, c-format -msgid "sigprocmask: %d: invalid operation" -msgstr "sigprocmask: %d: invalid operation" - -#: subst.c:1011 -#, c-format -msgid "bad substitution: no closing `%s' in %s" -msgstr "bad substitution: no closing ‘%s’ in %s" - -#: subst.c:2020 -#, c-format -msgid "%s: cannot assign list to array member" -msgstr "%s: cannot assign list to array member" - -#: subst.c:3516 subst.c:3532 -msgid "cannot make pipe for process substitution" -msgstr "cannot make pipe for process substitution" - -#: subst.c:3563 -msgid "cannot make child for process substitution" -msgstr "cannot make child for process substitution" - -#: subst.c:3608 -#, c-format -msgid "cannot open named pipe %s for reading" -msgstr "cannot open named pipe %s for reading" - -#: subst.c:3610 -#, c-format -msgid "cannot open named pipe %s for writing" -msgstr "cannot open named pipe %s for writing" - -#: subst.c:3618 -#, c-format -msgid "cannout reset nodelay mode for fd %d" -msgstr "cannout reset nodelay mode for fd %d" - -#: subst.c:3628 -#, c-format -msgid "cannot duplicate named pipe %s as fd %d" -msgstr "cannot duplicate named pipe %s as fd %d" - -#: subst.c:3803 -msgid "cannot make pipe for command substitution" -msgstr "cannot make pipe for command substitution" - -#: subst.c:3832 -msgid "cannot make child for command substitution" -msgstr "cannot make child for command substitution" - -#: subst.c:3849 -msgid "command_substitute: cannot duplicate pipe as fd 1" -msgstr "command_substitute: cannot duplicate pipe as fd 1" - -#: subst.c:4284 -#, c-format -msgid "%s: parameter null or not set" -msgstr "%s: parameter null or not set" - -#: subst.c:4529 -#, c-format -msgid "%s: substring expression < 0" -msgstr "%s: substring expression < 0" - -#: subst.c:5209 -#, c-format -msgid "%s: bad substitution" -msgstr "%s: bad substitution" - -#: subst.c:5283 -#, c-format -msgid "$%s: cannot assign in this way" -msgstr "$%s: cannot assign in this way" - -#: subst.c:6652 -#, c-format -msgid "no match: %s" -msgstr "no match: %s" - -#: test.c:154 -msgid "argument expected" -msgstr "argument expected" - -#: test.c:163 -#, c-format -msgid "%s: integer expression expected" -msgstr "%s: integer expression expected" - -#: test.c:361 -msgid "`)' expected" -msgstr "‘)’ expected" - -#: test.c:363 -#, c-format -msgid "`)' expected, found %s" -msgstr "‘)’ expected, found %s" - -#: test.c:378 test.c:787 test.c:790 -#, c-format -msgid "%s: unary operator expected" -msgstr "%s: unary operator expected" - -#: test.c:543 test.c:830 -#, c-format -msgid "%s: binary operator expected" -msgstr "%s: binary operator expected" - -#: test.c:905 -msgid "missing `]'" -msgstr "missing ‘]’" - -#: trap.c:194 -msgid "invalid signal number" -msgstr "invalid signal number" - -#: trap.c:309 -#, c-format -msgid "run_pending_traps: bad value in trap_list[%d]: %p" -msgstr "run_pending_traps: bad value in trap_list[%d]: %p" - -#: trap.c:313 -#, c-format -msgid "" -"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" -msgstr "" -"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" - -#: trap.c:349 -#, c-format -msgid "trap_handler: bad signal %d" -msgstr "trap_handler: bad signal %d" - -#: variables.c:310 -#, c-format -msgid "error importing function definition for `%s'" -msgstr "error importing function definition for ‘%s’" - -#: variables.c:670 -#, c-format -msgid "shell level (%d) too high, resetting to 1" -msgstr "shell level (%d) too high, resetting to 1" - -#: variables.c:1610 -msgid "make_local_variable: no function context at current scope" -msgstr "make_local_variable: no function context at current scope" - -#: variables.c:2709 -msgid "all_local_variables: no function context at current scope" -msgstr "all_local_variables: no function context at current scope" - -#: variables.c:2923 variables.c:2932 -#, c-format -msgid "invalid character %d in exportstr for %s" -msgstr "invalid character %d in exportstr for %s" - -#: variables.c:2938 -#, c-format -msgid "no `=' in exportstr for %s" -msgstr "no ‘=’ in exportstr for %s" - -#: variables.c:3363 -msgid "pop_var_context: head of shell_variables not a function context" -msgstr "pop_var_context: head of shell_variables not a function context" - -#: variables.c:3376 -msgid "pop_var_context: no global_variables context" -msgstr "pop_var_context: no global_variables context" - -#: variables.c:3442 -msgid "pop_scope: head of shell_variables not a temporary environment scope" -msgstr "pop_scope: head of shell_variables not a temporary environment scope" - -#: version.c:82 -msgid "Copyright (C) 2004 Free Software Foundation, Inc.\n" -msgstr "Copyright (C) 2004 Free Software Foundation, Inc.\n" - -#: xmalloc.c:93 -#, c-format -msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" -msgstr "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" - -#: xmalloc.c:95 -#, c-format -msgid "xmalloc: cannot allocate %lu bytes" -msgstr "xmalloc: cannot allocate %lu bytes" - -#: xmalloc.c:115 -#, c-format -msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" - -#: xmalloc.c:117 -#, c-format -msgid "xrealloc: cannot allocate %lu bytes" -msgstr "xrealloc: cannot allocate %lu bytes" - -#: xmalloc.c:151 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" -msgstr "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" - -#: xmalloc.c:153 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes" -msgstr "xmalloc: %s:%d: cannot allocate %lu bytes" - -#: xmalloc.c:175 -#, c-format -msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" - -#: xmalloc.c:177 -#, c-format -msgid "xrealloc: %s:%d: cannot allocate %lu bytes" -msgstr "xrealloc: %s:%d: cannot allocate %lu bytes" - -#: builtins.c:244 -msgid "`alias' with no arguments or with the -p option prints the list" -msgstr "‘alias’ with no arguments or with the -p option prints the list" - -#: builtins.c:245 -msgid "of aliases in the form alias NAME=VALUE on standard output." -msgstr "of aliases in the form alias NAME=VALUE on standard output." - -#: builtins.c:246 -msgid "Otherwise, an alias is defined for each NAME whose VALUE is given." -msgstr "Otherwise, an alias is defined for each NAME whose VALUE is given." - -#: builtins.c:247 -msgid "A trailing space in VALUE causes the next word to be checked for" -msgstr "A trailing space in VALUE causes the next word to be checked for" - -#: builtins.c:248 -msgid "alias substitution when the alias is expanded. Alias returns" -msgstr "alias substitution when the alias is expanded. Alias returns" - -#: builtins.c:249 -msgid "true unless a NAME is given for which no alias has been defined." -msgstr "true unless a NAME is given for which no alias has been defined." - -#: builtins.c:257 -msgid "" -"Remove NAMEs from the list of defined aliases. If the -a option is given," -msgstr "" -"Remove NAMEs from the list of defined aliases. If the -a option is given," - -#: builtins.c:258 -msgid "then remove all alias definitions." -msgstr "then remove all alias definitions." - -#: builtins.c:266 -msgid "Bind a key sequence to a Readline function or a macro, or set" -msgstr "Bind a key sequence to a Readline function or a macro, or set" - -#: builtins.c:267 -msgid "a Readline variable. The non-option argument syntax is equivalent" -msgstr "a Readline variable. The non-option argument syntax is equivalent" - -#: builtins.c:268 -msgid "to that found in ~/.inputrc, but must be passed as a single argument:" -msgstr "to that found in ~/.inputrc, but must be passed as a single argument:" - -#: builtins.c:269 -msgid "bind '\"\\C-x\\C-r\": re-read-init-file'." -msgstr "bind '“\\C-x\\C-r”: re-read-init-file'." - -#: builtins.c:270 -msgid "bind accepts the following options:" -msgstr "bind accepts the following options:" - -#: builtins.c:271 -msgid "" -" -m keymap Use `keymap' as the keymap for the duration of this" -msgstr "" -" -m keymap Use ‘keymap’ as the keymap for the duration of this" - -#: builtins.c:272 -msgid " command. Acceptable keymap names are emacs," -msgstr " command. Acceptable keymap names are emacs," - -#: builtins.c:273 -msgid "" -" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move," -msgstr "" -" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move," - -#: builtins.c:274 -msgid " vi-command, and vi-insert." -msgstr " vi-command, and vi-insert." - -#: builtins.c:275 -msgid " -l List names of functions." -msgstr " -l List names of functions." - -#: builtins.c:276 -msgid " -P List function names and bindings." -msgstr " -P List function names and bindings." - -#: builtins.c:277 -msgid " -p List functions and bindings in a form that can be" -msgstr " -p List functions and bindings in a form that can be" - -#: builtins.c:278 -msgid " reused as input." -msgstr " reused as input." - -#: builtins.c:279 -msgid " -r keyseq Remove the binding for KEYSEQ." -msgstr " -r keyseq Remove the binding for KEYSEQ." - -#: builtins.c:280 -msgid " -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when" -msgstr " -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when" - -#: builtins.c:281 -msgid "\t\t\t\tKEYSEQ is entered." -msgstr "\t\t\t\tKEYSEQ is entered." - -#: builtins.c:282 -msgid " -f filename Read key bindings from FILENAME." -msgstr " -f filename Read key bindings from FILENAME." - -#: builtins.c:283 -msgid " -q function-name Query about which keys invoke the named function." -msgstr " -q function-name Query about which keys invoke the named function." - -#: builtins.c:284 -msgid "" -" -u function-name Unbind all keys which are bound to the named function." -msgstr "" -" -u function-name Unbind all keys which are bound to the named function." - -#: builtins.c:285 -msgid " -V List variable names and values" -msgstr " -V List variable names and values" - -#: builtins.c:286 -msgid " -v List variable names and values in a form that can" -msgstr " -v List variable names and values in a form that can" - -#: builtins.c:287 -msgid " be reused as input." -msgstr " be reused as input." - -#: builtins.c:288 -msgid "" -" -S List key sequences that invoke macros and their values" -msgstr "" -" -S List key sequences that invoke macros and their values" - -#: builtins.c:289 -msgid "" -" -s List key sequences that invoke macros and their values" -msgstr "" -" -s List key sequences that invoke macros and their values" - -#: builtins.c:290 -msgid " in a form that can be reused as input." -msgstr " in a form that can be reused as input." - -#: builtins.c:297 -msgid "Exit from within a FOR, WHILE or UNTIL loop. If N is specified," -msgstr "Exit from within a FOR, WHILE or UNTIL loop. If N is specified," - -#: builtins.c:298 -msgid "break N levels." -msgstr "break N levels." - -#: builtins.c:304 -msgid "Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop." -msgstr "Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop." - -#: builtins.c:305 -msgid "If N is specified, resume at the N-th enclosing loop." -msgstr "If N is specified, resume at the N-th enclosing loop." - -#: builtins.c:311 -msgid "Run a shell builtin. This is useful when you wish to rename a" -msgstr "Run a shell builtin. This is useful when you wish to rename a" - -#: builtins.c:312 -msgid "shell builtin to be a function, but need the functionality of the" -msgstr "shell builtin to be a function, but need the functionality of the" - -#: builtins.c:313 -msgid "builtin within the function itself." -msgstr "builtin within the function itself." - -#: builtins.c:334 -msgid "Change the current directory to DIR. The variable $HOME is the" -msgstr "Change the current directory to DIR. The variable $HOME is the" - -#: builtins.c:335 -msgid "default DIR. The variable CDPATH defines the search path for" -msgstr "default DIR. The variable CDPATH defines the search path for" - -#: builtins.c:336 -msgid "the directory containing DIR. Alternative directory names in CDPATH" -msgstr "the directory containing DIR. Alternative directory names in CDPATH" - -#: builtins.c:337 -msgid "are separated by a colon (:). A null directory name is the same as" -msgstr "are separated by a colon (:). A null directory name is the same as" - -#: builtins.c:338 -msgid "the current directory, i.e. `.'. If DIR begins with a slash (/)," -msgstr "the current directory, i.e. ‘.’. If DIR begins with a slash (/)," - -#: builtins.c:339 -msgid "then CDPATH is not used. If the directory is not found, and the" -msgstr "then CDPATH is not used. If the directory is not found, and the" - -#: builtins.c:340 -msgid "shell option `cdable_vars' is set, then try the word as a variable" -msgstr "shell option ‘cdable_vars’ is set, then try the word as a variable" - -#: builtins.c:341 -msgid "name. If that variable has a value, then cd to the value of that" -msgstr "name. If that variable has a value, then cd to the value of that" - -#: builtins.c:342 -msgid "variable. The -P option says to use the physical directory structure" -msgstr "variable. The -P option says to use the physical directory structure" - -#: builtins.c:343 -msgid "" -"instead of following symbolic links; the -L option forces symbolic links" -msgstr "" -"instead of following symbolic links; the -L option forces symbolic links" - -#: builtins.c:344 -msgid "to be followed." -msgstr "to be followed." - -#: builtins.c:350 -msgid "Print the current working directory. With the -P option, pwd prints" -msgstr "Print the current working directory. With the -P option, pwd prints" - -#: builtins.c:351 -msgid "the physical directory, without any symbolic links; the -L option" -msgstr "the physical directory, without any symbolic links; the -L option" - -#: builtins.c:352 -msgid "makes pwd follow symbolic links." -msgstr "makes pwd follow symbolic links." - -#: builtins.c:358 -msgid "No effect; the command does nothing. A zero exit code is returned." -msgstr "No effect; the command does nothing. A zero exit code is returned." - -#: builtins.c:364 -msgid "Return a successful result." -msgstr "Return a successful result." - -#: builtins.c:370 -msgid "Return an unsuccessful result." -msgstr "Return an unsuccessful result." - -#: builtins.c:376 -msgid "Runs COMMAND with ARGS ignoring shell functions. If you have a shell" -msgstr "Runs COMMAND with ARGS ignoring shell functions. If you have a shell" - -#: builtins.c:377 -msgid "function called `ls', and you wish to call the command `ls', you can" -msgstr "function called ‘ls’, and you wish to call the command ‘ls’, you can" - -#: builtins.c:378 -msgid "say \"command ls\". If the -p option is given, a default value is used" -msgstr "say “command ls”. If the -p option is given, a default value is used" - -#: builtins.c:379 -msgid "for PATH that is guaranteed to find all of the standard utilities. If" -msgstr "for PATH that is guaranteed to find all of the standard utilities. If" - -#: builtins.c:380 -msgid "the -V or -v option is given, a string is printed describing COMMAND." -msgstr "the -V or -v option is given, a string is printed describing COMMAND." - -#: builtins.c:381 -msgid "The -V option produces a more verbose description." -msgstr "The -V option produces a more verbose description." - -#: builtins.c:387 -msgid "Declare variables and/or give them attributes. If no NAMEs are" -msgstr "Declare variables and/or give them attributes. If no NAMEs are" - -#: builtins.c:388 -msgid "given, then display the values of variables instead. The -p option" -msgstr "given, then display the values of variables instead. The -p option" - -#: builtins.c:389 -msgid "will display the attributes and values of each NAME." -msgstr "will display the attributes and values of each NAME." - -#: builtins.c:391 -msgid "The flags are:" -msgstr "The flags are:" - -#: builtins.c:393 -msgid " -a\tto make NAMEs arrays (if supported)" -msgstr " -a\tto make NAMEs arrays (if supported)" - -#: builtins.c:394 -msgid " -f\tto select from among function names only" -msgstr " -f\tto select from among function names only" - -#: builtins.c:395 -msgid "" -" -F\tto display function names (and line number and source file name if" -msgstr "" -" -F\tto display function names (and line number and source file name if" - -#: builtins.c:396 -msgid "\tdebugging) without definitions" -msgstr "\tdebugging) without definitions" - -#: builtins.c:397 -msgid " -i\tto make NAMEs have the `integer' attribute" -msgstr " -i\tto make NAMEs have the ‘integer’ attribute" - -#: builtins.c:398 -msgid " -r\tto make NAMEs readonly" -msgstr " -r\tto make NAMEs readonly" - -#: builtins.c:399 -msgid " -t\tto make NAMEs have the `trace' attribute" -msgstr " -t\tto make NAMEs have the ‘trace’ attribute" - -#: builtins.c:400 -msgid " -x\tto make NAMEs export" -msgstr " -x\tto make NAMEs export" - -#: builtins.c:402 -msgid "Variables with the integer attribute have arithmetic evaluation (see" -msgstr "Variables with the integer attribute have arithmetic evaluation (see" - -#: builtins.c:403 -msgid "`let') done when the variable is assigned to." -msgstr "‘let’) done when the variable is assigned to." - -#: builtins.c:405 -msgid "When displaying values of variables, -f displays a function's name" -msgstr "When displaying values of variables, -f displays a function's name" - -#: builtins.c:406 -msgid "and definition. The -F option restricts the display to function" -msgstr "and definition. The -F option restricts the display to function" - -#: builtins.c:407 -msgid "name only." -msgstr "name only." - -#: builtins.c:409 -msgid "Using `+' instead of `-' turns off the given attribute instead. When" -msgstr "Using ‘+’ instead of ‘-’ turns off the given attribute instead. When" - -#: builtins.c:410 -msgid "used in a function, makes NAMEs local, as with the `local' command." -msgstr "used in a function, makes NAMEs local, as with the ‘local’ command." - -#: builtins.c:416 -msgid "Obsolete. See `declare'." -msgstr "Obsolete. See ‘declare’." - -#: builtins.c:422 -msgid "Create a local variable called NAME, and give it VALUE. LOCAL" -msgstr "Create a local variable called NAME, and give it VALUE. LOCAL" - -#: builtins.c:423 -msgid "can only be used within a function; it makes the variable NAME" -msgstr "can only be used within a function; it makes the variable NAME" - -#: builtins.c:424 -msgid "have a visible scope restricted to that function and its children." -msgstr "have a visible scope restricted to that function and its children." - -#: builtins.c:431 -msgid "Output the ARGs. If -n is specified, the trailing newline is" -msgstr "Output the ARGs. If -n is specified, the trailing newline is" - -#: builtins.c:432 -msgid "suppressed. If the -e option is given, interpretation of the" -msgstr "suppressed. If the -e option is given, interpretation of the" - -#: builtins.c:433 -msgid "following backslash-escaped characters is turned on:" -msgstr "following backslash-escaped characters is turned on:" - -#: builtins.c:434 -msgid "\t\\a\talert (bell)" -msgstr "\t\\a\talert (bell)" - -#: builtins.c:435 -msgid "\t\\b\tbackspace" -msgstr "\t\\b\tbackspace" - -#: builtins.c:436 -msgid "\t\\c\tsuppress trailing newline" -msgstr "\t\\c\tsuppress trailing newline" - -#: builtins.c:437 -msgid "\t\\E\tescape character" -msgstr "\t\\E\tescape character" - -#: builtins.c:438 -msgid "\t\\f\tform feed" -msgstr "\t\\f\tform feed" - -#: builtins.c:439 -msgid "\t\\n\tnew line" -msgstr "\t\\n\tnew line" - -#: builtins.c:440 -msgid "\t\\r\tcarriage return" -msgstr "\t\\r\tcarriage return" - -#: builtins.c:441 -msgid "\t\\t\thorizontal tab" -msgstr "\t\\t\thorizontal tab" - -#: builtins.c:442 -msgid "\t\\v\tvertical tab" -msgstr "\t\\v\tvertical tab" - -#: builtins.c:443 -msgid "\t\\\\\tbackslash" -msgstr "\t\\\\\tbackslash" - -#: builtins.c:444 -msgid "\t\\num\tthe character whose ASCII code is NUM (octal)." -msgstr "\t\\num\tthe character whose ASCII code is NUM (octal)." - -#: builtins.c:446 -msgid "You can explicitly turn off the interpretation of the above characters" -msgstr "You can explicitly turn off the interpretation of the above characters" - -#: builtins.c:447 -msgid "with the -E option." -msgstr "with the -E option." - -#: builtins.c:455 -msgid "" -"Output the ARGs. If -n is specified, the trailing newline is suppressed." -msgstr "" -"Output the ARGs. If -n is specified, the trailing newline is suppressed." - -#: builtins.c:462 -msgid "Enable and disable builtin shell commands. This allows" -msgstr "Enable and disable builtin shell commands. This allows" - -#: builtins.c:463 -msgid "you to use a disk command which has the same name as a shell" -msgstr "you to use a disk command which has the same name as a shell" - -#: builtins.c:464 -msgid "builtin without specifying a full pathname. If -n is used, the" -msgstr "builtin without specifying a full pathname. If -n is used, the" - -#: builtins.c:465 -msgid "NAMEs become disabled; otherwise NAMEs are enabled. For example," -msgstr "NAMEs become disabled; otherwise NAMEs are enabled. For example," - -#: builtins.c:466 -msgid "to use the `test' found in $PATH instead of the shell builtin" -msgstr "to use the ‘test’ found in $PATH instead of the shell builtin" - -#: builtins.c:467 -msgid "version, type `enable -n test'. On systems supporting dynamic" -msgstr "version, type ‘enable -n test’. On systems supporting dynamic" - -#: builtins.c:468 -msgid "loading, the -f option may be used to load new builtins from the" -msgstr "loading, the -f option may be used to load new builtins from the" - -#: builtins.c:469 -msgid "shared object FILENAME. The -d option will delete a builtin" -msgstr "shared object FILENAME. The -d option will delete a builtin" - -#: builtins.c:470 -msgid "previously loaded with -f. If no non-option names are given, or" -msgstr "previously loaded with -f. If no non-option names are given, or" - -#: builtins.c:471 -msgid "the -p option is supplied, a list of builtins is printed. The" -msgstr "the -p option is supplied, a list of builtins is printed. The" - -#: builtins.c:472 -msgid "-a option means to print every builtin with an indication of whether" -msgstr "-a option means to print every builtin with an indication of whether" - -#: builtins.c:473 -msgid "" -"or not it is enabled. The -s option restricts the output to the POSIX.2" -msgstr "" -"or not it is enabled. The -s option restricts the output to the POSIX.2" - -#: builtins.c:474 -msgid "" -"`special' builtins. The -n option displays a list of all disabled builtins." -msgstr "" -"‘special’ builtins. The -n option displays a list of all disabled builtins." - -#: builtins.c:480 -msgid "Read ARGs as input to the shell and execute the resulting command(s)." -msgstr "Read ARGs as input to the shell and execute the resulting command(s)." - -#: builtins.c:486 -msgid "Getopts is used by shell procedures to parse positional parameters." -msgstr "Getopts is used by shell procedures to parse positional parameters." - -#: builtins.c:488 -msgid "OPTSTRING contains the option letters to be recognized; if a letter" -msgstr "OPTSTRING contains the option letters to be recognized; if a letter" - -#: builtins.c:489 -msgid "is followed by a colon, the option is expected to have an argument," -msgstr "is followed by a colon, the option is expected to have an argument," - -#: builtins.c:490 -msgid "which should be separated from it by white space." -msgstr "which should be separated from it by white space." - -#: builtins.c:492 -msgid "Each time it is invoked, getopts will place the next option in the" -msgstr "Each time it is invoked, getopts will place the next option in the" - -#: builtins.c:493 -msgid "shell variable $name, initializing name if it does not exist, and" -msgstr "shell variable $name, initializing name if it does not exist, and" - -#: builtins.c:494 -msgid "the index of the next argument to be processed into the shell" -msgstr "the index of the next argument to be processed into the shell" - -#: builtins.c:495 -msgid "variable OPTIND. OPTIND is initialized to 1 each time the shell or" -msgstr "variable OPTIND. OPTIND is initialized to 1 each time the shell or" - -#: builtins.c:496 -msgid "a shell script is invoked. When an option requires an argument," -msgstr "a shell script is invoked. When an option requires an argument," - -#: builtins.c:497 -msgid "getopts places that argument into the shell variable OPTARG." -msgstr "getopts places that argument into the shell variable OPTARG." - -#: builtins.c:499 -msgid "getopts reports errors in one of two ways. If the first character" -msgstr "getopts reports errors in one of two ways. If the first character" - -#: builtins.c:500 -msgid "of OPTSTRING is a colon, getopts uses silent error reporting. In" -msgstr "of OPTSTRING is a colon, getopts uses silent error reporting. In" - -#: builtins.c:501 -msgid "this mode, no error messages are printed. If an invalid option is" -msgstr "this mode, no error messages are printed. If an invalid option is" - -#: builtins.c:502 -msgid "seen, getopts places the option character found into OPTARG. If a" -msgstr "seen, getopts places the option character found into OPTARG. If a" - -#: builtins.c:503 -msgid "required argument is not found, getopts places a ':' into NAME and" -msgstr "required argument is not found, getopts places a ‘:’ into NAME and" - -#: builtins.c:504 -msgid "sets OPTARG to the option character found. If getopts is not in" -msgstr "sets OPTARG to the option character found. If getopts is not in" - -#: builtins.c:505 -msgid "silent mode, and an invalid option is seen, getopts places '?' into" -msgstr "silent mode, and an invalid option is seen, getopts places ‘?’ into" - -#: builtins.c:506 -msgid "NAME and unsets OPTARG. If a required argument is not found, a '?'" -msgstr "NAME and unsets OPTARG. If a required argument is not found, a ‘?’" - -#: builtins.c:507 -msgid "is placed in NAME, OPTARG is unset, and a diagnostic message is" -msgstr "is placed in NAME, OPTARG is unset, and a diagnostic message is" - -#: builtins.c:508 -msgid "printed." -msgstr "printed." - -#: builtins.c:510 -msgid "If the shell variable OPTERR has the value 0, getopts disables the" -msgstr "If the shell variable OPTERR has the value 0, getopts disables the" - -#: builtins.c:511 -msgid "printing of error messages, even if the first character of" -msgstr "printing of error messages, even if the first character of" - -#: builtins.c:512 -msgid "OPTSTRING is not a colon. OPTERR has the value 1 by default." -msgstr "OPTSTRING is not a colon. OPTERR has the value 1 by default." - -#: builtins.c:514 -msgid "Getopts normally parses the positional parameters ($0 - $9), but if" -msgstr "Getopts normally parses the positional parameters ($0 - $9), but if" - -#: builtins.c:515 -msgid "more arguments are given, they are parsed instead." -msgstr "more arguments are given, they are parsed instead." - -#: builtins.c:521 -msgid "Exec FILE, replacing this shell with the specified program." -msgstr "Exec FILE, replacing this shell with the specified program." - -#: builtins.c:522 -msgid "If FILE is not specified, the redirections take effect in this" -msgstr "If FILE is not specified, the redirections take effect in this" - -#: builtins.c:523 -msgid "shell. If the first argument is `-l', then place a dash in the" -msgstr "shell. If the first argument is ‘-l’, then place a dash in the" - -#: builtins.c:524 -msgid "zeroth arg passed to FILE, as login does. If the `-c' option" -msgstr "zeroth arg passed to FILE, as login does. If the ‘-c’ option" - -#: builtins.c:525 -msgid "is supplied, FILE is executed with a null environment. The `-a'" -msgstr "is supplied, FILE is executed with a null environment. The ‘-a’" - -#: builtins.c:526 -msgid "option means to make set argv[0] of the executed process to NAME." -msgstr "option means to make set argv[0] of the executed process to NAME." - -#: builtins.c:527 -msgid "If the file cannot be executed and the shell is not interactive," -msgstr "If the file cannot be executed and the shell is not interactive," - -#: builtins.c:528 -msgid "then the shell exits, unless the shell option `execfail' is set." -msgstr "then the shell exits, unless the shell option ‘execfail’ is set." - -#: builtins.c:534 -msgid "Exit the shell with a status of N. If N is omitted, the exit status" -msgstr "Exit the shell with a status of N. If N is omitted, the exit status" - -#: builtins.c:535 -msgid "is that of the last command executed." -msgstr "is that of the last command executed." - -#: builtins.c:541 -msgid "Logout of a login shell." -msgstr "Logout of a login shell." - -#: builtins.c:548 -msgid "" -"fc is used to list or edit and re-execute commands from the history list." -msgstr "" -"fc is used to list or edit and re-execute commands from the history list." - -#: builtins.c:549 -msgid "FIRST and LAST can be numbers specifying the range, or FIRST can be a" -msgstr "FIRST and LAST can be numbers specifying the range, or FIRST can be a" - -#: builtins.c:550 -msgid "string, which means the most recent command beginning with that" -msgstr "string, which means the most recent command beginning with that" - -#: builtins.c:551 -msgid "string." -msgstr "string." - -#: builtins.c:553 -msgid "" -" -e ENAME selects which editor to use. Default is FCEDIT, then EDITOR," -msgstr "" -" -e ENAME selects which editor to use. Default is FCEDIT, then EDITOR," - -#: builtins.c:554 -msgid " then vi." -msgstr " then vi." - -#: builtins.c:556 -msgid " -l means list lines instead of editing." -msgstr " -l means list lines instead of editing." - -#: builtins.c:557 -msgid " -n means no line numbers listed." -msgstr " -n means no line numbers listed." - -#: builtins.c:558 -msgid "" -" -r means reverse the order of the lines (making it newest listed first)." -msgstr "" -" -r means reverse the order of the lines (making it newest listed first)." - -#: builtins.c:560 -msgid "With the `fc -s [pat=rep ...] [command]' format, the command is" -msgstr "With the ‘fc -s [pat=rep ...] [command]’ format, the command is" - -#: builtins.c:561 -msgid "re-executed after the substitution OLD=NEW is performed." -msgstr "re-executed after the substitution OLD=NEW is performed." - -#: builtins.c:563 -msgid "A useful alias to use with this is r='fc -s', so that typing `r cc'" -msgstr "A useful alias to use with this is r='fc -s', so that typing ‘r cc’" - -#: builtins.c:564 -msgid "runs the last command beginning with `cc' and typing `r' re-executes" -msgstr "runs the last command beginning with ‘cc’ and typing ‘r’ re-executes" - -#: builtins.c:565 -msgid "the last command." -msgstr "the last command." - -#: builtins.c:573 -msgid "Place JOB_SPEC in the foreground, and make it the current job. If" -msgstr "Place JOB_SPEC in the foreground, and make it the current job. If" - -#: builtins.c:574 -msgid "JOB_SPEC is not present, the shell's notion of the current job is" -msgstr "JOB_SPEC is not present, the shell's notion of the current job is" - -#: builtins.c:575 -msgid "used." -msgstr "used." - -#: builtins.c:583 -msgid "Place JOB_SPEC in the background, as if it had been started with" -msgstr "Place JOB_SPEC in the background, as if it had been started with" - -#: builtins.c:584 -msgid "`&'. If JOB_SPEC is not present, the shell's notion of the current" -msgstr "‘&’. If JOB_SPEC is not present, the shell's notion of the current" - -#: builtins.c:585 -msgid "job is used." -msgstr "job is used." - -#: builtins.c:592 -msgid "For each NAME, the full pathname of the command is determined and" -msgstr "For each NAME, the full pathname of the command is determined and" - -#: builtins.c:593 -msgid "remembered. If the -p option is supplied, PATHNAME is used as the" -msgstr "remembered. If the -p option is supplied, PATHNAME is used as the" - -#: builtins.c:594 -msgid "full pathname of NAME, and no path search is performed. The -r" -msgstr "full pathname of NAME, and no path search is performed. The -r" - -#: builtins.c:595 -msgid "option causes the shell to forget all remembered locations. The -d" -msgstr "option causes the shell to forget all remembered locations. The -d" - -#: builtins.c:596 -msgid "option causes the shell to forget the remembered location of each NAME." -msgstr "" -"option causes the shell to forget the remembered location of each NAME." - -#: builtins.c:597 -msgid "If the -t option is supplied the full pathname to which each NAME" -msgstr "If the -t option is supplied the full pathname to which each NAME" - -#: builtins.c:598 -msgid "corresponds is printed. If multiple NAME arguments are supplied with" -msgstr "corresponds is printed. If multiple NAME arguments are supplied with" - -#: builtins.c:599 -msgid "-t, the NAME is printed before the hashed full pathname. The -l option" -msgstr "" -"-t, the NAME is printed before the hashed full pathname. The -l option" - -#: builtins.c:600 -msgid "causes output to be displayed in a format that may be reused as input." -msgstr "causes output to be displayed in a format that may be reused as input." - -#: builtins.c:601 -msgid "" -"If no arguments are given, information about remembered commands is " -"displayed." -msgstr "" -"If no arguments are given, information about remembered commands is " -"displayed." - -#: builtins.c:608 -msgid "Display helpful information about builtin commands. If PATTERN is" -msgstr "Display helpful information about builtin commands. If PATTERN is" - -#: builtins.c:609 -msgid "specified, gives detailed help on all commands matching PATTERN," -msgstr "specified, gives detailed help on all commands matching PATTERN," - -#: builtins.c:610 -msgid "otherwise a list of the builtins is printed. The -s option" -msgstr "otherwise a list of the builtins is printed. The -s option" - -#: builtins.c:611 -msgid "restricts the output for each builtin command matching PATTERN to" -msgstr "restricts the output for each builtin command matching PATTERN to" - -#: builtins.c:612 -msgid "a short usage synopsis." -msgstr "a short usage synopsis." - -#: builtins.c:620 -msgid "Display the history list with line numbers. Lines listed with" -msgstr "Display the history list with line numbers. Lines listed with" - -#: builtins.c:621 -msgid "with a `*' have been modified. Argument of N says to list only" -msgstr "with a ‘*’ have been modified. Argument of N says to list only" - -#: builtins.c:622 -msgid "the last N lines. The `-c' option causes the history list to be" -msgstr "the last N lines. The ‘-c’ option causes the history list to be" - -#: builtins.c:623 -msgid "cleared by deleting all of the entries. The `-d' option deletes" -msgstr "cleared by deleting all of the entries. The ‘-d’ option deletes" - -#: builtins.c:624 -msgid "the history entry at offset OFFSET. The `-w' option writes out the" -msgstr "the history entry at offset OFFSET. The ‘-w’ option writes out the" - -#: builtins.c:625 -msgid "current history to the history file; `-r' means to read the file and" -msgstr "current history to the history file; ‘-r’ means to read the file and" - -#: builtins.c:626 -msgid "append the contents to the history list instead. `-a' means" -msgstr "append the contents to the history list instead. ‘-a’ means" - -#: builtins.c:627 -msgid "to append history lines from this session to the history file." -msgstr "to append history lines from this session to the history file." - -#: builtins.c:628 -msgid "Argument `-n' means to read all history lines not already read" -msgstr "Argument ‘-n’ means to read all history lines not already read" - -#: builtins.c:629 -msgid "from the history file and append them to the history list." -msgstr "from the history file and append them to the history list." - -#: builtins.c:631 -msgid "If FILENAME is given, then that is used as the history file else" -msgstr "If FILENAME is given, then that is used as the history file else" - -#: builtins.c:632 -msgid "if $HISTFILE has a value, that is used, else ~/.bash_history." -msgstr "if $HISTFILE has a value, that is used, else ~/.bash_history." - -#: builtins.c:633 -msgid "If the -s option is supplied, the non-option ARGs are appended to" -msgstr "If the -s option is supplied, the non-option ARGs are appended to" - -#: builtins.c:634 -msgid "the history list as a single entry. The -p option means to perform" -msgstr "the history list as a single entry. The -p option means to perform" - -#: builtins.c:635 -msgid "history expansion on each ARG and display the result, without storing" -msgstr "history expansion on each ARG and display the result, without storing" - -#: builtins.c:636 -msgid "anything in the history list." -msgstr "anything in the history list." - -#: builtins.c:638 -msgid "If the $HISTTIMEFORMAT variable is set and not null, its value is used" -msgstr "If the $HISTTIMEFORMAT variable is set and not null, its value is used" - -#: builtins.c:639 -msgid "as a format string for strftime(3) to print the time stamp associated" -msgstr "as a format string for strftime(3) to print the time stamp associated" - -#: builtins.c:640 -msgid "" -"with each displayed history entry. No time stamps are printed otherwise." -msgstr "" -"with each displayed history entry. No time stamps are printed otherwise." - -#: builtins.c:648 -msgid "Lists the active jobs. The -l option lists process id's in addition" -msgstr "Lists the active jobs. The -l option lists process id's in addition" - -#: builtins.c:649 -msgid "to the normal information; the -p option lists process id's only." -msgstr "to the normal information; the -p option lists process id's only." - -#: builtins.c:650 -msgid "If -n is given, only processes that have changed status since the last" -msgstr "If -n is given, only processes that have changed status since the last" - -#: builtins.c:651 -msgid "notification are printed. JOBSPEC restricts output to that job. The" -msgstr "notification are printed. JOBSPEC restricts output to that job. The" - -#: builtins.c:652 -msgid "-r and -s options restrict output to running and stopped jobs only," -msgstr "-r and -s options restrict output to running and stopped jobs only," - -#: builtins.c:653 -msgid "respectively. Without options, the status of all active jobs is" -msgstr "respectively. Without options, the status of all active jobs is" - -#: builtins.c:654 -msgid "printed. If -x is given, COMMAND is run after all job specifications" -msgstr "printed. If -x is given, COMMAND is run after all job specifications" - -#: builtins.c:655 -msgid "" -"that appear in ARGS have been replaced with the process ID of that job's" -msgstr "" -"that appear in ARGS have been replaced with the process ID of that job's" - -#: builtins.c:656 -msgid "process group leader." -msgstr "process group leader." - -#: builtins.c:664 -msgid "" -"By default, removes each JOBSPEC argument from the table of active jobs." -msgstr "" -"By default, removes each JOBSPEC argument from the table of active jobs." - -#: builtins.c:665 -msgid "" -"If the -h option is given, the job is not removed from the table, but is" -msgstr "" -"If the -h option is given, the job is not removed from the table, but is" - -#: builtins.c:666 -msgid "marked so that SIGHUP is not sent to the job if the shell receives a" -msgstr "marked so that SIGHUP is not sent to the job if the shell receives a" - -#: builtins.c:667 -msgid "" -"SIGHUP. The -a option, when JOBSPEC is not supplied, means to remove all" -msgstr "" -"SIGHUP. The -a option, when JOBSPEC is not supplied, means to remove all" - -#: builtins.c:668 -msgid "" -"jobs from the job table; the -r option means to remove only running jobs." -msgstr "" -"jobs from the job table; the -r option means to remove only running jobs." - -#: builtins.c:675 -msgid "Send the processes named by PID (or JOB) the signal SIGSPEC. If" -msgstr "Send the processes named by PID (or JOB) the signal SIGSPEC. If" - -#: builtins.c:676 -msgid "SIGSPEC is not present, then SIGTERM is assumed. An argument of `-l'" -msgstr "SIGSPEC is not present, then SIGTERM is assumed. An argument of ‘-l’" - -#: builtins.c:677 -msgid "lists the signal names; if arguments follow `-l' they are assumed to" -msgstr "lists the signal names; if arguments follow ‘-l’ they are assumed to" - -#: builtins.c:678 -msgid "be signal numbers for which names should be listed. Kill is a shell" -msgstr "be signal numbers for which names should be listed. Kill is a shell" - -#: builtins.c:679 -msgid "builtin for two reasons: it allows job IDs to be used instead of" -msgstr "builtin for two reasons: it allows job IDs to be used instead of" - -#: builtins.c:680 -msgid "process IDs, and, if you have reached the limit on processes that" -msgstr "process IDs, and, if you have reached the limit on processes that" - -#: builtins.c:681 -msgid "you can create, you don't have to start a process to kill another one." -msgstr "you can create, you don't have to start a process to kill another one." - -#: builtins.c:687 -msgid "Each ARG is an arithmetic expression to be evaluated. Evaluation" -msgstr "Each ARG is an arithmetic expression to be evaluated. Evaluation" - -#: builtins.c:688 -msgid "is done in fixed-width integers with no check for overflow, though" -msgstr "is done in fixed-width integers with no check for overflow, though" - -#: builtins.c:689 -msgid "division by 0 is trapped and flagged as an error. The following" -msgstr "division by 0 is trapped and flagged as an error. The following" - -#: builtins.c:690 -msgid "list of operators is grouped into levels of equal-precedence operators." -msgstr "" -"list of operators is grouped into levels of equal-precedence operators." - -#: builtins.c:691 -msgid "The levels are listed in order of decreasing precedence." -msgstr "The levels are listed in order of decreasing precedence." - -#: builtins.c:693 -msgid "\tid++, id--\tvariable post-increment, post-decrement" -msgstr "\tid++, id--\tvariable post-increment, post-decrement" - -#: builtins.c:694 -msgid "\t++id, --id\tvariable pre-increment, pre-decrement" -msgstr "\t++id, --id\tvariable pre-increment, pre-decrement" - -#: builtins.c:695 -msgid "\t-, +\t\tunary minus, plus" -msgstr "\t-, +\t\tunary minus, plus" - -#: builtins.c:696 -msgid "\t!, ~\t\tlogical and bitwise negation" -msgstr "\t!, ~\t\tlogical and bitwise negation" - -#: builtins.c:697 -msgid "\t**\t\texponentiation" -msgstr "\t**\t\texponentiation" - -#: builtins.c:698 -msgid "\t*, /, %\t\tmultiplication, division, remainder" -msgstr "\t*, /, %\t\tmultiplication, division, remainder" - -#: builtins.c:699 -msgid "\t+, -\t\taddition, subtraction" -msgstr "\t+, -\t\taddition, subtraction" - -#: builtins.c:700 -msgid "\t<<, >>\t\tleft and right bitwise shifts" -msgstr "\t<<, >>\t\tleft and right bitwise shifts" - -#: builtins.c:701 -msgid "\t<=, >=, <, >\tcomparison" -msgstr "\t<=, >=, <, >\tcomparison" - -#: builtins.c:702 -msgid "\t==, !=\t\tequality, inequality" -msgstr "\t==, !=\t\tequality, inequality" - -#: builtins.c:703 -msgid "\t&\t\tbitwise AND" -msgstr "\t&\t\tbitwise AND" - -#: builtins.c:704 -msgid "\t^\t\tbitwise XOR" -msgstr "\t^\t\tbitwise XOR" - -#: builtins.c:705 -msgid "\t|\t\tbitwise OR" -msgstr "\t|\t\tbitwise OR" - -#: builtins.c:706 -msgid "\t&&\t\tlogical AND" -msgstr "\t&&\t\tlogical AND" - -#: builtins.c:707 -msgid "\t||\t\tlogical OR" -msgstr "\t||\t\tlogical OR" - -#: builtins.c:708 -msgid "\texpr ? expr : expr" -msgstr "\texpr ? expr : expr" - -#: builtins.c:709 -msgid "\t\t\tconditional operator" -msgstr "\t\t\tconditional operator" - -#: builtins.c:710 -msgid "\t=, *=, /=, %=," -msgstr "\t=, *=, /=, %=," - -#: builtins.c:711 -msgid "\t+=, -=, <<=, >>=," -msgstr "\t+=, -=, <<=, >>=," - -#: builtins.c:712 -msgid "\t&=, ^=, |=\tassignment" -msgstr "\t&=, ^=, |=\tassignment" - -#: builtins.c:714 -msgid "Shell variables are allowed as operands. The name of the variable" -msgstr "Shell variables are allowed as operands. The name of the variable" - -#: builtins.c:715 -msgid "is replaced by its value (coerced to a fixed-width integer) within" -msgstr "is replaced by its value (coerced to a fixed-width integer) within" - -#: builtins.c:716 -msgid "an expression. The variable need not have its integer attribute" -msgstr "an expression. The variable need not have its integer attribute" - -#: builtins.c:717 -msgid "turned on to be used in an expression." -msgstr "turned on to be used in an expression." - -#: builtins.c:719 -msgid "Operators are evaluated in order of precedence. Sub-expressions in" -msgstr "Operators are evaluated in order of precedence. Sub-expressions in" - -#: builtins.c:720 -msgid "parentheses are evaluated first and may override the precedence" -msgstr "parentheses are evaluated first and may override the precedence" - -#: builtins.c:721 -msgid "rules above." -msgstr "rules above." - -#: builtins.c:723 -msgid "If the last ARG evaluates to 0, let returns 1; 0 is returned" -msgstr "If the last ARG evaluates to 0, let returns 1; 0 is returned" - -#: builtins.c:724 -msgid "otherwise." -msgstr "otherwise." - -#: builtins.c:730 -msgid "" -"One line is read from the standard input, or from file descriptor FD if the" -msgstr "" -"One line is read from the standard input, or from file descriptor FD if the" - -#: builtins.c:731 -msgid "" -"-u option is supplied, and the first word is assigned to the first NAME," -msgstr "" -"-u option is supplied, and the first word is assigned to the first NAME," - -#: builtins.c:732 -msgid "" -"the second word to the second NAME, and so on, with leftover words assigned" -msgstr "" -"the second word to the second NAME, and so on, with leftover words assigned" - -#: builtins.c:733 -msgid "" -"to the last NAME. Only the characters found in $IFS are recognized as word" -msgstr "" -"to the last NAME. Only the characters found in $IFS are recognized as word" - -#: builtins.c:734 -msgid "" -"delimiters. If no NAMEs are supplied, the line read is stored in the REPLY" -msgstr "" -"delimiters. If no NAMEs are supplied, the line read is stored in the REPLY" - -#: builtins.c:735 -msgid "variable. If the -r option is given, this signifies `raw' input, and" -msgstr "variable. If the -r option is given, this signifies ‘raw’ input, and" - -#: builtins.c:736 -msgid "backslash escaping is disabled. The -d option causes read to continue" -msgstr "backslash escaping is disabled. The -d option causes read to continue" - -#: builtins.c:737 -msgid "" -"until the first character of DELIM is read, rather than newline. If the -p" -msgstr "" -"until the first character of DELIM is read, rather than newline. If the -p" - -#: builtins.c:738 -msgid "" -"option is supplied, the string PROMPT is output without a trailing newline" -msgstr "" -"option is supplied, the string PROMPT is output without a trailing newline" - -#: builtins.c:739 -msgid "" -"before attempting to read. If -a is supplied, the words read are assigned" -msgstr "" -"before attempting to read. If -a is supplied, the words read are assigned" - -#: builtins.c:740 -msgid "" -"to sequential indices of ARRAY, starting at zero. If -e is supplied and" -msgstr "" -"to sequential indices of ARRAY, starting at zero. If -e is supplied and" - -#: builtins.c:741 -msgid "" -"the shell is interactive, readline is used to obtain the line. If -n is" -msgstr "" -"the shell is interactive, readline is used to obtain the line. If -n is" - -#: builtins.c:742 -msgid "supplied with a non-zero NCHARS argument, read returns after NCHARS" -msgstr "supplied with a non-zero NCHARS argument, read returns after NCHARS" - -#: builtins.c:743 -msgid "characters have been read. The -s option causes input coming from a" -msgstr "characters have been read. The -s option causes input coming from a" - -#: builtins.c:744 -msgid "terminal to not be echoed." -msgstr "terminal to not be echoed." - -#: builtins.c:746 -msgid "" -"The -t option causes read to time out and return failure if a complete line" -msgstr "" -"The -t option causes read to time out and return failure if a complete line" - -#: builtins.c:747 -msgid "" -"of input is not read within TIMEOUT seconds. If the TMOUT variable is set," -msgstr "" -"of input is not read within TIMEOUT seconds. If the TMOUT variable is set," - -#: builtins.c:748 -msgid "" -"its value is the default timeout. The return code is zero, unless end-of-" -"file" -msgstr "" -"its value is the default timeout. The return code is zero, unless end-of-" -"file" - -#: builtins.c:749 -msgid "" -"is encountered, read times out, or an invalid file descriptor is supplied as" -msgstr "" -"is encountered, read times out, or an invalid file descriptor is supplied as" - -#: builtins.c:750 -msgid "the argument to -u." -msgstr "the argument to -u." - -#: builtins.c:756 -msgid "Causes a function to exit with the return value specified by N. If N" -msgstr "Causes a function to exit with the return value specified by N. If N" - -#: builtins.c:757 -msgid "is omitted, the return status is that of the last command." -msgstr "is omitted, the return status is that of the last command." - -#: builtins.c:763 -msgid " -a Mark variables which are modified or created for export." -msgstr " -a Mark variables which are modified or created for export." - -#: builtins.c:764 -msgid " -b Notify of job termination immediately." -msgstr " -b Notify of job termination immediately." - -#: builtins.c:765 -msgid " -e Exit immediately if a command exits with a non-zero status." -msgstr " -e Exit immediately if a command exits with a non-zero status." - -#: builtins.c:766 -msgid " -f Disable file name generation (globbing)." -msgstr " -f Disable file name generation (globbing)." - -#: builtins.c:767 -msgid " -h Remember the location of commands as they are looked up." -msgstr " -h Remember the location of commands as they are looked up." - -#: builtins.c:768 -msgid " -k All assignment arguments are placed in the environment for a" -msgstr " -k All assignment arguments are placed in the environment for a" - -#: builtins.c:769 -msgid " command, not just those that precede the command name." -msgstr " command, not just those that precede the command name." - -#: builtins.c:770 -msgid " -m Job control is enabled." -msgstr " -m Job control is enabled." - -#: builtins.c:771 -msgid " -n Read commands but do not execute them." -msgstr " -n Read commands but do not execute them." - -#: builtins.c:772 -msgid " -o option-name" -msgstr " -o option-name" - -#: builtins.c:773 -msgid " Set the variable corresponding to option-name:" -msgstr " Set the variable corresponding to option-name:" - -#: builtins.c:774 -msgid " allexport same as -a" -msgstr " allexport same as -a" - -#: builtins.c:775 -msgid " braceexpand same as -B" -msgstr " braceexpand same as -B" - -#: builtins.c:777 -msgid " emacs use an emacs-style line editing interface" -msgstr " emacs use an emacs-style line editing interface" - -#: builtins.c:779 -msgid " errexit same as -e" -msgstr " errexit same as -e" - -#: builtins.c:780 -msgid " errtrace same as -E" -msgstr " errtrace same as -E" - -#: builtins.c:781 -msgid " functrace same as -T" -msgstr " functrace same as -T" - -#: builtins.c:782 -msgid " hashall same as -h" -msgstr " hashall same as -h" - -#: builtins.c:784 -msgid " histexpand same as -H" -msgstr " histexpand same as -H" - -#: builtins.c:787 -msgid " history enable command history" -msgstr " history enable command history" - -#: builtins.c:789 -msgid " ignoreeof the shell will not exit upon reading EOF" -msgstr " ignoreeof the shell will not exit upon reading EOF" - -#: builtins.c:790 -msgid " interactive-comments" -msgstr " interactive-comments" - -#: builtins.c:791 -msgid "" -" allow comments to appear in interactive commands" -msgstr "" -" allow comments to appear in interactive commands" - -#: builtins.c:792 -msgid " keyword same as -k" -msgstr " keyword same as -k" - -#: builtins.c:793 -msgid " monitor same as -m" -msgstr " monitor same as -m" - -#: builtins.c:794 -msgid " noclobber same as -C" -msgstr " noclobber same as -C" - -#: builtins.c:795 -msgid " noexec same as -n" -msgstr " noexec same as -n" - -#: builtins.c:796 -msgid " noglob same as -f" -msgstr " noglob same as -f" - -#: builtins.c:797 -msgid " nolog currently accepted but ignored" -msgstr " nolog currently accepted but ignored" - -#: builtins.c:798 -msgid " notify same as -b" -msgstr " notify same as -b" - -#: builtins.c:799 -msgid " nounset same as -u" -msgstr " nounset same as -u" - -#: builtins.c:800 -msgid " onecmd same as -t" -msgstr " onecmd same as -t" - -#: builtins.c:801 -msgid " physical same as -P" -msgstr " physical same as -P" - -#: builtins.c:802 -msgid "" -" pipefail the return value of a pipeline is the status of" -msgstr "" -" pipefail the return value of a pipeline is the status of" - -#: builtins.c:803 -msgid "" -" the last command to exit with a non-zero status," -msgstr "" -" the last command to exit with a non-zero status," - -#: builtins.c:804 -msgid "" -" or zero if no command exited with a non-zero status" -msgstr "" -" or zero if no command exited with a non-zero status" - -#: builtins.c:805 -msgid " posix change the behavior of bash where the default" -msgstr " posix change the behavior of bash where the default" - -#: builtins.c:806 -msgid " operation differs from the 1003.2 standard to" -msgstr " operation differs from the 1003.2 standard to" - -#: builtins.c:807 -msgid " match the standard" -msgstr " match the standard" - -#: builtins.c:808 -msgid " privileged same as -p" -msgstr " privileged same as -p" - -#: builtins.c:809 -msgid " verbose same as -v" -msgstr " verbose same as -v" - -#: builtins.c:811 -msgid " vi use a vi-style line editing interface" -msgstr " vi use a vi-style line editing interface" - -#: builtins.c:813 -msgid " xtrace same as -x" -msgstr " xtrace same as -x" - -#: builtins.c:814 -msgid "" -" -p Turned on whenever the real and effective user ids do not match." -msgstr "" -" -p Turned on whenever the real and effective user ids do not match." - -#: builtins.c:815 -msgid " Disables processing of the $ENV file and importing of shell" -msgstr " Disables processing of the $ENV file and importing of shell" - -#: builtins.c:816 -msgid "" -" functions. Turning this option off causes the effective uid and" -msgstr "" -" functions. Turning this option off causes the effective uid and" - -#: builtins.c:817 -msgid " gid to be set to the real uid and gid." -msgstr " gid to be set to the real uid and gid." - -#: builtins.c:818 -msgid " -t Exit after reading and executing one command." -msgstr " -t Exit after reading and executing one command." - -#: builtins.c:819 -msgid " -u Treat unset variables as an error when substituting." -msgstr " -u Treat unset variables as an error when substituting." - -#: builtins.c:820 -msgid " -v Print shell input lines as they are read." -msgstr " -v Print shell input lines as they are read." - -#: builtins.c:821 -msgid " -x Print commands and their arguments as they are executed." -msgstr " -x Print commands and their arguments as they are executed." - -#: builtins.c:823 -msgid " -B the shell will perform brace expansion" -msgstr " -B the shell will perform brace expansion" - -#: builtins.c:825 -msgid " -C If set, disallow existing regular files to be overwritten" -msgstr " -C If set, disallow existing regular files to be overwritten" - -#: builtins.c:826 -msgid " by redirection of output." -msgstr " by redirection of output." - -#: builtins.c:827 -msgid " -E If set, the ERR trap is inherited by shell functions." -msgstr " -E If set, the ERR trap is inherited by shell functions." - -#: builtins.c:829 -msgid " -H Enable ! style history substitution. This flag is on" -msgstr " -H Enable ! style history substitution. This flag is on" - -#: builtins.c:830 -msgid " by default." -msgstr " by default." - -#: builtins.c:832 -msgid " -P If set, do not follow symbolic links when executing commands" -msgstr " -P If set, do not follow symbolic links when executing commands" - -#: builtins.c:833 -msgid " such as cd which change the current directory." -msgstr " such as cd which change the current directory." - -#: builtins.c:834 -msgid " -T If set, the DEBUG trap is inherited by shell functions." -msgstr " -T If set, the DEBUG trap is inherited by shell functions." - -#: builtins.c:836 -msgid "Using + rather than - causes these flags to be turned off. The" -msgstr "Using + rather than - causes these flags to be turned off. The" - -#: builtins.c:837 -msgid "flags can also be used upon invocation of the shell. The current" -msgstr "flags can also be used upon invocation of the shell. The current" - -#: builtins.c:838 -msgid "set of flags may be found in $-. The remaining n ARGs are positional" -msgstr "set of flags may be found in $-. The remaining n ARGs are positional" - -#: builtins.c:839 -msgid "parameters and are assigned, in order, to $1, $2, .. $n. If no" -msgstr "parameters and are assigned, in order, to $1, $2, .. $n. If no" - -#: builtins.c:840 -msgid "ARGs are given, all shell variables are printed." -msgstr "ARGs are given, all shell variables are printed." - -#: builtins.c:846 -msgid "For each NAME, remove the corresponding variable or function. Given" -msgstr "For each NAME, remove the corresponding variable or function. Given" - -#: builtins.c:847 -msgid "the `-v', unset will only act on variables. Given the `-f' flag," -msgstr "the ‘-v’, unset will only act on variables. Given the ‘-f’ flag," - -#: builtins.c:848 -msgid "unset will only act on functions. With neither flag, unset first" -msgstr "unset will only act on functions. With neither flag, unset first" - -#: builtins.c:849 -msgid "tries to unset a variable, and if that fails, then tries to unset a" -msgstr "tries to unset a variable, and if that fails, then tries to unset a" - -#: builtins.c:850 -msgid "function. Some variables cannot be unset; also see readonly." -msgstr "function. Some variables cannot be unset; also see readonly." - -#: builtins.c:856 -msgid "NAMEs are marked for automatic export to the environment of" -msgstr "NAMEs are marked for automatic export to the environment of" - -#: builtins.c:857 -msgid "subsequently executed commands. If the -f option is given," -msgstr "subsequently executed commands. If the -f option is given," - -#: builtins.c:858 -msgid "the NAMEs refer to functions. If no NAMEs are given, or if `-p'" -msgstr "the NAMEs refer to functions. If no NAMEs are given, or if ‘-p’" - -#: builtins.c:859 -msgid "is given, a list of all names that are exported in this shell is" -msgstr "is given, a list of all names that are exported in this shell is" - -#: builtins.c:860 -msgid "printed. An argument of `-n' says to remove the export property" -msgstr "printed. An argument of ‘-n’ says to remove the export property" - -#: builtins.c:861 -msgid "from subsequent NAMEs. An argument of `--' disables further option" -msgstr "from subsequent NAMEs. An argument of ‘--’ disables further option" - -#: builtins.c:862 builtins.c:874 -msgid "processing." -msgstr "processing." - -#: builtins.c:868 -msgid "The given NAMEs are marked readonly and the values of these NAMEs may" -msgstr "The given NAMEs are marked readonly and the values of these NAMEs may" - -#: builtins.c:869 -msgid "not be changed by subsequent assignment. If the -f option is given," -msgstr "not be changed by subsequent assignment. If the -f option is given," - -#: builtins.c:870 -msgid "then functions corresponding to the NAMEs are so marked. If no" -msgstr "then functions corresponding to the NAMEs are so marked. If no" - -#: builtins.c:871 -msgid "arguments are given, or if `-p' is given, a list of all readonly names" -msgstr "arguments are given, or if ‘-p’ is given, a list of all readonly names" - -#: builtins.c:872 -msgid "is printed. The `-a' option means to treat each NAME as" -msgstr "is printed. The ‘-a’ option means to treat each NAME as" - -#: builtins.c:873 -msgid "an array variable. An argument of `--' disables further option" -msgstr "an array variable. An argument of ‘--’ disables further option" - -#: builtins.c:880 -msgid "The positional parameters from $N+1 ... are renamed to $1 ... If N is" -msgstr "The positional parameters from $N+1 ... are renamed to $1 ... If N is" - -#: builtins.c:881 -msgid "not given, it is assumed to be 1." -msgstr "not given, it is assumed to be 1." - -#: builtins.c:887 builtins.c:896 -msgid "Read and execute commands from FILENAME and return. The pathnames" -msgstr "Read and execute commands from FILENAME and return. The pathnames" - -#: builtins.c:888 builtins.c:897 -msgid "in $PATH are used to find the directory containing FILENAME. If any" -msgstr "in $PATH are used to find the directory containing FILENAME. If any" - -#: builtins.c:889 builtins.c:898 -msgid "ARGUMENTS are supplied, they become the positional parameters when" -msgstr "ARGUMENTS are supplied, they become the positional parameters when" - -#: builtins.c:890 builtins.c:899 -msgid "FILENAME is executed." -msgstr "FILENAME is executed." - -#: builtins.c:906 -msgid "Suspend the execution of this shell until it receives a SIGCONT" -msgstr "Suspend the execution of this shell until it receives a SIGCONT" - -#: builtins.c:907 -msgid "signal. The `-f' if specified says not to complain about this" -msgstr "signal. The ‘-f’ if specified says not to complain about this" - -#: builtins.c:908 -msgid "being a login shell if it is; just suspend anyway." -msgstr "being a login shell if it is; just suspend anyway." - -#: builtins.c:915 -msgid "Exits with a status of 0 (true) or 1 (false) depending on" -msgstr "Exits with a status of 0 (true) or 1 (false) depending on" - -#: builtins.c:916 -msgid "the evaluation of EXPR. Expressions may be unary or binary. Unary" -msgstr "the evaluation of EXPR. Expressions may be unary or binary. Unary" - -#: builtins.c:917 -msgid "expressions are often used to examine the status of a file. There" -msgstr "expressions are often used to examine the status of a file. There" - -#: builtins.c:918 -msgid "are string operators as well, and numeric comparison operators." -msgstr "are string operators as well, and numeric comparison operators." - -#: builtins.c:920 -msgid "File operators:" -msgstr "File operators:" - -#: builtins.c:922 -msgid " -a FILE True if file exists." -msgstr " -a FILE True if file exists." - -#: builtins.c:923 -msgid " -b FILE True if file is block special." -msgstr " -b FILE True if file is block special." - -#: builtins.c:924 -msgid " -c FILE True if file is character special." -msgstr " -c FILE True if file is character special." - -#: builtins.c:925 -msgid " -d FILE True if file is a directory." -msgstr " -d FILE True if file is a directory." - -#: builtins.c:926 -msgid " -e FILE True if file exists." -msgstr " -e FILE True if file exists." - -#: builtins.c:927 -msgid " -f FILE True if file exists and is a regular file." -msgstr " -f FILE True if file exists and is a regular file." - -#: builtins.c:928 -msgid " -g FILE True if file is set-group-id." -msgstr " -g FILE True if file is set-group-id." - -#: builtins.c:929 -msgid " -h FILE True if file is a symbolic link." -msgstr " -h FILE True if file is a symbolic link." - -#: builtins.c:930 -msgid " -L FILE True if file is a symbolic link." -msgstr " -L FILE True if file is a symbolic link." - -#: builtins.c:931 -msgid " -k FILE True if file has its `sticky' bit set." -msgstr " -k FILE True if file has its ‘sticky’ bit set." - -#: builtins.c:932 -msgid " -p FILE True if file is a named pipe." -msgstr " -p FILE True if file is a named pipe." - -#: builtins.c:933 -msgid " -r FILE True if file is readable by you." -msgstr " -r FILE True if file is readable by you." - -#: builtins.c:934 -msgid " -s FILE True if file exists and is not empty." -msgstr " -s FILE True if file exists and is not empty." - -#: builtins.c:935 -msgid " -S FILE True if file is a socket." -msgstr " -S FILE True if file is a socket." - -#: builtins.c:936 -msgid " -t FD True if FD is opened on a terminal." -msgstr " -t FD True if FD is opened on a terminal." - -#: builtins.c:937 -msgid " -u FILE True if the file is set-user-id." -msgstr " -u FILE True if the file is set-user-id." - -#: builtins.c:938 -msgid " -w FILE True if the file is writable by you." -msgstr " -w FILE True if the file is writable by you." - -#: builtins.c:939 -msgid " -x FILE True if the file is executable by you." -msgstr " -x FILE True if the file is executable by you." - -#: builtins.c:940 -msgid " -O FILE True if the file is effectively owned by you." -msgstr " -O FILE True if the file is effectively owned by you." - -#: builtins.c:941 -msgid " -G FILE True if the file is effectively owned by your group." -msgstr "" -" -G FILE True if the file is effectively owned by your group." - -#: builtins.c:942 -msgid "" -" -N FILE True if the file has been modified since it was last read." -msgstr "" -" -N FILE True if the file has been modified since it was last read." - -#: builtins.c:944 -msgid " FILE1 -nt FILE2 True if file1 is newer than file2 (according to" -msgstr " FILE1 -nt FILE2 True if file1 is newer than file2 (according to" - -#: builtins.c:945 -msgid " modification date)." -msgstr " modification date)." - -#: builtins.c:947 -msgid " FILE1 -ot FILE2 True if file1 is older than file2." -msgstr " FILE1 -ot FILE2 True if file1 is older than file2." - -#: builtins.c:949 -msgid " FILE1 -ef FILE2 True if file1 is a hard link to file2." -msgstr " FILE1 -ef FILE2 True if file1 is a hard link to file2." - -#: builtins.c:951 -msgid "String operators:" -msgstr "String operators:" - -#: builtins.c:953 -msgid " -z STRING True if string is empty." -msgstr " -z STRING True if string is empty." - -#: builtins.c:955 -msgid " -n STRING" -msgstr " -n STRING" - -#: builtins.c:956 -msgid " STRING True if string is not empty." -msgstr " STRING True if string is not empty." - -#: builtins.c:958 -msgid " STRING1 = STRING2" -msgstr " STRING1 = STRING2" - -#: builtins.c:959 -msgid " True if the strings are equal." -msgstr " True if the strings are equal." - -#: builtins.c:960 -msgid " STRING1 != STRING2" -msgstr " STRING1 != STRING2" - -#: builtins.c:961 -msgid " True if the strings are not equal." -msgstr " True if the strings are not equal." - -#: builtins.c:962 -msgid " STRING1 < STRING2" -msgstr " STRING1 < STRING2" - -#: builtins.c:963 -msgid "" -" True if STRING1 sorts before STRING2 lexicographically." -msgstr "" -" True if STRING1 sorts before STRING2 lexicographically." - -#: builtins.c:964 -msgid " STRING1 > STRING2" -msgstr " STRING1 > STRING2" - -#: builtins.c:965 -msgid "" -" True if STRING1 sorts after STRING2 lexicographically." -msgstr "" -" True if STRING1 sorts after STRING2 lexicographically." - -#: builtins.c:967 -msgid "Other operators:" -msgstr "Other operators:" - -#: builtins.c:969 -msgid " -o OPTION True if the shell option OPTION is enabled." -msgstr " -o OPTION True if the shell option OPTION is enabled." - -#: builtins.c:970 -msgid " ! EXPR True if expr is false." -msgstr " ! EXPR True if expr is false." - -#: builtins.c:971 -msgid " EXPR1 -a EXPR2 True if both expr1 AND expr2 are true." -msgstr " EXPR1 -a EXPR2 True if both expr1 AND expr2 are true." - -#: builtins.c:972 -msgid " EXPR1 -o EXPR2 True if either expr1 OR expr2 is true." -msgstr " EXPR1 -o EXPR2 True if either expr1 OR expr2 is true." - -#: builtins.c:974 -msgid " arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne," -msgstr " arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne," - -#: builtins.c:975 -msgid " -lt, -le, -gt, or -ge." -msgstr " -lt, -le, -gt, or -ge." - -#: builtins.c:977 -msgid "Arithmetic binary operators return true if ARG1 is equal, not-equal," -msgstr "Arithmetic binary operators return true if ARG1 is equal, not-equal," - -#: builtins.c:978 -msgid "less-than, less-than-or-equal, greater-than, or greater-than-or-equal" -msgstr "less-than, less-than-or-equal, greater-than, or greater-than-or-equal" - -#: builtins.c:979 -msgid "than ARG2." -msgstr "than ARG2." - -#: builtins.c:985 -msgid "This is a synonym for the \"test\" builtin, but the last" -msgstr "This is a synonym for the “test” builtin, but the last" - -#: builtins.c:986 -msgid "argument must be a literal `]', to match the opening `['." -msgstr "argument must be a literal ‘]’, to match the opening ‘[’." - -#: builtins.c:992 -msgid "Print the accumulated user and system times for processes run from" -msgstr "Print the accumulated user and system times for processes run from" - -#: builtins.c:993 -msgid "the shell." -msgstr "the shell." - -#: builtins.c:999 -msgid "The command ARG is to be read and executed when the shell receives" -msgstr "The command ARG is to be read and executed when the shell receives" - -#: builtins.c:1000 -msgid "signal(s) SIGNAL_SPEC. If ARG is absent all specified signals are" -msgstr "signal(s) SIGNAL_SPEC. If ARG is absent all specified signals are" - -#: builtins.c:1001 -msgid "reset to their original values. If ARG is the null string each" -msgstr "reset to their original values. If ARG is the null string each" - -#: builtins.c:1002 -msgid "SIGNAL_SPEC is ignored by the shell and by the commands it invokes." -msgstr "SIGNAL_SPEC is ignored by the shell and by the commands it invokes." - -#: builtins.c:1003 -msgid "If a SIGNAL_SPEC is EXIT (0) the command ARG is executed on exit from" -msgstr "If a SIGNAL_SPEC is EXIT (0) the command ARG is executed on exit from" - -#: builtins.c:1004 -msgid "the shell. If a SIGNAL_SPEC is DEBUG, ARG is executed after every" -msgstr "the shell. If a SIGNAL_SPEC is DEBUG, ARG is executed after every" - -#: builtins.c:1005 -msgid "command. If ARG is `-p' then the trap commands associated with" -msgstr "command. If ARG is ‘-p’ then the trap commands associated with" - -#: builtins.c:1006 -msgid "each SIGNAL_SPEC are displayed. If no arguments are supplied or if" -msgstr "each SIGNAL_SPEC are displayed. If no arguments are supplied or if" - -#: builtins.c:1007 -msgid "only `-p' is given, trap prints the list of commands associated with" -msgstr "only ‘-p’ is given, trap prints the list of commands associated with" - -#: builtins.c:1008 -msgid "" -"each signal number. Each SIGNAL_SPEC is either a signal name in " -msgstr "" -"each signal number. Each SIGNAL_SPEC is either a signal name in " - -#: builtins.c:1009 -msgid "or a signal number. `trap -l' prints a list of signal names and their" -msgstr "or a signal number. ‘trap -l’ prints a list of signal names and their" - -#: builtins.c:1010 -msgid "corresponding numbers. Note that a signal can be sent to the shell" -msgstr "corresponding numbers. Note that a signal can be sent to the shell" - -#: builtins.c:1011 -msgid "with \"kill -signal $$\"." -msgstr "with “kill -signal $$”." - -#: builtins.c:1017 -msgid "For each NAME, indicate how it would be interpreted if used as a" -msgstr "For each NAME, indicate how it would be interpreted if used as a" - -#: builtins.c:1018 -msgid "command name." -msgstr "command name." - -#: builtins.c:1020 -msgid "If the -t option is used, `type' outputs a single word which is one of" -msgstr "If the -t option is used, ‘type’ outputs a single word which is one of" - -#: builtins.c:1021 -msgid "`alias', `keyword', `function', `builtin', `file' or `', if NAME is an" -msgstr "‘alias’, ‘keyword’, ‘function’, ‘builtin’, ‘file’ or ‘’, if NAME is an" - -#: builtins.c:1022 -msgid "alias, shell reserved word, shell function, shell builtin, disk file," -msgstr "alias, shell reserved word, shell function, shell builtin, disk file," - -#: builtins.c:1023 -msgid "or unfound, respectively." -msgstr "or unfound, respectively." - -#: builtins.c:1025 -msgid "If the -p flag is used, `type' either returns the name of the disk" -msgstr "If the -p flag is used, ‘type’ either returns the name of the disk" - -#: builtins.c:1026 -msgid "file that would be executed, or nothing if `type -t NAME' would not" -msgstr "file that would be executed, or nothing if ‘type -t NAME’ would not" - -#: builtins.c:1027 -msgid "return `file'." -msgstr "return ‘file’." - -#: builtins.c:1029 -msgid "If the -a flag is used, `type' displays all of the places that contain" -msgstr "If the -a flag is used, ‘type’ displays all of the places that contain" - -#: builtins.c:1030 -msgid "an executable named `file'. This includes aliases, builtins, and" -msgstr "an executable named ‘file’. This includes aliases, builtins, and" - -#: builtins.c:1031 -msgid "functions, if and only if the -p flag is not also used." -msgstr "functions, if and only if the -p flag is not also used." - -#: builtins.c:1033 -msgid "The -f flag suppresses shell function lookup." -msgstr "The -f flag suppresses shell function lookup." - -#: builtins.c:1035 -msgid "The -P flag forces a PATH search for each NAME, even if it is an alias," -msgstr "" -"The -P flag forces a PATH search for each NAME, even if it is an alias," - -#: builtins.c:1036 -msgid "builtin, or function, and returns the name of the disk file that would" -msgstr "builtin, or function, and returns the name of the disk file that would" - -#: builtins.c:1037 -msgid "be executed." -msgstr "be executed." - -#: builtins.c:1044 -msgid "Ulimit provides control over the resources available to processes" -msgstr "Ulimit provides control over the resources available to processes" - -#: builtins.c:1045 -msgid "started by the shell, on systems that allow such control. If an" -msgstr "started by the shell, on systems that allow such control. If an" - -#: builtins.c:1046 -msgid "option is given, it is interpreted as follows:" -msgstr "option is given, it is interpreted as follows:" - -#: builtins.c:1048 -msgid " -S\tuse the `soft' resource limit" -msgstr " -S\tuse the ‘soft’ resource limit" - -#: builtins.c:1049 -msgid " -H\tuse the `hard' resource limit" -msgstr " -H\tuse the ‘hard’ resource limit" - -#: builtins.c:1050 -msgid " -a\tall current limits are reported" -msgstr " -a\tall current limits are reported" - -#: builtins.c:1051 -msgid " -c\tthe maximum size of core files created" -msgstr " -c\tthe maximum size of core files created" - -#: builtins.c:1052 -msgid " -d\tthe maximum size of a process's data segment" -msgstr " -d\tthe maximum size of a process's data segment" - -#: builtins.c:1053 -msgid " -f\tthe maximum size of files created by the shell" -msgstr " -f\tthe maximum size of files created by the shell" - -#: builtins.c:1054 -msgid " -l\tthe maximum size a process may lock into memory" -msgstr " -l\tthe maximum size a process may lock into memory" - -#: builtins.c:1055 -msgid " -m\tthe maximum resident set size" -msgstr " -m\tthe maximum resident set size" - -#: builtins.c:1056 -msgid " -n\tthe maximum number of open file descriptors" -msgstr " -n\tthe maximum number of open file descriptors" - -#: builtins.c:1057 -msgid " -p\tthe pipe buffer size" -msgstr " -p\tthe pipe buffer size" - -#: builtins.c:1058 -msgid " -s\tthe maximum stack size" -msgstr " -s\tthe maximum stack size" - -#: builtins.c:1059 -msgid " -t\tthe maximum amount of cpu time in seconds" -msgstr " -t\tthe maximum amount of cpu time in seconds" - -#: builtins.c:1060 -msgid " -u\tthe maximum number of user processes" -msgstr " -u\tthe maximum number of user processes" - -#: builtins.c:1061 -msgid " -v\tthe size of virtual memory" -msgstr " -v\tthe size of virtual memory" - -#: builtins.c:1063 -msgid "If LIMIT is given, it is the new value of the specified resource;" -msgstr "If LIMIT is given, it is the new value of the specified resource;" - -#: builtins.c:1064 -msgid "the special LIMIT values `soft', `hard', and `unlimited' stand for" -msgstr "the special LIMIT values ‘soft’, ‘hard’, and ‘unlimited’ stand for" - -#: builtins.c:1065 -msgid "" -"the current soft limit, the current hard limit, and no limit, respectively." -msgstr "" -"the current soft limit, the current hard limit, and no limit, respectively." - -#: builtins.c:1066 -msgid "Otherwise, the current value of the specified resource is printed." -msgstr "Otherwise, the current value of the specified resource is printed." - -#: builtins.c:1067 -msgid "If no option is given, then -f is assumed. Values are in 1024-byte" -msgstr "If no option is given, then -f is assumed. Values are in 1024-byte" - -#: builtins.c:1068 -msgid "increments, except for -t, which is in seconds, -p, which is in" -msgstr "increments, except for -t, which is in seconds, -p, which is in" - -#: builtins.c:1069 -msgid "increments of 512 bytes, and -u, which is an unscaled number of" -msgstr "increments of 512 bytes, and -u, which is an unscaled number of" - -#: builtins.c:1070 -msgid "processes." -msgstr "processes." - -#: builtins.c:1077 -msgid "The user file-creation mask is set to MODE. If MODE is omitted, or if" -msgstr "The user file-creation mask is set to MODE. If MODE is omitted, or if" - -#: builtins.c:1078 -msgid "`-S' is supplied, the current value of the mask is printed. The `-S'" -msgstr "‘-S’ is supplied, the current value of the mask is printed. The ‘-S’" - -#: builtins.c:1079 -msgid "option makes the output symbolic; otherwise an octal number is output." -msgstr "option makes the output symbolic; otherwise an octal number is output." - -#: builtins.c:1080 -msgid "If `-p' is supplied, and MODE is omitted, the output is in a form" -msgstr "If ‘-p’ is supplied, and MODE is omitted, the output is in a form" - -#: builtins.c:1081 -msgid "that may be used as input. If MODE begins with a digit, it is" -msgstr "that may be used as input. If MODE begins with a digit, it is" - -#: builtins.c:1082 -msgid "interpreted as an octal number, otherwise it is a symbolic mode string" -msgstr "interpreted as an octal number, otherwise it is a symbolic mode string" - -#: builtins.c:1083 -msgid "like that accepted by chmod(1)." -msgstr "like that accepted by chmod(1)." - -#: builtins.c:1090 builtins.c:1102 -msgid "Wait for the specified process and report its termination status. If" -msgstr "Wait for the specified process and report its termination status. If" - -#: builtins.c:1091 builtins.c:1103 -msgid "N is not given, all currently active child processes are waited for," -msgstr "N is not given, all currently active child processes are waited for," - -#: builtins.c:1092 -msgid "and the return code is zero. N may be a process ID or a job" -msgstr "and the return code is zero. N may be a process ID or a job" - -#: builtins.c:1093 -msgid "specification; if a job spec is given, all processes in the job's" -msgstr "specification; if a job spec is given, all processes in the job's" - -#: builtins.c:1094 -msgid "pipeline are waited for." -msgstr "pipeline are waited for." - -#: builtins.c:1104 -msgid "and the return code is zero. N is a process ID; if it is not given," -msgstr "and the return code is zero. N is a process ID; if it is not given," - -#: builtins.c:1105 -msgid "all child processes of the shell are waited for." -msgstr "all child processes of the shell are waited for." - -#: builtins.c:1112 -msgid "The `for' loop executes a sequence of commands for each member in a" -msgstr "The ‘for’ loop executes a sequence of commands for each member in a" - -#: builtins.c:1113 -msgid "list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is" -msgstr "list of items. If ‘in WORDS ...;’ is not present, then ‘in “$@”’ is" - -#: builtins.c:1114 -msgid "assumed. For each element in WORDS, NAME is set to that element, and" -msgstr "assumed. For each element in WORDS, NAME is set to that element, and" - -#: builtins.c:1115 -msgid "the COMMANDS are executed." -msgstr "the COMMANDS are executed." - -#: builtins.c:1121 -msgid "Equivalent to" -msgstr "Equivalent to" - -#: builtins.c:1122 -msgid "\t(( EXP1 ))" -msgstr "\t(( EXP1 ))" - -#: builtins.c:1123 -msgid "\twhile (( EXP2 )); do" -msgstr "\twhile (( EXP2 )); do" - -#: builtins.c:1124 -msgid "\t\tCOMMANDS" -msgstr "\t\tCOMMANDS" - -#: builtins.c:1125 -msgid "\t\t(( EXP3 ))" -msgstr "\t\t(( EXP3 ))" - -#: builtins.c:1126 -msgid "\tdone" -msgstr "\tdone" - -#: builtins.c:1127 -msgid "EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is" -msgstr "EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is" - -#: builtins.c:1128 -msgid "omitted, it behaves as if it evaluates to 1." -msgstr "omitted, it behaves as if it evaluates to 1." - -#: builtins.c:1134 -msgid "The WORDS are expanded, generating a list of words. The" -msgstr "The WORDS are expanded, generating a list of words. The" - -#: builtins.c:1135 -msgid "set of expanded words is printed on the standard error, each" -msgstr "set of expanded words is printed on the standard error, each" - -#: builtins.c:1136 -msgid "preceded by a number. If `in WORDS' is not present, `in \"$@\"'" -msgstr "preceded by a number. If ‘in WORDS’ is not present, ‘in “$@”’" - -#: builtins.c:1137 -msgid "is assumed. The PS3 prompt is then displayed and a line read" -msgstr "is assumed. The PS3 prompt is then displayed and a line read" - -#: builtins.c:1138 -msgid "from the standard input. If the line consists of the number" -msgstr "from the standard input. If the line consists of the number" - -#: builtins.c:1139 -msgid "corresponding to one of the displayed words, then NAME is set" -msgstr "corresponding to one of the displayed words, then NAME is set" - -#: builtins.c:1140 -msgid "to that word. If the line is empty, WORDS and the prompt are" -msgstr "to that word. If the line is empty, WORDS and the prompt are" - -#: builtins.c:1141 -msgid "redisplayed. If EOF is read, the command completes. Any other" -msgstr "redisplayed. If EOF is read, the command completes. Any other" - -#: builtins.c:1142 -msgid "value read causes NAME to be set to null. The line read is saved" -msgstr "value read causes NAME to be set to null. The line read is saved" - -#: builtins.c:1143 -msgid "in the variable REPLY. COMMANDS are executed after each selection" -msgstr "in the variable REPLY. COMMANDS are executed after each selection" - -#: builtins.c:1144 -msgid "until a break command is executed." -msgstr "until a break command is executed." - -#: builtins.c:1150 -msgid "Execute PIPELINE and print a summary of the real time, user CPU time," -msgstr "Execute PIPELINE and print a summary of the real time, user CPU time," - -#: builtins.c:1151 -msgid "and system CPU time spent executing PIPELINE when it terminates." -msgstr "and system CPU time spent executing PIPELINE when it terminates." - -#: builtins.c:1152 -msgid "The return status is the return status of PIPELINE. The `-p' option" -msgstr "The return status is the return status of PIPELINE. The ‘-p’ option" - -#: builtins.c:1153 -msgid "prints the timing summary in a slightly different format. This uses" -msgstr "prints the timing summary in a slightly different format. This uses" - -#: builtins.c:1154 -msgid "the value of the TIMEFORMAT variable as the output format." -msgstr "the value of the TIMEFORMAT variable as the output format." - -#: builtins.c:1160 -msgid "Selectively execute COMMANDS based upon WORD matching PATTERN. The" -msgstr "Selectively execute COMMANDS based upon WORD matching PATTERN. The" - -#: builtins.c:1161 -msgid "`|' is used to separate multiple patterns." -msgstr "‘|’ is used to separate multiple patterns." - -#: builtins.c:1167 -msgid "" -"The if COMMANDS are executed. If the exit status is zero, then the then" -msgstr "" -"The if COMMANDS are executed. If the exit status is zero, then the then" - -#: builtins.c:1168 -msgid "" -"COMMANDS are executed. Otherwise, each of the elif COMMANDS are executed" -msgstr "" -"COMMANDS are executed. Otherwise, each of the elif COMMANDS are executed" - -#: builtins.c:1169 -msgid "" -"in turn, and if the exit status is zero, the corresponding then COMMANDS" -msgstr "" -"in turn, and if the exit status is zero, the corresponding then COMMANDS" - -#: builtins.c:1170 -msgid "" -"are executed and the if command completes. Otherwise, the else COMMANDS" -msgstr "" -"are executed and the if command completes. Otherwise, the else COMMANDS" - -#: builtins.c:1171 -msgid "" -"are executed, if present. The exit status is the exit status of the last" -msgstr "" -"are executed, if present. The exit status is the exit status of the last" - -#: builtins.c:1172 -msgid "command executed, or zero if no condition tested true." -msgstr "command executed, or zero if no condition tested true." - -#: builtins.c:1178 builtins.c:1185 -msgid "Expand and execute COMMANDS as long as the final command in the" -msgstr "Expand and execute COMMANDS as long as the final command in the" - -#: builtins.c:1179 -msgid "`while' COMMANDS has an exit status of zero." -msgstr "‘while’ COMMANDS has an exit status of zero." - -#: builtins.c:1186 -msgid "`until' COMMANDS has an exit status which is not zero." -msgstr "‘until’ COMMANDS has an exit status which is not zero." - -#: builtins.c:1192 -msgid "Create a simple command invoked by NAME which runs COMMANDS." -msgstr "Create a simple command invoked by NAME which runs COMMANDS." - -#: builtins.c:1193 -msgid "Arguments on the command line along with NAME are passed to the" -msgstr "Arguments on the command line along with NAME are passed to the" - -#: builtins.c:1194 -msgid "function as $0 .. $n." -msgstr "function as $0 .. $n." - -#: builtins.c:1200 -msgid "Run a set of commands in a group. This is one way to redirect an" -msgstr "Run a set of commands in a group. This is one way to redirect an" - -#: builtins.c:1201 -msgid "entire set of commands." -msgstr "entire set of commands." - -#: builtins.c:1207 -msgid "This is similar to the `fg' command. Resume a stopped or background" -msgstr "This is similar to the ‘fg’ command. Resume a stopped or background" - -#: builtins.c:1208 -msgid "job. If you specifiy DIGITS, then that job is used. If you specify" -msgstr "job. If you specifiy DIGITS, then that job is used. If you specify" - -#: builtins.c:1209 -msgid "WORD, then the job whose name begins with WORD is used. Following the" -msgstr "WORD, then the job whose name begins with WORD is used. Following the" - -#: builtins.c:1210 -msgid "job specification with a `&' places the job in the background." -msgstr "job specification with a ‘&’ places the job in the background." - -#: builtins.c:1216 -msgid "The EXPRESSION is evaluated according to the rules for arithmetic" -msgstr "The EXPRESSION is evaluated according to the rules for arithmetic" - -#: builtins.c:1217 -msgid "evaluation. Equivalent to \"let EXPRESSION\"." -msgstr "evaluation. Equivalent to “let EXPRESSION”." - -#: builtins.c:1223 -msgid "" -"Returns a status of 0 or 1 depending on the evaluation of the conditional" -msgstr "" -"Returns a status of 0 or 1 depending on the evaluation of the conditional" - -#: builtins.c:1224 -msgid "" -"expression EXPRESSION. Expressions are composed of the same primaries used" -msgstr "" -"expression EXPRESSION. Expressions are composed of the same primaries used" - -#: builtins.c:1225 -msgid "" -"by the `test' builtin, and may be combined using the following operators" -msgstr "" -"by the ‘test’ builtin, and may be combined using the following operators" - -#: builtins.c:1227 -msgid "\t( EXPRESSION )\tReturns the value of EXPRESSION" -msgstr "\t( EXPRESSION )\tReturns the value of EXPRESSION" - -#: builtins.c:1228 -msgid "\t! EXPRESSION\tTrue if EXPRESSION is false; else false" -msgstr "\t! EXPRESSION\tTrue if EXPRESSION is false; else false" - -#: builtins.c:1229 -msgid "\tEXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false" -msgstr "\tEXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false" - -#: builtins.c:1230 -msgid "\tEXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false" -msgstr "\tEXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false" - -#: builtins.c:1232 -msgid "" -"When the `==' and `!=' operators are used, the string to the right of the" -msgstr "" -"When the ‘==’ and ‘!=’ operators are used, the string to the right of the" - -#: builtins.c:1233 -msgid "operator is used as a pattern and pattern matching is performed. The" -msgstr "operator is used as a pattern and pattern matching is performed. The" - -#: builtins.c:1234 -msgid "&& and || operators do not evaluate EXPR2 if EXPR1 is sufficient to" -msgstr "&& and || operators do not evaluate EXPR2 if EXPR1 is sufficient to" - -#: builtins.c:1235 -msgid "determine the expression's value." -msgstr "determine the expression's value." - -#: builtins.c:1241 -msgid "BASH_VERSION Version information for this Bash." -msgstr "BASH_VERSION Version information for this Bash." - -#: builtins.c:1242 -msgid "CDPATH A colon separated list of directories to search" -msgstr "CDPATH A colon separated list of directories to search" - -#: builtins.c:1243 -msgid "\t\twhen the argument to `cd' is not found in the current" -msgstr "\t\twhen the argument to ‘cd’ is not found in the current" - -#: builtins.c:1244 -msgid "\t\tdirectory." -msgstr "\t\tdirectory." - -#: builtins.c:1245 -msgid "GLOBIGNORE\tA colon-separated list of patterns describing filenames to" -msgstr "GLOBIGNORE\tA colon-separated list of patterns describing filenames to" - -#: builtins.c:1246 -msgid "\t\tbe ignored by pathname expansion." -msgstr "\t\tbe ignored by pathname expansion." - -#: builtins.c:1248 -msgid "" -"HISTFILE The name of the file where your command history is stored." -msgstr "" -"HISTFILE The name of the file where your command history is stored." - -#: builtins.c:1249 -msgid "HISTFILESIZE The maximum number of lines this file can contain." -msgstr "HISTFILESIZE The maximum number of lines this file can contain." - -#: builtins.c:1250 -msgid "HISTSIZE The maximum number of history lines that a running" -msgstr "HISTSIZE The maximum number of history lines that a running" - -#: builtins.c:1251 -msgid "\t\tshell can access." -msgstr "\t\tshell can access." - -#: builtins.c:1253 -msgid "HOME The complete pathname to your login directory." -msgstr "HOME The complete pathname to your login directory." - -#: builtins.c:1254 -msgid "HOSTNAME\tThe name of the current host." -msgstr "HOSTNAME\tThe name of the current host." - -#: builtins.c:1255 -msgid "HOSTTYPE The type of CPU this version of Bash is running under." -msgstr "HOSTTYPE The type of CPU this version of Bash is running under." - -#: builtins.c:1256 -msgid "IGNOREEOF Controls the action of the shell on receipt of an EOF" -msgstr "IGNOREEOF Controls the action of the shell on receipt of an EOF" - -#: builtins.c:1257 -msgid "\t\tcharacter as the sole input. If set, then the value" -msgstr "\t\tcharacter as the sole input. If set, then the value" - -#: builtins.c:1258 -msgid "\t\tof it is the number of EOF characters that can be seen" -msgstr "\t\tof it is the number of EOF characters that can be seen" - -#: builtins.c:1259 -msgid "\t\tin a row on an empty line before the shell will exit" -msgstr "\t\tin a row on an empty line before the shell will exit" - -#: builtins.c:1260 -msgid "\t\t(default 10). When unset, EOF signifies the end of input." -msgstr "\t\t(default 10). When unset, EOF signifies the end of input." - -#: builtins.c:1261 -msgid "MACHTYPE\tA string describing the current system Bash is running on." -msgstr "MACHTYPE\tA string describing the current system Bash is running on." - -#: builtins.c:1262 -msgid "MAILCHECK\tHow often, in seconds, Bash checks for new mail." -msgstr "MAILCHECK\tHow often, in seconds, Bash checks for new mail." - -#: builtins.c:1263 -msgid "MAILPATH\tA colon-separated list of filenames which Bash checks" -msgstr "MAILPATH\tA colon-separated list of filenames which Bash checks" - -#: builtins.c:1264 -msgid "\t\tfor new mail." -msgstr "\t\tfor new mail." - -#: builtins.c:1265 -msgid "OSTYPE\t\tThe version of Unix this version of Bash is running on." -msgstr "OSTYPE\t\tThe version of Unix this version of Bash is running on." - -#: builtins.c:1266 -msgid "PATH A colon-separated list of directories to search when" -msgstr "PATH A colon-separated list of directories to search when" - -#: builtins.c:1267 -msgid "\t\tlooking for commands." -msgstr "\t\tlooking for commands." - -#: builtins.c:1268 -msgid "PROMPT_COMMAND A command to be executed before the printing of each" -msgstr "PROMPT_COMMAND A command to be executed before the printing of each" - -#: builtins.c:1269 -msgid "\t\tprimary prompt." -msgstr "\t\tprimary prompt." - -#: builtins.c:1270 -msgid "PS1 The primary prompt string." -msgstr "PS1 The primary prompt string." - -#: builtins.c:1271 -msgid "PS2 The secondary prompt string." -msgstr "PS2 The secondary prompt string." - -#: builtins.c:1272 -msgid "PWD\t\tThe full pathname of the current directory." -msgstr "PWD\t\tThe full pathname of the current directory." - -#: builtins.c:1273 -msgid "SHELLOPTS\tA colon-separated list of enabled shell options." -msgstr "SHELLOPTS\tA colon-separated list of enabled shell options." - -#: builtins.c:1274 -msgid "TERM The name of the current terminal type." -msgstr "TERM The name of the current terminal type." - -#: builtins.c:1275 -msgid "TIMEFORMAT\tThe output format for timing statistics displayed by the" -msgstr "TIMEFORMAT\tThe output format for timing statistics displayed by the" - -#: builtins.c:1276 -msgid "\t\t`time' reserved word." -msgstr "\t\t‘time’ reserved word." - -#: builtins.c:1277 -msgid "auto_resume Non-null means a command word appearing on a line by" -msgstr "auto_resume Non-null means a command word appearing on a line by" - -#: builtins.c:1278 -msgid "\t\titself is first looked for in the list of currently" -msgstr "\t\titself is first looked for in the list of currently" - -#: builtins.c:1279 -msgid "\t\tstopped jobs. If found there, that job is foregrounded." -msgstr "\t\tstopped jobs. If found there, that job is foregrounded." - -#: builtins.c:1280 -msgid "\t\tA value of `exact' means that the command word must" -msgstr "\t\tA value of ‘exact’ means that the command word must" - -#: builtins.c:1281 -msgid "\t\texactly match a command in the list of stopped jobs. A" -msgstr "\t\texactly match a command in the list of stopped jobs. A" - -#: builtins.c:1282 -msgid "\t\tvalue of `substring' means that the command word must" -msgstr "\t\tvalue of ‘substring’ means that the command word must" - -#: builtins.c:1283 -msgid "\t\tmatch a substring of the job. Any other value means that" -msgstr "\t\tmatch a substring of the job. Any other value means that" - -#: builtins.c:1284 -msgid "\t\tthe command must be a prefix of a stopped job." -msgstr "\t\tthe command must be a prefix of a stopped job." - -#: builtins.c:1287 -msgid "histchars Characters controlling history expansion and quick" -msgstr "histchars Characters controlling history expansion and quick" - -#: builtins.c:1288 -msgid "\t\tsubstitution. The first character is the history" -msgstr "\t\tsubstitution. The first character is the history" - -#: builtins.c:1289 -msgid "\t\tsubstitution character, usually `!'. The second is" -msgstr "\t\tsubstitution character, usually ‘!’. The second is" - -#: builtins.c:1290 -msgid "\t\tthe `quick substitution' character, usually `^'. The" -msgstr "\t\tthe ‘quick substitution’ character, usually ‘^’. The" - -#: builtins.c:1291 -msgid "\t\tthird is the `history comment' character, usually `#'." -msgstr "\t\tthird is the ‘history comment’ character, usually ‘#’." - -#: builtins.c:1293 -msgid "HISTIGNORE\tA colon-separated list of patterns used to decide which" -msgstr "HISTIGNORE\tA colon-separated list of patterns used to decide which" - -#: builtins.c:1294 -msgid "\t\tcommands should be saved on the history list." -msgstr "\t\tcommands should be saved on the history list." - -#: builtins.c:1306 -msgid "+N\tRotates the stack so that the Nth directory (counting" -msgstr "+N\tRotates the stack so that the Nth directory (counting" - -#: builtins.c:1307 -msgid "\tfrom the left of the list shown by `dirs', starting with" -msgstr "\tfrom the left of the list shown by ‘dirs’, starting with" - -#: builtins.c:1308 builtins.c:1312 -msgid "\tzero) is at the top." -msgstr "\tzero) is at the top." - -#: builtins.c:1310 -msgid "-N\tRotates the stack so that the Nth directory (counting" -msgstr "-N\tRotates the stack so that the Nth directory (counting" - -#: builtins.c:1311 -msgid "\tfrom the right of the list shown by `dirs', starting with" -msgstr "\tfrom the right of the list shown by ‘dirs’, starting with" - -#: builtins.c:1314 -msgid "-n\tsuppress the normal change of directory when adding directories" -msgstr "-n\tsuppress the normal change of directory when adding directories" - -#: builtins.c:1315 -msgid "\tto the stack, so only the stack is manipulated." -msgstr "\tto the stack, so only the stack is manipulated." - -#: builtins.c:1317 -msgid "dir\tadds DIR to the directory stack at the top, making it the" -msgstr "dir\tadds DIR to the directory stack at the top, making it the" - -#: builtins.c:1318 -msgid "\tnew current working directory." -msgstr "\tnew current working directory." - -#: builtins.c:1332 -msgid "+N\tremoves the Nth entry counting from the left of the list" -msgstr "+N\tremoves the Nth entry counting from the left of the list" - -#: builtins.c:1333 -msgid "\tshown by `dirs', starting with zero. For example: `popd +0'" -msgstr "\tshown by ‘dirs’, starting with zero. For example: ‘popd +0’" - -#: builtins.c:1334 -msgid "\tremoves the first directory, `popd +1' the second." -msgstr "\tremoves the first directory, ‘popd +1’ the second." - -#: builtins.c:1336 -msgid "-N\tremoves the Nth entry counting from the right of the list" -msgstr "-N\tremoves the Nth entry counting from the right of the list" - -#: builtins.c:1337 -msgid "\tshown by `dirs', starting with zero. For example: `popd -0'" -msgstr "\tshown by ‘dirs’, starting with zero. For example: ‘popd -0’" - -#: builtins.c:1338 -msgid "\tremoves the last directory, `popd -1' the next to last." -msgstr "\tremoves the last directory, ‘popd -1’ the next to last." - -#: builtins.c:1340 -msgid "-n\tsuppress the normal change of directory when removing directories" -msgstr "-n\tsuppress the normal change of directory when removing directories" - -#: builtins.c:1341 -msgid "\tfrom the stack, so only the stack is manipulated." -msgstr "\tfrom the stack, so only the stack is manipulated." - -#: builtins.c:1363 -msgid "+N\tdisplays the Nth entry counting from the left of the list shown by" -msgstr "+N\tdisplays the Nth entry counting from the left of the list shown by" - -#: builtins.c:1364 builtins.c:1367 -msgid "\tdirs when invoked without options, starting with zero." -msgstr "\tdirs when invoked without options, starting with zero." - -#: builtins.c:1366 -msgid "-N\tdisplays the Nth entry counting from the right of the list shown by" -msgstr "" -"-N\tdisplays the Nth entry counting from the right of the list shown by" - -#: builtins.c:1374 -msgid "Toggle the values of variables controlling optional behavior." -msgstr "Toggle the values of variables controlling optional behavior." - -#: builtins.c:1375 -msgid "The -s flag means to enable (set) each OPTNAME; the -u flag" -msgstr "The -s flag means to enable (set) each OPTNAME; the -u flag" - -#: builtins.c:1376 -msgid "unsets each OPTNAME. The -q flag suppresses output; the exit" -msgstr "unsets each OPTNAME. The -q flag suppresses output; the exit" - -#: builtins.c:1377 -msgid "status indicates whether each OPTNAME is set or unset. The -o" -msgstr "status indicates whether each OPTNAME is set or unset. The -o" - -#: builtins.c:1378 -msgid "option restricts the OPTNAMEs to those defined for use with" -msgstr "option restricts the OPTNAMEs to those defined for use with" - -#: builtins.c:1379 -msgid "`set -o'. With no options, or with the -p option, a list of all" -msgstr "‘set -o’. With no options, or with the -p option, a list of all" - -#: builtins.c:1380 -msgid "settable options is displayed, with an indication of whether or" -msgstr "settable options is displayed, with an indication of whether or" - -#: builtins.c:1381 -msgid "not each is set." -msgstr "not each is set." - -#: builtins.c:1387 -msgid "printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT" -msgstr "" -"printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT" - -#: builtins.c:1388 -msgid "is a character string which contains three types of objects: plain" -msgstr "is a character string which contains three types of objects: plain" - -#: builtins.c:1389 -msgid "" -"characters, which are simply copied to standard output, character escape" -msgstr "" -"characters, which are simply copied to standard output, character escape" - -#: builtins.c:1390 -msgid "sequences which are converted and copied to the standard output, and" -msgstr "sequences which are converted and copied to the standard output, and" - -#: builtins.c:1391 -msgid "" -"format specifications, each of which causes printing of the next successive" -msgstr "" -"format specifications, each of which causes printing of the next successive" - -#: builtins.c:1392 -msgid "argument. In addition to the standard printf(1) formats, %b means to" -msgstr "argument. In addition to the standard printf(1) formats, %b means to" - -#: builtins.c:1393 -msgid "expand backslash escape sequences in the corresponding argument, and %q" -msgstr "" -"expand backslash escape sequences in the corresponding argument, and %q" - -#: builtins.c:1394 -msgid "means to quote the argument in a way that can be reused as shell input." -msgstr "" -"means to quote the argument in a way that can be reused as shell input." - -#: builtins.c:1401 -msgid "For each NAME, specify how arguments are to be completed." -msgstr "For each NAME, specify how arguments are to be completed." - -#: builtins.c:1402 -msgid "If the -p option is supplied, or if no options are supplied, existing" -msgstr "If the -p option is supplied, or if no options are supplied, existing" - -#: builtins.c:1403 -msgid "completion specifications are printed in a way that allows them to be" -msgstr "completion specifications are printed in a way that allows them to be" - -#: builtins.c:1404 -msgid "reused as input. The -r option removes a completion specification for" -msgstr "reused as input. The -r option removes a completion specification for" - -#: builtins.c:1405 -msgid "each NAME, or, if no NAMEs are supplied, all completion specifications." -msgstr "" -"each NAME, or, if no NAMEs are supplied, all completion specifications." - -#: builtins.c:1413 -msgid "Display the possible completions depending on the options. Intended" -msgstr "Display the possible completions depending on the options. Intended" - -#: builtins.c:1414 -msgid "" -"to be used from within a shell function generating possible completions." -msgstr "" -"to be used from within a shell function generating possible completions." - -#: builtins.c:1415 -msgid "If the optional WORD argument is supplied, matches against WORD are" -msgstr "If the optional WORD argument is supplied, matches against WORD are" - -#: builtins.c:1416 -msgid "generated." -msgstr "generated." diff --git a/po.orig/insert-header.sin b/po.orig/insert-header.sin deleted file mode 100644 index b26de01f6..000000000 --- a/po.orig/insert-header.sin +++ /dev/null @@ -1,23 +0,0 @@ -# Sed script that inserts the file called HEADER before the header entry. -# -# At each occurrence of a line starting with "msgid ", we execute the following -# commands. At the first occurrence, insert the file. At the following -# occurrences, do nothing. The distinction between the first and the following -# occurrences is achieved by looking at the hold space. -/^msgid /{ -x -# Test if the hold space is empty. -s/m/m/ -ta -# Yes it was empty. First occurrence. Read the file. -r HEADER -# Output the file's contents by reading the next line. But don't lose the -# current line while doing this. -g -N -bb -:a -# The hold space was nonempty. Following occurrences. Do nothing. -x -:b -} diff --git a/po.orig/quot.sed b/po.orig/quot.sed deleted file mode 100644 index 0122c4631..000000000 --- a/po.orig/quot.sed +++ /dev/null @@ -1,6 +0,0 @@ -s/"\([^"]*\)"/“\1”/g -s/`\([^`']*\)'/‘\1’/g -s/ '\([^`']*\)' / ‘\1’ /g -s/ '\([^`']*\)'$/ ‘\1’/g -s/^'\([^`']*\)' /‘\1’ /g -s/“”/""/g diff --git a/po.orig/readline.po b/po.orig/readline.po deleted file mode 100644 index 3519812af..000000000 --- a/po.orig/readline.po +++ /dev/null @@ -1,133 +0,0 @@ -#: lib/readline/bind.c:878 -#, c-format -msgid "readline: %s: line %d: %s\n" -msgstr "" - -#: lib/readline/bind.c:881 -#, c-format -msgid "readline: %s\n" -msgstr "" - -#: lib/readline/bind.c:994 -msgid "$else found without matching $if" -msgstr "" - -#: lib/readline/bind.c:1024 -msgid "$endif without matching $if" -msgstr "" - -#: lib/readline/bind.c:1101 -msgid "unknown parser directive" -msgstr "" - -#: lib/readline/bind.c:1162 -msgid "no closing `\"' in key binding" -msgstr "" - -#: lib/readline/bind.c:1977 -#, c-format -msgid "# %s (not bound)\n" -msgstr "" - -#: lib/readline/bind.c:1995 -#, c-format -msgid "%s is not bound to any keys\n" -msgstr "" - -#: lib/readline/bind.c:2001 -#, c-format -msgid "%s can be found on " -msgstr "" - -#: lib/readline/bind.c:2128 -#, c-format -msgid "%s is set to `%s'\n" -msgstr "" - -#: lib/readline/bind.c:2146 -#, c-format -msgid "bell-style is set to `%s'\n" -msgstr "" - -#: lib/readline/bind.c:2152 -#, c-format -msgid "comment-begin is set to `%s'\n" -msgstr "" - -#: lib/readline/bind.c:2158 -#, c-format -msgid "completion-query-items is set to `%d'\n" -msgstr "" - -#: lib/readline/bind.c:2164 -#, c-format -msgid "editing-mode is set to `%s'\n" -msgstr "" - -#: lib/readline/bind.c:2176 -#, c-format -msgid "isearch-terminators is set to \"%s\"\n" -msgstr "" - -#: lib/readline/bind.c:2188 -#, c-format -msgid "keymap is set to `%s'\n" -msgstr "" - -#: lib/readline/callback.c:105 -msgid "readline: readline_callback_read_char() called with no handler!\r\n" -msgstr "" - -#: lib/readline/complete.c:1342 -#, c-format -msgid "Display all %d possibilities? (y or n)" -msgstr "" - -#: lib/readline/complete.c:1681 -#, c-format -msgid "" -"\r\n" -"readline: bad value %d for what_to_do in rl_complete\n" -msgstr "" - -#: lib/readline/display.c:1924 -#, c-format -msgid "readline: debug: insert_some_chars: count (%d) != col (%d)\n" -msgstr "" - -#: lib/readline/histexpand.c:377 -msgid "event not found" -msgstr "" - -#: lib/readline/histexpand.c:381 -msgid "bad word specifier" -msgstr "" - -#: lib/readline/histexpand.c:385 -msgid "substitution failed" -msgstr "" - -#: lib/readline/histexpand.c:389 -msgid "unrecognized history modifier" -msgstr "" - -#: lib/readline/histexpand.c:393 -msgid "no previous substitution" -msgstr "" - -#: lib/readline/histexpand.c:397 -msgid "unknown expansion error" -msgstr "" - -#: lib/readline/rltty.c:464 -#, c-format -msgid "readline: warning: %s\n" -msgstr "" - -#: lib/readline/rltty.c:475 -msgid "turning on OPOST for terminal\r" -msgstr "" - -#: lib/readline/rltty.c:501 -msgid "turning off output flushing" -msgstr "" diff --git a/po.orig/remove-potcdate.sin b/po.orig/remove-potcdate.sin deleted file mode 100644 index 2436c49e7..000000000 --- a/po.orig/remove-potcdate.sin +++ /dev/null @@ -1,19 +0,0 @@ -# Sed script that remove the POT-Creation-Date line in the header entry -# from a POT file. -# -# The distinction between the first and the following occurrences of the -# pattern is achieved by looking at the hold space. -/^"POT-Creation-Date: .*"$/{ -x -# Test if the hold space is empty. -s/P/P/ -ta -# Yes it was empty. First occurrence. Remove the line. -g -d -bb -:a -# The hold space was nonempty. Following occurrences. Do nothing. -x -:b -} diff --git a/shmbutil.h.diff b/shmbutil.h.diff deleted file mode 100644 index 4a7ca5eca..000000000 --- a/shmbutil.h.diff +++ /dev/null @@ -1,30 +0,0 @@ -*** ../bash-3.0/include/shmbutil.h Mon Apr 19 09:59:42 2004 ---- include/shmbutil.h Thu Sep 2 15:20:47 2004 -*************** -*** 32,35 **** ---- 32,37 ---- - extern size_t xdupmbstowcs __P((wchar_t **, char ***, const char *)); - -+ extern size_t mbstrlen __P((const char *)); -+ - extern char *xstrchr __P((const char *, int)); - -*************** -*** 39,42 **** ---- 41,47 ---- - #endif - -+ #define MBSLEN(s) (((s) && (s)[0]) ? ((s)[1] ? mbstrlen (s) : 1) : 0) -+ #define MB_STRLEN(s) ((MB_CUR_MAX > 1) ? MBSLEN (s) : STRLEN (s)) -+ - #else /* !HANDLE_MULTIBYTE */ - -*************** -*** 54,57 **** ---- 59,64 ---- - #define MB_NULLWCH(x) (0) - #endif -+ -+ #define MB_STRLEN(s) (STRLEN(s)) - - #endif /* !HANDLE_MULTIBYTE */ diff --git a/subst.c.diff b/subst.c.diff deleted file mode 100644 index 4d62a76e9..000000000 --- a/subst.c.diff +++ /dev/null @@ -1,108 +0,0 @@ -*** ../bash-3.0/subst.c Sun Jul 4 13:56:13 2004 ---- subst.c Thu Aug 12 13:36:17 2004 -*************** -*** 4692,4695 **** ---- 4692,4715 ---- - } - -+ #if defined (HANDLE_MULTIBYTE) -+ size_t -+ mbstrlen (s) -+ const char *s; -+ { -+ size_t clen, nc; -+ mbstate_t mbs; -+ -+ nc = 0; -+ memset (&mbs, 0, sizeof (mbs)); -+ while ((clen = mbrlen(s, MB_CUR_MAX, &mbs)) != 0 && (MB_INVALIDCH(clen) == 0)) -+ { -+ s += clen; -+ nc++; -+ } -+ return nc; -+ } -+ #endif -+ -+ - /* Handle the parameter brace expansion that requires us to return the - length of a parameter. */ -*************** -*** 4747,4758 **** - { - t = get_dollar_var_value (arg_index); -! number = STRLEN (t); - FREE (t); - } - #if defined (ARRAY_VARS) -! else if ((var = find_variable (name + 1)) && array_p (var)) - { - t = array_reference (array_cell (var), 0); -! number = STRLEN (t); - } - #endif ---- 4767,4778 ---- - { - t = get_dollar_var_value (arg_index); -! number = MB_STRLEN (t); - FREE (t); - } - #if defined (ARRAY_VARS) -! else if ((var = find_variable (name + 1)) && (invisible_p (var) == 0) && array_p (var)) - { - t = array_reference (array_cell (var), 0); -! number = MB_STRLEN (t); - } - #endif -*************** -*** 4767,4771 **** - dispose_words (list); - -! number = STRLEN (t); - FREE (t); - } ---- 4787,4791 ---- - dispose_words (list); - -! number = MB_STRLEN (t); - FREE (t); - } -*************** -*** 4872,4876 **** - case VT_VARIABLE: - case VT_ARRAYMEMBER: -! len = strlen (value); - break; - case VT_POSPARMS: ---- 4892,4896 ---- - case VT_VARIABLE: - case VT_ARRAYMEMBER: -! len = MB_STRLEN (value); - break; - case VT_POSPARMS: -*************** -*** 4892,4896 **** - *e1p += len; - -! if (*e1p >= len || *e1p < 0) - return (-1); - ---- 4912,4916 ---- - *e1p += len; - -! if (*e1p > len || *e1p < 0) - return (-1); - -*************** -*** 4983,4987 **** - return -1; - } -! else if ((v = find_variable (varname)) && array_p (v)) - { - vtype = VT_ARRAYMEMBER; ---- 5003,5007 ---- - return -1; - } -! else if ((v = find_variable (varname)) && (invisible_p (v) == 0) && array_p (v)) - { - vtype = VT_ARRAYMEMBER; diff --git a/variables.c.diff b/variables.c.diff deleted file mode 100644 index 737ba9994..000000000 --- a/variables.c.diff +++ /dev/null @@ -1,68 +0,0 @@ -*** ../bash-3.0/variables.c Sun Jul 4 13:57:26 2004 ---- variables.c Wed Aug 4 15:28:04 2004 -*************** -*** 1420,1428 **** - - # if defined (DEBUGGER) -! v = init_dynamic_array_var ("BASH_ARGC", get_self, null_array_assign, (att_invisible|att_noassign)); -! v = init_dynamic_array_var ("BASH_ARGV", get_self, null_array_assign, (att_invisible|att_noassign)); - # endif /* DEBUGGER */ -! v = init_dynamic_array_var ("BASH_SOURCE", get_self, null_array_assign, (att_invisible|att_noassign)); -! v = init_dynamic_array_var ("BASH_LINENO", get_self, null_array_assign, (att_invisible|att_noassign)); - #endif - ---- 1420,1428 ---- - - # if defined (DEBUGGER) -! v = init_dynamic_array_var ("BASH_ARGC", get_self, null_array_assign, att_noassign); -! v = init_dynamic_array_var ("BASH_ARGV", get_self, null_array_assign, att_noassign); - # endif /* DEBUGGER */ -! v = init_dynamic_array_var ("BASH_SOURCE", get_self, null_array_assign, att_noassign); -! v = init_dynamic_array_var ("BASH_LINENO", get_self, null_array_assign, att_noassign); - #endif - -*************** -*** 1600,1604 **** - old_var = find_variable (name); - if (old_var && local_p (old_var) && old_var->context == variable_context) -! return (old_var); - - was_tmpvar = old_var && tempvar_p (old_var); ---- 1600,1607 ---- - old_var = find_variable (name); - if (old_var && local_p (old_var) && old_var->context == variable_context) -! { -! VUNSETATTR (old_var, att_invisible); -! return (old_var); -! } - - was_tmpvar = old_var && tempvar_p (old_var); -*************** -*** 2303,2306 **** ---- 2306,2315 ---- - if (old_var && local_p (old_var) && variable_context == old_var->context) - { -+ #if defined (ARRAY_VARS) -+ if (array_p (old_var)) -+ array_dispose (array_cell (old_var)); -+ else -+ #endif -+ FREE (value_cell (old_var)); - /* Reset the attributes. Preserve the export attribute if the variable - came from a temporary environment. Make sure it stays local, and -*************** -*** 2309,2313 **** - VSETATTR (old_var, att_local); - VSETATTR (old_var, att_invisible); -- FREE (value_cell (old_var)); - var_setvalue (old_var, (char *)NULL); - INVALIDATE_EXPORTSTR (old_var); ---- 2318,2321 ---- -*************** -*** 3647,3650 **** ---- 3655,3659 ---- - { "LC_MESSAGES", sv_locale }, - { "LC_NUMERIC", sv_locale }, -+ { "LC_TIME", sv_locale }, - - { "MAIL", sv_mail }, diff --git a/vi-glob-tilde.patch b/vi-glob-tilde.patch deleted file mode 100644 index d1d976db4..000000000 --- a/vi-glob-tilde.patch +++ /dev/null @@ -1,53 +0,0 @@ -*** ../bash-3.0/bashline.c Mon Jul 5 23:22:12 2004 ---- bashline.c Thu Sep 2 16:00:12 2004 -*************** -*** 2514,2518 **** - static int ind; - int glen; -! char *ret; - - if (state == 0) ---- 2545,2549 ---- - static int ind; - int glen; -! char *ret, *ttext; - - if (state == 0) -*************** -*** 2524,2538 **** - FREE (globtext); - - if (rl_explicit_arg) - { -! globorig = savestring (text); -! glen = strlen (text); - globtext = (char *)xmalloc (glen + 2); -! strcpy (globtext, text); - globtext[glen] = '*'; - globtext[glen+1] = '\0'; - } - else -! globtext = globorig = savestring (text); - - matches = shell_glob_filename (globtext); ---- 2555,2574 ---- - FREE (globtext); - -+ ttext = bash_tilde_expand (text, 0); -+ - if (rl_explicit_arg) - { -! globorig = savestring (ttext); -! glen = strlen (ttext); - globtext = (char *)xmalloc (glen + 2); -! strcpy (globtext, ttext); - globtext[glen] = '*'; - globtext[glen+1] = '\0'; - } - else -! globtext = globorig = savestring (ttext); -! -! if (ttext != text) -! free (ttext); - - matches = shell_glob_filename (globtext); diff --git a/vi_mode.c.diff b/vi_mode.c.diff deleted file mode 100644 index 01a017cac..000000000 --- a/vi_mode.c.diff +++ /dev/null @@ -1,79 +0,0 @@ -*** ../bash-3.0/lib/readline/vi_mode.c Tue Jul 13 14:08:27 2004 ---- lib/readline/vi_mode.c Tue Aug 17 00:12:09 2004 -*************** -*** 273,280 **** ---- 273,282 ---- - { - case '?': -+ _rl_free_saved_history_line (); - rl_noninc_forward_search (count, key); - break; - - case '/': -+ _rl_free_saved_history_line (); - rl_noninc_reverse_search (count, key); - break; -*************** -*** 691,695 **** - wchar_t wc; - char mb[MB_LEN_MAX+1]; -! int mblen; - mbstate_t ps; - ---- 693,697 ---- - wchar_t wc; - char mb[MB_LEN_MAX+1]; -! int mblen, p; - mbstate_t ps; - -*************** -*** 714,722 **** - if (wc) - { - mblen = wcrtomb (mb, wc, &ps); - if (mblen >= 0) - mb[mblen] = '\0'; - rl_begin_undo_group (); -! rl_delete (1, 0); - rl_insert_text (mb); - rl_end_undo_group (); ---- 716,727 ---- - if (wc) - { -+ p = rl_point; - mblen = wcrtomb (mb, wc, &ps); - if (mblen >= 0) - mb[mblen] = '\0'; - rl_begin_undo_group (); -! rl_vi_delete (1, 0); -! if (rl_point < p) /* Did we retreat at EOL? */ -! rl_point++; /* XXX - should we advance more than 1 for mbchar? */ - rl_insert_text (mb); - rl_end_undo_group (); -*************** -*** 1311,1320 **** - #if defined (HANDLE_MULTIBYTE) - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) -! while (_rl_insert_char (1, c)) -! { -! RL_SETSTATE (RL_STATE_MOREINPUT); -! c = rl_read_key (); -! RL_UNSETSTATE (RL_STATE_MOREINPUT); -! } - else - #endif ---- 1316,1329 ---- - #if defined (HANDLE_MULTIBYTE) - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) -! { -! if (rl_point < p) /* Did we retreat at EOL? */ -! rl_point++; -! while (_rl_insert_char (1, c)) -! { -! RL_SETSTATE (RL_STATE_MOREINPUT); -! c = rl_read_key (); -! RL_UNSETSTATE (RL_STATE_MOREINPUT); -! } -! } - else - #endif diff --git a/wifcontinued-test.c b/wifcontinued-test.c deleted file mode 100644 index 4c2c6e0d2..000000000 --- a/wifcontinued-test.c +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include -#include -#include - -#ifndef errno -extern int errno; -#endif -main() -{ - int x; - - x = waitpid(-1, (int *)0, WNOHANG|WCONTINUED); - if (x == -1 && errno == ECHILD) - exit (0); - else - exit (1); -} -- 2.47.3